Fwd: (resend) Request for review (S): 7068625 Testing 8 bytes of card table entries at a time speeds up card-scanning

Jon Masamitsu jon.masamitsu at oracle.com
Fri Feb 24 19:40:39 UTC 2012


Change looks good.

Did you run the tests on 32bit and smaller heaps (~4G)?
That would give you 4byte rows (instead of 8byte rows),


On 2/24/2012 4:14 AM, Bengt Rutisson wrote:
> Hi all,
> Just pinging this review request. Does anybody have some time to look 
> at it? It is a fairly small and straight forward change...
> Thanks,
> Bengt
> -------- Original Message --------
> Subject:     Request for review (S): 7068625 Testing 8 bytes of card 
> table entries at a time speeds up card-scanning
> Date:     Tue, 21 Feb 2012 12:03:50 +0400
> From:     Alexey Ragozin <alexey.ragozin at gmail.com>
> To:     hotspot-gc-dev at openjdk.java.net
> CC:     Bengt Rutisson <bengt.rutisson at oracle.com>
> Hi,
> I would like few volunteers to review changes for 
> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7068625
> WebRev: http://cr.openjdk.java.net/~brutisso/7068625/webrev.00/ 
> <http://cr.openjdk.java.net/%7Ebrutisso/7068625/webrev.00/>
> Change summary
> For large heaps (I was focusing on 8GiB and above) it is common to 
> have long continuous ranges of clean cards.
> Patch is introducing a short path for skipping ranges of clean cards 
> using word aligned memory access instead of byte aligned.
> Patch affects serial and CMS collectors. For CMS collector stride size 
> should be increase to see any performance gains (I was using
> -XX:+UnlockDiagnosticVMOptions
> -XX:ParGCCardsPerStrideChunk=4096)
> For testing I was mainly using synthetic benchmark randomly modifying 
> hash tables in heap, thus uniformly touching cards across heaps.
> Average duration of young GC pause were used as KPI.
> More details about testing can be found at
> http://blog.ragozin.info/2011/07/openjdk-patch-cutting-down-gc-pause.html
> Though article is referring jdk6, my resent tests with trunk jdk7 show 
> no difference.
> I was also tested patch with real application (Oracle Coherence 
> storage node).
> With 16GiB of heap and CMS/ParNew GC, enabling patch have shortened GC 
> pauses roughly in 2 times.
> Source code of benchmark used in test are available at
> https://gridkit.googlecode.com/svn/branches/aragozin-sandbox/young-gc-bench 
> Main class YoungGCPauseBenchmark
> Regards,
> Alexey

More information about the hotspot-gc-dev mailing list