RFR: Scan remembered [v2]
Zhengyu Gu
zgu at openjdk.java.net
Wed Jan 13 13:56:24 UTC 2021
On Wed, 13 Jan 2021 02:44:45 GMT, Kelvin Nilsen <github.com+51720475+kdnilsen at openjdk.org> wrote:
>> Add support for scanning remembered set
>>
>> The code has support for two alternative implementations of the remembered set. The current remembered set implementation uses traditional card marking, where the post writer barrier for pointer write operations sets the mark for every overwritten card.
>>
>> A contemplated future remembered set implementation is represented in skeleton form within the shenandoahBufferWithSATBRememberedSet.hpp and shenandoahBufferWithSATBRememberedSet.inline.hpp files. The idea of this alternative remembered set implementation is that the existing SATB buffers will be augmented to additionally remember the address of each overwritten reference field. Subsequent processing of the SATB buffer contents by background GC threads will update the TBD remembered set representation.
>>
>> There are known bugs and performance improvements in the remembered set scanning implementation that have been addressed in certain Amazon-internal commits. These commits will be upstreamed at a later time after other commits not directly related to remembered set scanning are upstreamed.
>
> Kelvin Nilsen has updated the pull request incrementally with one additional commit since the last revision:
>
> Improvements requested during initial review
>
> These changes are cosmetic and/or related to comments.
Changes requested by zgu (Reviewer).
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();
Now, age is increased during young gen copy. Please update ShenandoahStringDedup::enqueue_candidate() to remove age updating code.
-------------
PR: https://git.openjdk.java.net/shenandoah/pull/12
More information about the shenandoah-dev
mailing list