RFR: 8392760: Improve liveness/remembered set verification for G1 [v2]
Thomas Schatzl
tschatzl at openjdk.org
Tue Feb 21 11:54:15 UTC 2023
> Hi all,
>
> can I have reviews for this refactoring/cleanup of the liveness/remembered set verification code for G1?
>
> Here is an overview of the changes
> - previously liveness and remembered set verification could be done separately. Thismade the code a bit more complicated than necessary; now that remembered set verification always follows liveness verification, the code can assume that and do some minor cleanup. I kept the remembered verification a separate closure (`VerifyRemSetClosure`) because the additional boiler plate code is negligible compared to the other duplication that would have been needed around failure count tracking.
> - factored out liveness and remembered set verification from `HeapRegion::verify`, and heavily cleaned up the resulting `HeapRegion::verify_liveness_and_remembered_set`. This includes some removal of code duplication wrt to the failure count tracking.
> - factored out a special `G1VerificationClosure::is_oop_safe` method that adds more checking of the `Klass`; I hesitated to put this into `Universe::is_oop` as this is much more extensive checking (and I wanted implicit error reporting :))
> - CollectedHeap::is_oop() should use `klass_raw` because otherwise it will immediately assert on oops with garbage Klass values (the new code will just return `false` as expected).
> - some special `oopDesc::print_name_on()` which does not crash on bad oops, similar to existing related debugging helpers.
>
> Thanks,
> Thomas
Thomas Schatzl has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains three commits:
- Refactoring after 8302975
- initial attempts, nothing done
further cleanup
more cleanup
factor out changes that move the verifylivenessclosure
fix compilation
kbarrett review, indentation
Minor removal of unnecessary code
initial version
more cleanup
More improvements
More removal of stuff
More cleanup
More^2 cleanup
Remove some changes
More cleanups
fix compilation
Cleanup
- removal
-------------
Changes: https://git.openjdk.org/jdk/pull/12660/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=12660&range=01
Stats: 359 lines in 12 files changed: 119 ins; 171 del; 69 mod
Patch: https://git.openjdk.org/jdk/pull/12660.diff
Fetch: git fetch https://git.openjdk.org/jdk pull/12660/head:pull/12660
PR: https://git.openjdk.org/jdk/pull/12660
More information about the hotspot-gc-dev
mailing list