RFR: 8323807: Async UL: Add a stalling mode to async UL

Johan Sjölen jsjolen at openjdk.org
Wed Mar 20 16:49:31 UTC 2024


Hi,

This PR does two things for the asynchronous UL mode:

1. Replaces the ping-pong buffers with a circular buffer.
2. Adds a `stall` mode to async UL, ensuring that no messages are ever dropped if the log message producers out pace the log message writing thread.

These changes have been discussed on the hotspot-dev mailing list under the thread name "Request for Comment: Add a stalling mode to asynchronous UL". Xin Liu, the original author of the ping-pong approach, has confirmed that switching to circular buffers leads to a reduced rate of dropped messages.

The ticket description and my original e-mail contain approximately the same information and I'd recommend that you read either of those if you want an overview of why these changes are made and what the high-level protocol is.

All the best,
Johan

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

Commit messages:
 - Missing N
 - Move constructors out of header file
 - Style
 - Correctly implement stalling
 - Missed one
 - Fix lossy conversions in tests
 - Merge remote-tracking branch 'origin/master' into ul-async-producer-consumer-take2
 - Only include sys/mman on Linux
 - Revert back to original Linux impl
 - Fix bugs only visible in the alternative impl
 - ... and 30 more: https://git.openjdk.org/jdk/compare/71b46c38...f9506796

Changes: https://git.openjdk.org/jdk/pull/17757/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=17757&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8323807
  Stats: 966 lines in 9 files changed: 535 ins; 348 del; 83 mod
  Patch: https://git.openjdk.org/jdk/pull/17757.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/17757/head:pull/17757

PR: https://git.openjdk.org/jdk/pull/17757


More information about the hotspot-runtime-dev mailing list