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