RFR: 8263427: Shenandoah: Trigger weak-LRB even when heap is stable
Zhengyu Gu
zgu at openjdk.java.net
Thu Mar 11 19:27:06 UTC 2021
On Thu, 11 Mar 2021 18:52:54 GMT, Roman Kennke <rkennke at openjdk.org> wrote:
>> src/hotspot/share/gc/shenandoah/shenandoahVerifier.cpp line 607:
>>
>>> 605: VerifyThreadGCState(const char* label, char expected) : _label(label), _expected(expected) {}
>>> 606: void do_thread(Thread* t) {
>>> 607: char actual = ShenandoahThreadLocalData::gc_state(t) & ~((char)ShenandoahHeap::WEAK_ROOTS);
>>
>> Why these adjustments are needed? I think it shows we don't play well with GC-state lifecycle here...
>
> The verifier would complain about the extra bit being set or maybe not set (e.g. concurrent cycles would set it, but degen cycles would not). We haven't verified conc-weakroots-in-progress before, so I figured it would be easiest to keep it that way and mask it out.
ShenandoahGCStateResetter used to disable the flag, so it makes sense.
-------------
PR: https://git.openjdk.java.net/jdk/pull/2945
More information about the shenandoah-dev
mailing list