-
Enhancement
-
Resolution: Fixed
-
P4
-
9
-
b17
-
arm, ppc
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8204788 | 11.0.1 | Michihiro Horie | P4 | Resolved | Fixed | team |
The current implementation of cmpxchg was done in a sequential consistent way.
On PPC64, it uses a sync instruction before and one after the cmpxchg code which is the most conservative implementation.
However, these sync instructions cause overhead because they are very expensive in the current POWER chip design.
Proposed Enhancement (by Hiroshi H Horii):
Callers can explicitly specify memory barriers. Default value must be conservative so it is not necessary to change all callers.
The change will improve performance of copy_to_survivor in the parallel GC.
copy_to_survivor changes forward pointers by using cmpxchg. This operation doesn't require any sync instructions.
A pointer is changed at most once in a GC and when cmpxchg fails, the latest pointer is available for the caller.
On PPC64, it uses a sync instruction before and one after the cmpxchg code which is the most conservative implementation.
However, these sync instructions cause overhead because they are very expensive in the current POWER chip design.
Proposed Enhancement (by Hiroshi H Horii):
Callers can explicitly specify memory barriers. Default value must be conservative so it is not necessary to change all callers.
The change will improve performance of copy_to_survivor in the parallel GC.
copy_to_survivor changes forward pointers by using cmpxchg. This operation doesn't require any sync instructions.
A pointer is changed at most once in a GC and when cmpxchg fails, the latest pointer is available for the caller.
- backported by
-
JDK-8204788 enhancement of cmpxchg and copy_to_survivor for ppc64
-
- Resolved
-
- relates to
-
JDK-8263107 PSPromotionManager::copy_and_push_safe_barrier needs acquire memory barrier
-
- Resolved
-
-
JDK-8155949 Support relaxed semantics in cmpxchg
-
- Resolved
-
-
JDK-8204524 Unnecessary memory barriers in G1ParScanThreadState::copy_to_survivor_space
-
- Resolved
-
-
JDK-8269870 PS: Membar in PSPromotionManager::copy_unmarked_to_survivor_space could be relaxed
-
- Resolved
-
-
JDK-8205908 Unnecessarily strong memory barriers in ParNewGeneration::copy_to_survivor_space
-
- Closed
-
(1 relates to)