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