Integrated: 8365880: Shenandoah: Unify memory usage accounting in ShenandoahFreeSet
Kelvin Nilsen
kdnilsen at openjdk.org
Fri Oct 31 21:05:22 UTC 2025
On Wed, 20 Aug 2025 19:17:48 GMT, Kelvin Nilsen <kdnilsen at openjdk.org> wrote:
> This PR eliminates redundant bookkeeping that had been carried out by both ShenandoahGeneration and ShenandoahFreeSet. In the new code, we keep a single tally of relevant information within ShenandoahFreeSet.
> Queries serviced by ShenandoahGeneration are now delegated to ShenandoahFreeSet.
>
> This change eliminates rare and troublesome assertion failures that were often raised when the ShenandoahFreeSet tallies did not match the ShenandoahGeneration tallies. These assertion failures resulted because the two sets of books are updated at different times, using different synchronization mechanisms.
>
> The other benefit of this change is that we have less synchronization overhead because we only have to maintain a single set of books.
This pull request has now been integrated.
Changeset: ec059c0e
Author: Kelvin Nilsen <kdnilsen at openjdk.org>
URL: https://git.openjdk.org/jdk/commit/ec059c0e85bc612f430269d9e110dc7ecbdce342
Stats: 3516 lines in 43 files changed: 2110 ins; 1006 del; 400 mod
8365880: Shenandoah: Unify memory usage accounting in ShenandoahFreeSet
Reviewed-by: wkemper
-------------
PR: https://git.openjdk.org/jdk/pull/26867
More information about the hotspot-gc-dev
mailing list