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