RFR: 8212107: VMThread issues and cleanup
David Holmes
david.holmes at oracle.com
Mon Sep 21 03:22:29 UTC 2020
Hi Robbin,
On 18/09/2020 6:34 am, Robbin Ehn wrote:
> We simplify the vmThread by removing the queue and refactor the the main loop.
Can you explain why it was necessary to remove the queue and exactly
what it has been replaced with? I'd like to understand the new
higher-level design for VMOperation execution rather than trying to
reverse engineer it from the code changes.
Thanks,
David
-----
> This solves the issues listed:
> - It can create an extra safepoint directly after a safepoint.
> - It's not safe for a non-JavaThread to add safepoint to queue while GC do oops do.
> - The exposure of the vm operation is dangerous if it's a handshake.
> - The code is a hornets nest with the repetition of checks and branches
>
> Passes t1-8, and a benchmark run.
>
> If you want a smaller diff the commits contains the incremental progress and each commit passed t1.
>
> -------------
>
> Commit messages:
> - Fixed some indent misses
> - Fixed ws
> - Added assert
> - Restructured and simplified
> - Removed used linking in VM_Operation
> - Removed ticket and use only one Monitor
> - Removed queue
> - Basic simplifications, removed prio
>
> Changes: https://git.openjdk.java.net/jdk/pull/228/files
> Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=228&range=00
> Issue: https://bugs.openjdk.java.net/browse/JDK-8212107
> Stats: 431 lines in 7 files changed: 111 ins; 229 del; 91 mod
> Patch: https://git.openjdk.java.net/jdk/pull/228.diff
> Fetch: git fetch https://git.openjdk.java.net/jdk pull/228/head:pull/228
>
> PR: https://git.openjdk.java.net/jdk/pull/228
>
More information about the hotspot-dev
mailing list