Integrated: Card marking write barrier for generational mode.
Bernd Mathiske
bmathiske at openjdk.java.net
Mon Nov 16 13:37:34 UTC 2020
On Tue, 27 Oct 2020 12:00:28 GMT, Bernd Mathiske <bmathiske at openjdk.org> wrote:
> Adding a typical generational card marking write barrier, which is only active in generational mode and has no other effect yet than writing into a card table that is allocated at startup on the side and covers the whole heap as specified by -Xmx.
>
> The code for card marking is copied verbatim from existing shared barrier code. A previous version inherited this code, by making ShenandoahBarrierSet a subclass of CardTableBarrierSet. Now the code pertinent to post write barriers is just copied down instead. This allows adding the new code without any changes to shared code (code that is not specific to Shenandoah).
>
> Initializing the card table in proper sequence comes with slightly rearranging heap initialization. This can be seen near the bottom of the listing here.
>
> Testing: ran the same SPECjvm2008 benchmark programs as before. Performance seems to be 1-1.5% less with card marking active, in average for this kind of benchmark. In non-generational mode, no change observed.
>
> For now we only prepare x86 code. Support for the other architectures will provided later with additional commits.
This pull request has now been integrated.
Changeset: 73a63881
Author: Bernd Mathiske <bmathiske at openjdk.org>
Committer: Roman Kennke <rkennke at openjdk.org>
URL: https://git.openjdk.java.net/shenandoah/commit/73a63881
Stats: 541 lines in 13 files changed: 499 ins; 22 del; 20 mod
Card marking write barrier for generational mode.
Reviewed-by: rkennke
-------------
PR: https://git.openjdk.java.net/shenandoah/pull/5
More information about the shenandoah-dev
mailing list