-
Enhancement
-
Resolution: Fixed
-
P4
-
11.0.9, 17, 18
-
b12
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8310313 | 17.0.9 | Aleksey Shipilev | P4 | Resolved | Fixed | b01 |
Later, Shenandoah switched to strong to-space invariant. Then,
This is innocuous at this point, since such HeapAccess would eventually resolve to raw access anyway for all current GCs. But this is awkward and would not even work if any GC tries to do something else than RawAccess when handling the primitive access. It would quite probably need to restore _raw versions then.
It would be more straight-forward to use direct (raw) accesses to mark word in mark() and set_mark(). It would also match the accesses to klass word. This does not look affecting performance, as current accessors seem to be compiled down to raw accesses.
It is a design question whether we want to keep all heap accesses decorated with Access API. If we do, then accesses to klass word should probably be decorated as well. If we don't, then ripping out primitive heap accessors would further simplify Access API.
Draft PR: https://github.com/openjdk/jdk/pull/5166
- backported by
-
JDK-8310313 Mark word accesses should not use Access API
- Resolved
- duplicates
-
JDK-8270911 Don't use Access API to access object header word
- Resolved
- relates to
-
JDK-8199735 Mark word updates need to use Access API
- Resolved
-
JDK-8251358 Clean up Access configuration after Shenandoah barrier change
- Resolved
- links to
-
Commit openjdk/jdk17u-dev/55c0eaa5
-
Commit openjdk/jdk/a81e5e93
-
Review openjdk/jdk17u-dev/1445
-
Review openjdk/jdk/5166
(3 links to)