RFR: 8252921: NMT overwrite memory type for region assert when building dynamic archive

David Holmes dholmes at openjdk.java.net
Wed Sep 16 02:57:18 UTC 2020


On Tue, 15 Sep 2020 14:37:44 GMT, Zhengyu Gu <zgu at openjdk.org> wrote:

> Thread stack is currently unregistered with NMT in Thread's destructor. Apparently, only Java thread invokes destructor
> before thread exits.  For NonJavaThread, e.g. ConcurrentGCThread, thread may exit while its "Thread" object continues
> alive, therefore, its thread stack is still "alive" from NMT perspective. Once thread exits, the virtual memory for the
> thread stack can be reserved again, that confused NMT.  The solution is to move thread stack unregistration code to
> post_run() method.

src/hotspot/share/runtime/thread.hpp line 762:

> 760:  public:
> 761:   // Stack overflow support
> 762:   address stack_base() const           { return _stack_base; }

Why did you remove the assertion? We want the assertion in general to ensure there are no improper uses of stack_base().

-------------

PR: https://git.openjdk.java.net/jdk/pull/185


More information about the hotspot-runtime-dev mailing list