8385596: Shenandoah: Introduce per-partition allocators with FreeSet API boundary#31327
8385596: Shenandoah: Introduce per-partition allocators with FreeSet API boundary#31327pengxiaolong wants to merge 17 commits into
Conversation
…ahAllocator interface
…r-interface # Conflicts: # src/hotspot/share/gc/shenandoah/shenandoahFreeSet.cpp # src/hotspot/share/gc/shenandoah/shenandoahFreeSet.hpp
… region optimization
…register_object during old-gen allocation
|
👋 Welcome back xpeng! A progress list of the required criteria for merging this PR into |
|
❗ This change is not yet ready to be integrated. |
|
@pengxiaolong The following labels will be automatically applied to this pull request:
When this pull request is ready to be reviewed, an "RFR" email will be sent to the corresponding mailing lists. If you would like to change these labels, use the /label pull request command. |
|
The total number of required reviews for this PR has been set to 2 based on the presence of this label: |
…artition allocators directly
…tition-allocator # Conflicts: # src/hotspot/share/gc/shenandoah/shenandoahSerialAllocator.cpp
|
|
Follow-up to JDK-8385592 (allocator interface).
This change introduces per-partition allocator instances (Mutator, Collector, OldCollector) templated on partition ID, and establishes a clean API boundary between allocators and ShenandoahFreeSet.
Key changes:
This establishes the foundation for the CAS-based allocator, which will use the same FreeSet APIs(and some new APIs) but manage its own locking (CAS fast path, locked slow path).
No behavioral change — the same region-selection logic runs under the heap lock as before.
Progress
Issue
Reviewing
Using
gitCheckout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/31327/head:pull/31327$ git checkout pull/31327Update a local copy of the PR:
$ git checkout pull/31327$ git pull https://git.openjdk.org/jdk.git pull/31327/headUsing Skara CLI tools
Checkout this PR locally:
$ git pr checkout 31327View PR using the GUI difftool:
$ git pr show -t 31327Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/31327.diff