First cut at a card table for Shenandoah

Roman Kennke rkennke at redhat.com
Thu Jul 16 17:38:03 UTC 2020


Instead of simulating, you could probably use my earlier generations-
prototype?

http://cr.openjdk.java.net/~rkennke/generation.patch

Not sure if that easily fits, though, because it's dynamically
shuffling young and old regions, instead of having a fixed boundary.
Might be worth though.

I haven't gotten around to try your stuff yet, but will do so soon!

Thanks,
Roman


> That there is too much tracking is quite possible. I'll figure out a
> way to simulate a young generation. I'll also switch those individual
> barrier parts on one-by-one to see which one does the most damage.
> (Benchmarks that cratered: derby, mmpegaudio, scimark, serial.
> "compress" was fine.)
> 
> Bernd
> 
> On 7/16/20, 1:17 AM, "Roman Kennke" <rkennke at redhat.com> wrote:
> 
>     CAUTION: This email originated from outside of the organization.
> Do not click links or open attachments unless you can confirm the
> sender and know the content is safe.
> 
> 
> 
>     Hi Bernd,
> 
>     could the performance drop come from the fact that we have no
>     generations yet, and thus the barrier would track *all* stores
> (all the
>     time) rather than only old->young stores?
> 
>     I'll give the patch a spin soon!
> 
>     Thank you!
>     Roman
> 
> 
>     On Thu, 2020-07-16 at 00:20 +0000, Mathiske, Bernd wrote:
>     > Just having edited some card table operations into Shenandoah
> GC,
>     > I have uploaded a webrev for perusal:
>     > http://cr.openjdk.java.net/~bmathiske/cardshen/webrev.00/
>     >
>     > The general idea of this patch is to mark some cards on the
> side as
>     > if we needed a generational remembered set barrier, without
> changing
>     > how Shenandoah works otherwise. Then we should be able to
> measure how
>     > much mutator overhead this sort of extra barrier might cause.
> My
>     > expected result was "similar to CMS or Parallel compared to
> Epsilon",
>     > but that's not what I am seeing in first attempts to run
> SPECjvm2008.
>     > Some of those benchmarks go way south, 5x and more. So I guess
> I made
>     > a mistake somewhere, but here it is anyway, so you can see the
> my
>     > approach, which is reparenting barrier classes to shared card
> table
>     > barrier classes and then hoping that everything falls into
> place. (
>     > The array copying barrier for C1/C2 is switched off for now.
>     >
>     > For now, this patch is based on 11.0.7. I will rebase this to
> the
>     > latest soon.
>     >
>     >
> 
> 



More information about the shenandoah-dev mailing list