On Wed, 20 Aug 2025 19:17:48 GMT, Kelvin Nilsen <[email protected]> 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 <[email protected]> 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
