RFR: Remove prefetch during mark

Wilkinson, Hugh hugh.wilkinson at intel.com
Wed Feb 14 16:23:47 UTC 2018

I have been looking at this also.

I find that if the prefetching occurs 3 popped entries ahead of the processing, then there is a worthwhile benefit.

A bit of re-structuring is required to make this easy and efficient.

I am prefetching 2 cache lines from the referenced object and also doing a PREFETCHW of the mark bitmap.  (Prefetch::write() requires modification for x86.)

With the current code structure, removal of the Prefetch::read() probably makes sense; however, I would like to highlight that marking performance can be improved with sufficiently early software cache prefetches.

I expect to share more details later.


-----Original Message-----
From: zgc-dev [mailto:zgc-dev-bounces at openjdk.java.net] On Behalf Of Stefan Karlsson
Sent: Wednesday, February 14, 2018 4:41 AM
To: Per Liden <per.liden at oracle.com>; zgc-dev at openjdk.java.net
Subject: Re: RFR: Remove prefetch during mark

Looks good.


On 2018-02-14 09:43, Per Liden wrote:
> Small patch to remove the prefetch we do during marking. Charlie Hunt 
> spent some time looking into the effect of this, and in conclusion the 
> prefetch doesn't help.
> http://cr.openjdk.java.net/~pliden/zgc/remove_mark_prefetch/webrev.0/
> /Per

More information about the zgc-dev mailing list