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

Reply via email to