RFR: 8337511: Implement JEP 404: Generational Shenandoah (Experimental) [v7]

Aleksey Shipilev shade at openjdk.org
Wed Nov 20 20:22:28 UTC 2024


On Tue, 19 Nov 2024 23:07:21 GMT, William Kemper <wkemper at openjdk.org> wrote:

>> src/hotspot/share/gc/shenandoah/shenandoahMarkingContext.cpp line 44:
>> 
>>> 42:   for (size_t idx = 0; idx < num_regions; idx++) {
>>> 43:     ShenandoahHeapRegion* r = heap->get_region(idx);
>>> 44:     if (r->is_affiliated() && heap->is_bitmap_slice_committed(r) && !is_bitmap_clear_range(r->bottom(), r->end())) {
>> 
>> I don't understand this for single gen mode. In that mode `is_affiliated() == false` always, right? So this check never passes, and `is_bitmap_clear` always returns `true`?
>
> No, in single gen mode regions that are not `FREE` are affiliated with `YOUNG`.

That's weird. We have `Young`, `Old` and `Global` generations. Why affiliation is not `Free`, `Young`, `Old`, and `Global` then?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/21273#discussion_r1850665665


More information about the shenandoah-dev mailing list