RFR (s) 8059100: SIGSEGV VirtualMemoryTracker::remove_released_region

Coleen Phillimore coleen.phillimore at oracle.com
Fri Oct 10 14:16:39 UTC 2014


Summary: Disallow increasing native memory tracking level

There was support in the code for increasing NMT reporting level, which 
causes inconsistencies when called by multiple threads.  There was also 
a shutdown() call in final_report() which turned NMT off while other 
threads could be running.  The final_report() function modified the 
running baseline in place but other threads calling NMT while it is 
running could see the wrong data.

Made final_report() snapshot a baseline which is safe enough during 
error handling and not call shutdown().  Removed the reset() function 
because it's unnecessary at best, and at worst, dangerous to do to the 
running baseline.

Also if final_report calls shutdown() it can hang getting the malloc 
site table lock if the error reported is in the malloc site table, while 
holding the lock.

Tested with an aurora ad-hoc (thanks George) and linux-x64 testbase, jck 
and jtreg tests.  All with nmt=detail and PrintNMTStatistics.

open webrev at http://cr.openjdk.java.net/~coleenp/8059100/
bug link https://bugs.openjdk.java.net/browse/JDK-8059100

Thanks,
Coleen



More information about the hotspot-runtime-dev mailing list