Review request 8008257 - NMT: assert(new_rec->is_allocation_record()) failed when running with shared memory option

Zhengyu Gu zhengyu.gu at oracle.com
Thu Feb 28 07:45:53 PST 2013


NMT did not probably record memory allocations from 
os::reserve_memory_special() path, which is usually related to 
UseLargePages VM option.

The symptom of this bug is assertion failure in debug/fastdebug build or 
missing Java Heap in NMT output in production build.

Bug: http://bugs.sun.com/view_bug.do?bug_id=8008257
Webrev: http://cr.openjdk.java.net/~zgu/8008257/webrev.00/

To trigger the failures:

1. On Windows, run with -XX:+UseLargePages (with/without 
-XX:+UseLargePagesIndividualAllocation)

2. On Linux, run with -XX:+UseLargePages -XX:+UseSHM

3. On Solaris, run with -XX:+UseLargePages -XX:+UseISM

4. On MacOSX, UseLargePages is disabled.

Beware that fail to allocate large pages, does not cause JVM to fail. 
Instead, JVM will fallback to use regular pages.

Tests:
   Many thanks to Christian Törnqvist to find capable hardware and 
figure out how to get large pages to work. We were able to test the fix 
on Solaris sparcv9, Linux x64 and Windows x64.


Thanks,

-Zhengyu




More information about the hotspot-dev mailing list