RFR: 8273217: Make ParHeapInspectTask _safepoint_check_never

David Holmes dholmes at openjdk.java.net
Wed Sep 1 12:29:49 UTC 2021


On Wed, 1 Sep 2021 11:32:15 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:

>> src/hotspot/share/memory/heapInspection.cpp line 564:
>> 
>>> 562:   missed_count = ric.missed_count();
>>> 563:   {
>>> 564:     MutexLocker x(&_mutex, Mutex::_no_safepoint_check_flag);
>> 
>> This change seems unnecessary - this lock is only taken by GC threads, or the VMThread (?), never a JavaThread, but this change makes it look like it is taken by a JavaThread that wants to avoid safepoint checks.
>
> This change is necessary in that we have a check inside Mutex::lock that this flag matches how the lock was defined.  It was argued that we want to have to pass this parameter to know when safepoints are not checked in the code that was taking out the lock, so the parameter is needed.

I hadn't realized that we included a check for safepoint-check-never for the NJT case. I thought the safepoint-check state was completely ignored for NJTs.

I don't recall if in the past I agreed with doing this, but I think it is confusing and misleading to see this in the code. But so be it, as far as this PR goes at least.

Thanks.

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

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


More information about the serviceability-dev mailing list