RFR: 8309210: Extend VM Operations hs_err logging

Stefan Karlsson stefank at openjdk.org
Wed May 31 14:42:14 UTC 2023


On Wed, 31 May 2023 14:35:03 GMT, Stefan Karlsson <stefank at openjdk.org> wrote:

> We have a section in the hs_err file, which prints the most recently run VM operations. Sometimes a VM operation type is used from multiple places in our code and it's not obvious why the VM operation was run. For example, HandshakeAllThreads doesn't tell us why we are running the handshake. I propose that we add an option for the VM operations to tell more about why they are used.
> 
> The proposed patch enhances the Handshake VM operation and the ZGC pause VM Operations.

This proposal would change the output from:

Event: 1.502 Executing VM operation: ZRelocateStartYoung
Event: 1.502 Executing VM operation: ZRelocateStartYoung done
Event: 1.502 Executing VM operation: ZMarkStartYoung
Event: 1.503 Executing VM operation: ZMarkStartYoung done
Event: 1.504 Executing VM operation: HandshakeAllThreads
Event: 1.504 Executing VM operation: HandshakeAllThreads done
Event: 1.504 Executing VM operation: ZMarkFlushOperation
Event: 1.504 Executing VM operation: ZMarkFlushOperation done
Event: 1.504 Executing VM operation: HandshakeAllThreads
Event: 1.504 Executing VM operation: HandshakeAllThreads done
Event: 1.504 Executing VM operation: ZMarkFlushOperation
Event: 1.504 Executing VM operation: ZMarkFlushOperation done
Event: 1.504 Executing VM operation: ZMarkEndYoung
Event: 1.504 Executing VM operation: ZMarkEndYoung done
Event: 1.508 Executing VM operation: HandshakeAllThreads
Event: 1.508 Executing VM operation: HandshakeAllThreads done
Event: 1.508 Executing VM operation: ZMarkFlushOperation
Event: 1.508 Executing VM operation: ZMarkFlushOperation done
Event: 1.508 Executing VM operation: HandshakeAllThreads
Event: 1.508 Executing VM operation: HandshakeAllThreads done
Event: 1.508 Executing VM operation: ZMarkFlushOperation
Event: 1.508 Executing VM operation: ZMarkFlushOperation done
Event: 1.508 Executing VM operation: ZMarkEndOld
Event: 1.519 Executing VM operation: ZMarkEndOld done
Event: 1.519 Executing VM operation: ZRelocateStartYoung
Event: 1.519 Executing VM operation: ZRelocateStartYoung done
Event: 1.521 Executing VM operation: HandshakeAllThreads
Event: 1.521 Executing VM operation: HandshakeAllThreads done
Event: 1.521 Executing VM operation: ZRendezvousGCThreads
Event: 1.521 Executing VM operation: ZRendezvousGCThreads done


To something like this:

Event: 1.502 Executing VM operation: ZRelocateStartYoung (Allocation Stall)
Event: 1.502 Executing VM operation: ZRelocateStartYoung (Allocation Stall) done
Event: 1.502 Executing VM operation: ZMarkStartYoung (Allocation Stall)
Event: 1.503 Executing VM operation: ZMarkStartYoung (Allocation Stall) done
Event: 1.504 Executing VM operation: HandshakeAllThreads (ZMarkFlushAndFreeStacks)
Event: 1.504 Executing VM operation: HandshakeAllThreads (ZMarkFlushAndFreeStacks) done
Event: 1.504 Executing VM operation: ZMarkFlushOperation
Event: 1.504 Executing VM operation: ZMarkFlushOperation done
Event: 1.504 Executing VM operation: HandshakeAllThreads (ZMarkFlushAndFreeStacks)
Event: 1.504 Executing VM operation: HandshakeAllThreads (ZMarkFlushAndFreeStacks) done
Event: 1.504 Executing VM operation: ZMarkFlushOperation
Event: 1.504 Executing VM operation: ZMarkFlushOperation done
Event: 1.504 Executing VM operation: ZMarkEndYoung (Allocation Stall)
Event: 1.504 Executing VM operation: ZMarkEndYoung (Allocation Stall) done
Event: 1.508 Executing VM operation: HandshakeAllThreads (ZMarkFlushAndFreeStacks)
Event: 1.508 Executing VM operation: HandshakeAllThreads (ZMarkFlushAndFreeStacks) done
Event: 1.508 Executing VM operation: ZMarkFlushOperation
Event: 1.508 Executing VM operation: ZMarkFlushOperation done
Event: 1.508 Executing VM operation: HandshakeAllThreads (ZMarkFlushAndFreeStacks)
Event: 1.508 Executing VM operation: HandshakeAllThreads (ZMarkFlushAndFreeStacks) done
Event: 1.508 Executing VM operation: ZMarkFlushOperation
Event: 1.508 Executing VM operation: ZMarkFlushOperation done
Event: 1.508 Executing VM operation: ZMarkEndOld (Allocation Stall)
Event: 1.519 Executing VM operation: ZMarkEndOld (Allocation Stall) done
Event: 1.519 Executing VM operation: ZRelocateStartYoung (Allocation Stall)
Event: 1.519 Executing VM operation: ZRelocateStartYoung (Allocation Stall) done
Event: 1.521 Executing VM operation: HandshakeAllThreads (ZRendezvous)
Event: 1.521 Executing VM operation: HandshakeAllThreads (ZRendezvous) done
Event: 1.521 Executing VM operation: ZRendezvousGCThreads
Event: 1.521 Executing VM operation: ZRendezvousGCThreads done

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

PR Comment: https://git.openjdk.org/jdk/pull/14248#issuecomment-1570361148


More information about the hotspot-dev mailing list