RFR: 8329629: GC interfaces should work directly against nmethod instead of CodeBlob [v2]
Stefan Karlsson
stefank at openjdk.org
Tue Apr 9 07:28:40 UTC 2024
> The GCs scan and handles nmethods and ignores CodeBlobs of other kinds. The I propose that we stop sending in CodeBlobs to the GCs and make sure to only give them nmethods.
>
> I removed `void CodeCache::blobs_do(CodeBlobClosure* f)` since there's no more usage of that function. Is this OK?
>
> I also opted to skipped calling the GC verification code from the iterator code:
>
> Universe::heap()->verify_nmethod((nmethod*)cb);
>
> IMHO, I think it is up to the GCs to decide if they want to perform extra nmethod verification. If someone wants to keep this verification in their favorite GC I can add calls to this function where we used to call CodeCache::blobs_do.
>
> I've only done limited testing and will run extensive testing concurrent with the review.
Stefan Karlsson has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains two additional commits since the last revision:
- Merge remote-tracking branch 'upstream/master' into 8329629_do_code_blob
- 8329629: GC interfaces should work directly against nmethod instead of CodeBlob
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/18653/files
- new: https://git.openjdk.org/jdk/pull/18653/files/e10683e2..1c2bdaea
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=18653&range=01
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=18653&range=00-01
Stats: 5545 lines in 115 files changed: 3743 ins; 1387 del; 415 mod
Patch: https://git.openjdk.org/jdk/pull/18653.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/18653/head:pull/18653
PR: https://git.openjdk.org/jdk/pull/18653
More information about the shenandoah-dev
mailing list