RFC: Throughput barriers for G1

Jungwoo Ha jwha at google.com
Wed Nov 9 19:13:49 UTC 2016


Would'n't it be faster to just do card(o.x) = Dirty without the clean check?
Usually single store is faster than load & store on the same cache line.
I don't think card(o.x) is preloaded in cache to make if check cheap.
Anyway this is a good step forward and I think it is a good tradeoff.
However, pre & post is still heavier than the CMS wb, and we need to see
the actual experimental numbers how close it can be.


On Wed, Nov 9, 2016 at 7:54 AM, Thomas Schatzl <thomas.schatzl at oracle.com>
wrote:

> Hi all,
>
>   just one comment:
>
> On Wed, 2016-11-09 at 16:11 +0100, Erik Helin wrote:
> > Hi all,
> >
> > [...]
> >
> > The responsibility of the post-write barrier is to queue up pointers
> > between regions so that the concurrent refinements threads can update
> > the remembered sets concurrently.  If you were to give up this, an
> > alternative post-write barrier could look like:
> >
> > if (y != NULL) {
> >    if (card(o.x) == Clean) {
> >        card(o.x) = Dirty;
> >    }
> > }
> >
>
> Actually, one can simply reuse all the existing post-write barrier code
> generation and optimizations from any of the other collectors in the
> simplest case.
>
> I do not think parallel GC performs the NULL check :)
>
> Thanks,
>   Thomas
>
>


-- 
Jungwoo Ha | Java Platform Team | jwha at google.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/hotspot-gc-dev/attachments/20161109/b7dcf69d/attachment.htm>


More information about the hotspot-gc-dev mailing list