RFR: Scan remembered [v2]

Kelvin Nilsen github.com+51720475+kdnilsen at openjdk.java.net
Thu Jan 14 05:35:18 UTC 2021


On Thu, 14 Jan 2021 05:09:07 GMT, Kelvin Nilsen <github.com+51720475+kdnilsen at openjdk.org> wrote:

>> src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp line 323:
>> 
>>> 321:     // Increment age in young copies.
>>> 322:     if (target_gen == YOUNG_GENERATION) {
>>> 323:       copy_val->incr_age();
>> 
>> I am not sure incr_age() work with concurrent version. e.g. if the object has displaced mark and two threads try to evacuate the object, both will increase age on displaced mark word.
>
> We did discover the need to deal with displaced mark words and a subsequent commit replaces the call to incr_age() with a call to a newly introduced incrase_object_age() function which includes special handling for displaced mark words.

I have also removed the code in ShenandoahStringDedup::enqueue_candidate() which increments the age of strings since we are now incrementing age during evacuation.  This change will be reflected in the next commit that I push.

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

PR: https://git.openjdk.java.net/shenandoah/pull/12


More information about the shenandoah-dev mailing list