On Tue, 19 Nov 2024 23:56:56 GMT, William Kemper <wkem...@openjdk.org> wrote:
>> src/hotspot/share/gc/shenandoah/shenandoahReferenceProcessor.cpp line 455: >> >>> 453: // Note: would be sufficient to mark only the card that holds the >>> start of this Reference object. >>> 454: >>> heap->old_generation()->card_scan()->mark_range_as_dirty(cast_from_oop<HeapWord*>(reference), >>> reference->size()); >>> 455: } >> >> Two things: >> a) This sounds like `card_table_barrier(reference, raw_referent)`? Since >> this code is getting called for every dropped reference, just checking a >> `ShenandoahCardBarrier` flag sounds more efficient. >> b) Is there a point in dirtying up to `reference->size()`? > > Will test this. https://bugs.openjdk.org/browse/JDK-8344640 >> src/hotspot/share/gc/shenandoah/shenandoahVerifier.cpp line 657: >> >>> 655: _generation(nullptr) { >>> 656: if (_options._verify_marked == >>> ShenandoahVerifier::_verify_marked_complete_satb_empty) { >>> 657: Threads::change_thread_claim_token(); >> >> It is fairly odd to see Verifier touching the claim token, since the bug >> _may be_ somewhere in parallel thread oop iteration infra. I think it is >> fine to just use `Threads::threads_do` (non-parallel version), which AFAIU >> does not require token modifications. > > Will test this. https://bugs.openjdk.org/browse/JDK-8344638 ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/21273#discussion_r1850900559 PR Review Comment: https://git.openjdk.org/jdk/pull/21273#discussion_r1850901137