RFR: 8324649: Shenandoah: refactor implementation of free set [v2]

William Kemper wkemper at openjdk.org
Fri Jan 26 19:08:35 UTC 2024


On Fri, 26 Jan 2024 18:48:45 GMT, Kelvin Nilsen <kdnilsen at openjdk.org> wrote:

>> src/hotspot/share/gc/shenandoah/shenandoahFreeSet.hpp line 166:
>> 
>>> 164:   // equal to ShenandoahHeapRegion::humongous_threshold_words().  The caller of allocate_single is responsible
>>> 165:   // for registering the resulting object and setting the remembered set card values as appropriate.  The
>>> 166:   // most common case is that we are allocating a PLAB in which case object registering and card dirtying
>> 
>> Nit pick, but isn't this called for all allocations that are not humongous? Why do we say that PLAB is the most common? Also, much of this comment only applies to the generational mode.
>
> Thanks for catching the inappropriate mention of generational issues here.  I'll remove this.
> 
> I still think it is the case that the most common allocation is a TLAB and/or GCLAB.  It is only when TLAB/GCLAB allocations fail that we try to do a "shared allocation" of exactly the size of the object to be allocated.

Oh yes, I agree with that. Maybe just say `LAB` allocations then? PLABs are specifically for promotions, aren't they?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/17561#discussion_r1468041327


More information about the shenandoah-dev mailing list