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

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 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