RFR: 8253833: mutexLocker assert_locked_or_safepoint should not access VMThread state from non-VM-thread

Daniel D.Daugherty dcubed at openjdk.java.net
Fri Oct 9 14:30:13 UTC 2020


On Thu, 8 Oct 2020 22:14:17 GMT, David Holmes <dholmes at openjdk.org> wrote:

>> It's unsafe for all threads except VM thread to access the current vm operation.
>> This part of the assert is also faulty:
>> If we are not at safepoint and the operation requester (calling thread) would be the owner of the lock do not mean it
>> is safe for current thread.
>> Passes t1-5. (also note VMThread::vm_operation() assert current thread is VM thread, and I have seen no such assert)
>> 
>> Thanks
>
> Changes requested by dholmes (Reviewer).

> > But an entire over-haul of these asserts and what the implicit rules are is out of scope here.
> 
> Yes and I think if we can't formulate the exact condition then logically
> we have:
> 
> (is_at_safepoint() && is_VMThread()) || (is_at_safepoint() &&
> complexConditionWeHaveToAssumeIsTrue())
> 
> which simplifies to just
> 
> is_at_safepoint()
> 
> :)

I love `complexConditionWeHaveToAssumeIsTrue()`!!
Ahhhhh... thanks for giving me a reason to smile on Friday morning!!

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

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


More information about the hotspot-runtime-dev mailing list