First cut at a card table for Shenandoah
Roman Kennke
rkennke at redhat.com
Thu Jul 23 11:31:05 UTC 2020
On Thu, 2020-07-23 at 12:31 +0200, Thomas Schatzl wrote:
> Hi,
>
> On 22.07.20 22:59, Roman Kennke wrote:
> > I am not very familiar with all this stuff.
> >
> > You should check if the C2 optimizations for card-table-barriers
> > kick
> > in. IIRC, there was something that elides those barriers on stores
> > into
> > new objects altogether, which make up the majority of stores.
> >
>
> if you are talking about eliding write barriers for new objects
> because they are "always" allocated in young gen, and no
> generational
> collector is interested in young->old references, there is no such
> thing
> afaik.
>
> No collector guarantees this "always" property: e.g. CMS may
> directly
> decide to put new objects into old gen for a few reasons, and for
> parallel (and g1) it e.g. can happen that a gc right after
> allocating
> that object (when e.g. transitioning from native slow-path code)
> will
> move that object into old gen. Or simply when the object is large.
>
> See e.g. https://bugs.openjdk.java.net/browse/JDK-8191342
>
> That would still require the compiler to only apply that optimization
> if
> it can prove that the object is "small enough" to fit into young gen
> in
> any case (it is probably easy to get conservative enough values for
> that
> from somewhere).
>
Thanks Thomas for clarification! :-)
Roman
More information about the shenandoah-dev
mailing list