JDK-8327388 : GenShen: census during marking is partial
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: repo-shenandoah
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2024-03-05
  • Updated: 2024-06-18
  • Resolved: 2024-04-14
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other
repo-shenandoahFixed
Related Reports
Relates :  
Description
There was a bug in the placement of the call to clear stale census data before starting a fresh one for a new marking cycle that marks through the younger generation. This bug resulted in the use of a co-terminal suffix of the census collection, losing all data from the earlier iterations of an iterative collection process that may run up to 5 times.

We stumbled upon the defect when working on a refactoring task involving separation of generational extensions of Shenandoah from its non-generational version. The (performance) defect has existed since day zero of the adaptive tenuring code in GenShen.

Along with fixing the defect, an assertion has been added to check the "reasonable completeness" of the census.

Some ShenandoahAgeCensus APIs have been narrowed and cleaned.
Comments
A pull request was submitted for review. URL: https://git.openjdk.org/shenandoah-jdk21u/pull/57 Date: 2024-06-18 14:23:10 +0000
18-06-2024

Commit: https://github.com/ysramakrishna/shenandoah/commit/10febd95d093165ca2e91c12e385e3754dc47ea0 PR: https://github.com/openjdk/shenandoah/pull/403
14-04-2024