RFR (S) Improve UseLargePages support

Aleksey Shipilev shade at redhat.com
Tue Oct 11 15:07:38 UTC 2016


Hi,

I took a brief look at what Shenandoah does with large pages
(-XX:+UseLargePages). It seems we are already covered for the heap part,
because the shared code already allocates it with large pages when
requested.

We only shall do a few minor touchups:
 a) Allow pretouch to touch with larger steps, since pages are larger --
this improves -XX:+AlwaysPreTouch performance even further;
 b) Make sure the region sizes are at least one page, otherwise, in
theory, mprotect granularity would make false alarms in our
mprotect-based access verification code;
 c) Make sure we allocate large bitmaps with large pages too;

All done here:
 http://cr.openjdk.java.net/~shade/shenandoah/large-pages-fix/webrev.01/

GC-heavy compiler tests are still happy:

 Benchmark           Mode  Cnt    Score   Error    Units

 # baseline, -XX:-UseLargePages
 Compiler.compiler  thrpt   10   70.635 ± 2.289  ops/min
 Compiler.sunflow   thrpt   10  175.764 ± 4.574  ops/min

 # patched, -XX:-UseLargePages
 Compiler.compiler  thrpt   10   70.639 ± 2.043  ops/min
 Compiler.sunflow   thrpt   10  175.878 ± 4.355  ops/min

 # baseline, -XX:+UseLargePages
 Compiler.compiler  thrpt   10   73.543 ± 2.574  ops/min
 Compiler.sunflow   thrpt   10  183.399 ± 5.432  ops/min

 # patched, -XX:+UseLargePages
 Compiler.compiler  thrpt   10   74.739 ± 2.526  ops/min
 Compiler.sunflow   thrpt   10  186.247 ± 5.963  ops/min

Thanks,
-Aleksey



More information about the shenandoah-dev mailing list