RFR: 8212107: VMThread issues and cleanup

Robbin Ehn rehn at openjdk.java.net
Thu Sep 17 20:34:19 UTC 2020


We simplify the vmThread by removing the queue and refactor the the main loop.
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