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

Coleen Phillimore coleen.phillimore at oracle.com
Tue Mar 5 11:45:06 PST 2013


Looks good to me. Nice job digging up how to test on all the platforms. Coleen

On 03/04/2013 04:37 PM, Zhengyu Gu wrote:

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