RFR: 8273915: Create 'nosafepoint' rank

David Holmes dholmes at openjdk.java.net
Mon Sep 20 00:14:48 UTC 2021


On Thu, 16 Sep 2021 17:11:30 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:

> Partition safepoint checking and nonchecking lock ranks. The nonchecking locks are always lower ranked than the safepoint checking locks because they cannot block.
> 
> This moves some leaf locks to 'nosafepoint' rank and corrects relative ranking.
> 
> Tested with tier1-6 and built and run tier1 tests with shenandoah locally.

Hi Coleen,

Mostly the remapping seems okay but a few queries below.

Thanks,
David

src/hotspot/share/gc/parallel/psCompactionManager.cpp line 95:

> 93:   _shadow_region_array = new (ResourceObj::C_HEAP, mtGC) GrowableArray<size_t >(10, mtGC);
> 94: 
> 95:   _shadow_region_monitor = new Monitor(Mutex::nosafepoint, "CompactionManager_lock",

Not clear why this one needed to change??

src/hotspot/share/runtime/mutex.hpp line 55:

> 53:        nosafepoint    = oopstorage     +   6,
> 54:        leaf           = nosafepoint    +   6,
> 55:        safepoint      = leaf           +  10,

It is somewhat confusing to have safepoint as an explicit rank now that all ranks above nosafepoint imply safepoint-ing.

src/hotspot/share/runtime/mutexLocker.cpp line 253:

> 251:   def(ClassInitError_lock          , PaddedMonitor, leaf+1,      true,  _safepoint_check_always);
> 252:   def(Module_lock                  , PaddedMutex  , leaf+2,      false, _safepoint_check_always);
> 253:   def(InlineCacheBuffer_lock       , PaddedMutex  , nosafepoint-1, true,  _safepoint_check_never);

Why -1 ?

-------------

PR: https://git.openjdk.java.net/jdk/pull/5550


More information about the hotspot-dev mailing list