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

Coleen Phillimore coleen.phillimore at oracle.com
Mon Mar 4 10:07:09 PST 2013


Hi Zhengyu,

This looks good except one suggestion.  In the lines where CALLER_PC 
appears twice, it should be called once, assigned to a variable and 
passed to both of the MemTracker functions, since CALLER_PC 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::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