RFR: JDK-8306441: Two phase segmented heap dump [v17]

Yi Yang yyang at openjdk.org
Mon Jul 17 06:00:18 UTC 2023


On Mon, 17 Jul 2023 04:11:54 GMT, David Holmes <dholmes at openjdk.org> wrote:

> > Because I need the overloaded check is_AttachListener_thread(), which can avoid using the VM thread to execute the dump file merge as much as possible.
> 
> I'm unclear what the set of candidate threads is for executing the code that does the `is_AttachListener_thread()` test. Can you not just use `!thread->is_VM_thread()` to keep it out of the VMThread?

Many types of threads can execute HeapDumper, such as JMX heapdump, GC HeapDumpOnOutOfMemoryError etc. To ensure safety, I want to make it clear that file merging should only be executed using the current thread as an attach listener thread. For other situations, it should be uniformly completed using the VM Thread. In addition, a potential optimization is that if flags such as HeapDumpOnOutOfMemoryError trigger heapdump, the triggerer does not need to wait for the merge to complete on site(because they are not in interactive mode). It only needs to generate separate files during STW and then specify the AttachListenerThread to complete the file merging operation using handshake. This requires us to have an AttachListenerThread class.

For future extension considerations and for code readability and safety, I added an AttachListenerThread class.

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

PR Comment: https://git.openjdk.org/jdk/pull/13667#issuecomment-1637424431


More information about the serviceability-dev mailing list