RFR: 8319901: Recursive lightweight locking: ppc64le implementation
Axel Boldt-Christmas
aboldtch at openjdk.org
Tue Feb 20 18:19:16 UTC 2024
Draft implementation of recursive lightweight JDK-8319796 for ppc64le.
Porters feel free to discard this and implement something from scratch, take this initial draft and run with it, or send patches to me and if you want me to drive the PR.
Some notes:
ppc64le deviates from the other ports, it shares it C2 locking code with the native call wrapper. This draft unifies the behavior across the ports by using the C1/interpreter locking for native call wrapper. If it is important to have a fast path for the inflated monitor case for native call wrapper, it could be done without having it share its implementation with C2.
It would also be possible to change this behavior on all ports (share the C2 code), as I believe the C2 assumptions always hold for the native call wrapper, the monitor exit and monitor enter will be balanced and structured.
-------------
Commit messages:
- TheRealMDoerr: Cleanups
- Apply patch
- Unify ldx usage between unlock and lock.
- Unify ldx usage between unlock and lock
- Fix usage of R0 in MacroAssembler::compiler_fast_lock_lightweight_object
- Revert "Avoid R0 as input to compiler_fast_*"
- Fix usage of R0 in MacroAssembler::lightweight_lock
- Avoid R0 as input to compiler_fast_*
- Merge remote-tracking branch 'upstream_jdk/master' into JDK-8319901
- Merge remote-tracking branch 'upstream_jdk/pr/16606' into JDK-8319901
- ... and 39 more: https://git.openjdk.org/jdk/compare/71ff2d71...6eec9a2e
Changes: https://git.openjdk.org/jdk/pull/16611/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=16611&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8319901
Stats: 509 lines in 9 files changed: 409 ins; 65 del; 35 mod
Patch: https://git.openjdk.org/jdk/pull/16611.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/16611/head:pull/16611
PR: https://git.openjdk.org/jdk/pull/16611
More information about the hotspot-dev
mailing list