RFR 8204552: NMT: Separate thread stack tracking from virtual memory tracking
zgu at redhat.com
zgu at redhat.com
Mon Feb 18 13:50:03 UTC 2019
NMT tracks thread stacks as virtual memory since day one, as most of
platofrms are using virtual memory to back thread stacks. However,
there are exceptions, e.g. AIX. The matter of fact, POSIX standard does
not dictate what kind of memory or even alignment requirement for
thread stacks.
This patch separates thread stack tracking from virtual memory
tracking. It delegates to virtual memory tracker if thread stack is
backed by virtual memory.
For thread stacks that are backed by malloc'd memory, it can not simply
utilize malloc tracker for detail tracking, since it can not install
tracking header in place. Therefore, it has to track those memory
separately, then piggybacks to existing malloc tracking infrastructure
during snapshot, for baselining and reporting.
Thanks for Goetz Lindenmaier and Thomas Stüfe's help to run the patch
through SAP buidling and testing infrastructure, that is especially
helpful for verifying the fix for AIX.
Bug: https://bugs.openjdk.java.net/browse/JDK-8204552
Webrev: http://cr.openjdk.java.net/~zgu/JDK-8204552/webrev.01/
Test:
hotspot_nmt on Linux x64 (fastdebug and release)
Thanks,
-Zhengyu
More information about the hotspot-runtime-dev
mailing list