Skip to content

Conversation

@chadrako
Copy link
Contributor

@chadrako chadrako commented Dec 19, 2025

JDK-8374045

This PR adds a new utility tool CodeCacheFragmenter to help with testing HotSpot code cache fragmentation scenarios. The tool is a Java agent that uses the WhiteBox API to create and randomly free dummy code blobs in the NonProfiled code heap to achieve a specified fill percentage. It includes configurable parameters for blob sizes, target fill percentage (0-100%), and random seeding to enable reproducible fragmentation patterns. The utility is built via a standard Makefile and produces codecachefragmenter.jar which can be used as a Java agent with -javaagent flag. This tool is intended for performance testing and experimentation with code cache behavior under various fragmentation conditions.

This is useful to show the performance benefits of JDK-8326205


Progress

  • Change must be properly reviewed (1 review required, with at least 1 Reviewer)
  • Change must not contain extraneous whitespace
  • Commit message must refer to an issue

Issue

  • JDK-8374045: Add support to run benchmarking with fragmented CodeCache (Enhancement - P4)

Reviewing

Using git

Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/28934/head:pull/28934
$ git checkout pull/28934

Update a local copy of the PR:
$ git checkout pull/28934
$ git pull https://git.openjdk.org/jdk.git pull/28934/head

Using Skara CLI tools

Checkout this PR locally:
$ git pr checkout 28934

View PR using the GUI difftool:
$ git pr show -t 28934

Using diff file

Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/28934.diff

@bridgekeeper
Copy link

bridgekeeper bot commented Dec 19, 2025

👋 Welcome back chadrako! A progress list of the required criteria for merging this PR into master will be added to the body of your pull request. There are additional pull request commands available for use with this pull request.

@openjdk
Copy link

openjdk bot commented Dec 19, 2025

❗ This change is not yet ready to be integrated.
See the Progress checklist in the description for automated requirements.

@openjdk
Copy link

openjdk bot commented Dec 19, 2025

@chadrako To determine the appropriate audience for reviewing this pull request, one or more labels corresponding to different subsystems will normally be applied automatically. However, no automatic labelling rule matches the changes in this pull request. In order to have an "RFR" email sent to the correct mailing list, you will need to add one or more applicable labels manually using the /label pull request command.

Applicable Labels
  • build
  • client
  • compiler
  • core-libs
  • hotspot
  • hotspot-compiler
  • hotspot-gc
  • hotspot-jfr
  • hotspot-runtime
  • i18n
  • ide-support
  • javadoc
  • jdk
  • jmx
  • net
  • nio
  • security
  • serviceability
  • shenandoah

@chadrako
Copy link
Contributor Author

/label add tools

@openjdk
Copy link

openjdk bot commented Dec 19, 2025

@chadrako
The label tools is not a valid label.
These labels are valid:

  • serviceability
  • hotspot
  • hotspot-compiler
  • ide-support
  • i18n
  • shenandoah
  • jdk
  • javadoc
  • security
  • hotspot-runtime
  • jmx
  • build
  • nio
  • client
  • core-libs
  • compiler
  • net
  • hotspot-gc
  • hotspot-jfr

@chadrako
Copy link
Contributor Author

/label add compiler

@openjdk
Copy link

openjdk bot commented Dec 19, 2025

@chadrako
The compiler label was successfully added.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.

1 participant