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

Zhengyu Gu zhengyu.gu at oracle.com
Mon Mar 4 13:37:53 PST 2013


Updated according to Coleen's comment.

Webrev: http://cr.openjdk.java.net/~zgu/8008257/webrev.01/

Thanks,

-Zhengyu

On 3/4/2013 1:07 PM, Coleen Phillimore wrote:

Hi Zhengyu, This looks good except one suggestion. In the lines where CALLERPC appears twice, it should be called once, assigned to a variable and passed to both of the MemTracker functions, since CALLERPC will walk the stack and it's not necessary to do it twice in a row. Otherwise, looks good. Coleen On 02/28/2013 10:45 AM, Zhengyu Gu wrote: NMT did not probably record memory allocations from os::reservememoryspecial() 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/viewbug.do?bugid=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