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.

-------------

Commit messages:
 - 8329629: GC interfaces should work directly against nmethod instead of 
CodeBlob

Changes: https://git.openjdk.org/jdk/pull/18653/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=18653&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8329629
  Stats: 850 lines in 74 files changed: 238 ins; 318 del; 294 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

Reply via email to