On Fri, 24 Sep 2021 14:05:48 GMT, Lin Zang <lz...@openjdk.org> wrote:
>> I think it may be because this is actually not a JavaThread. So the assert >> in `Mutex::check_no_safepoint_state` would pass. >> Moreover, I have tried to use `PaddedMonitor(Mutex::nosafepoint, >> "ParallelHProfWriter_lock", Mutex::_safepoint_check_never);` here, but the >> slowdebug would report errors as you mentioned in JDK-8274245. > > I agree the flag here and at the place of lock acquiring seems problematic. > I will try to see whether I can use `Mutex::_safepoint_check_never` here and > get rid of the assert. yes void Mutex::check_no_safepoint_state(Thread* thread) { check_block_state(thread); assert(!thread->is_active_Java_thread() || _safepoint_check_required != _safepoint_check_always, "This lock should always have a safepoint check for Java threads: %s", name()); } yes, we exclude the check for a non-java thread, which I thought was an odd exclusion last time I looked. I pass the tests in sun/tools/jmap/BasicJMapTest.java so maybe leave it for now? ------------- PR: https://git.openjdk.java.net/jdk/pull/5681