RFR (XS) 8016825 Large pages for the heap broken on Windows for compressed oops

Thomas Schatzl thomas.schatzl at oracle.com
Mon Jul 15 09:33:36 UTC 2013


Hi all,

  can I have reviews for the following change?

The change fixes the allocation of memory using large pages on Windows
when a particular address is requested under some circumstances.

In particular, VirtualAlloc is always called with a NULL address,
meaning there is no preferred allocation address, which is not the
desired behavior.

See src/os/windows/vm/os_windows.cpp line 3155 in the original code.

The other part of the changes contain a test case for that.

This test case is a bit convoluted, as it needs to handle a few edge
cases which are valid behaviors (mostly not getting large pages in the
first place) that should not cause a failed test.

There is no check whether the returned memory consists of large pages; the call to VirtualAlloc() with MEM_LARGE_PAGES always returns large page memory on success.

webrev:
http://cr.openjdk.java.net/~tschatzl/8016825/webrev/

jbs:
https://jbs.oracle.com/bugs/browse/JDK-8016825

bugs.sun
http://bugs.sun.com/view_bug.do?bug_id=8016825

testing:
jprt running the test case, manual testing

To reproduce the test case, you must give yourself permission to use
large pages (http://msdn.microsoft.com/en-us/library/ms190730.aspx) and
run the VM in an elevated shell with -XX:+UseLargePages and -XX:
+ExecuteInternalVMTests .

Thanks,
  Thomas





More information about the hotspot-gc-dev mailing list