RFR: 8225631: Consider replacing muxAcquire/Release with PlatformMonitor [v4]

David Holmes dholmes at openjdk.java.net
Tue Nov 17 22:35:20 UTC 2020


> This RFE was filed a while ago to see if we could get rid of `muxAcquire/release` to reduce overall code complexity. Initially some usages seemed to suffer some slight performance loss when I tried this. However, since then all but one usage have been removed and the final case, the `gInflationLock`'s in `ObjectSynchronizer read_stable_mark` does not suffer any performance degradation. It can also use `PlatformMutex` rather than `PlatformMonitor`.
> 
> On the plus side we remove a large chunk of complex synchronization code, we delete a `ParkEvent` per thread, and an int field per `ParkEvent` - which is good for footprint.
> 
> Testing:
> - GH actions
> - mach5 tiers 1-3
> - selected performance testing (guided by that used for JDK-8253064)
> 
> Thanks,
> David

David Holmes has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains six additional commits since the last revision:

 - Update power_of_2 static assertion placement.
 - Merge branch 'master' into 8225631
 - Move static_assert as requested by Kim.
 - Merge branch 'master' into 8225631
 - Feedback from Coleen, Kim and Dan.
 - 8225631: Consider replacing muxAcquire/Release with PlatformMonitor

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

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/1196/files
  - new: https://git.openjdk.java.net/jdk/pull/1196/files/7e3fe3db..a0eedf1c

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=1196&range=03
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=1196&range=02-03

  Stats: 2046 lines in 72 files changed: 1360 ins; 421 del; 265 mod
  Patch: https://git.openjdk.java.net/jdk/pull/1196.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/1196/head:pull/1196

PR: https://git.openjdk.java.net/jdk/pull/1196


More information about the hotspot-runtime-dev mailing list