RFR: 8327388: GenShen: census during marking is partial [v4]
Y. Srinivas Ramakrishna
ysr at openjdk.org
Tue Apr 9 20:05:21 UTC 2024
On Tue, 9 Apr 2024 00:45:35 GMT, Y. Srinivas Ramakrishna <ysr at openjdk.org> wrote:
>> 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, which came in useful to detect a reset call inadvertently left behind in one place.
>>
>> Some ShenandoahAgeCensus APIs have been narrowed and cleaned up a bit, and documentation clarified a bit more.
>>
>> **Testing**:
>> - [x] GHA
>> - [x] Code pipeline testing : rerunning because of an infra script glitch; tests were all green though.
>> - [x] SPECjbb
>>
>> **Performance**: Tests are being rerun
>> - [x] SPECjbb : the variance in tests appears to fail significance under 2-tailed Mann-Whitney
>> - [ ] SPECjbb (patched for wk ref issue) : TBD
>> - [ ] Extremem : in progress
>
> Y. Srinivas Ramakrishna has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 16 commits:
>
> - Merge branch 'master' into clear_census
> - Merge branch 'master' into clear_census
> - Merge branch 'master' into clear_census
> - Remove local_reset of age_census object inadvertently left behind in the
> GLOBAL gen concurrent mark, which was triggering the newly added
> reasonableness assert (yay!).
> - Avoid divide-by-zero.
> - Merge branch 'master' into clear_census
> - Fix word and byte size unit confusion in comparison/assert.
> - Loose verification of "reasonable completeness" of census.
> - Fix release build.
> - Support for verification of census' reasonableness, but no verification
> itself yet.
> - ... and 6 more: https://git.openjdk.org/shenandoah/compare/11295a6a...d5fb72cc
After the fixing of some of the upstream issues that had snuck in, the testing is all green now. I'll rerun the performance measurements and update the description in the PR. If all goes well, we plan to intergrate it as soon as performance numbers are at hand.
-------------
PR Comment: https://git.openjdk.org/shenandoah/pull/403#issuecomment-2045960020
More information about the shenandoah-dev
mailing list