-
Enhancement
-
Resolution: Fixed
-
P4
-
8-shenandoah, 11-shenandoah, 14, 15
-
b22
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8245906 | 14u-cpu | Aleksey Shipilev | P4 | Resolved | Fixed | master |
JDK-8245741 | 14.0.2 | Aleksey Shipilev | P4 | Resolved | Fixed | b08 |
The code after JDK-8239786 carries the _current_phase in the ShenandoahPhaseTimings. This works for stop-the-world events.
However, the testing ofJDK-8243495 shows a peculiarity: heap iteration roots walk can happen in the middle of concurrent root walk, which poses the problem for this mechanism: it can acquire a wrong "phase", or add the counters twice to some phase. It is reliably caught by asserts after JDK-8243495 is applied.
The way out is to pass Phase explicitly to every ShWorkerTimingsTracker, so we do not have this conflict at all.
However, the testing of
The way out is to pass Phase explicitly to every ShWorkerTimingsTracker, so we do not have this conflict at all.
- backported by
-
JDK-8245741 Shenandoah: carry Phase to ShWorkerTimingsTracker explicitly
- Resolved
-
JDK-8245906 Shenandoah: carry Phase to ShWorkerTimingsTracker explicitly
- Resolved
- blocks
-
JDK-8243495 Shenandoah: print root statistics for concurrent weak/strong root phases
- Resolved