Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: f01297663d405f5f74796bde25933ff9230d560e
      
https://github.com/WebKit/WebKit/commit/f01297663d405f5f74796bde25933ff9230d560e
  Author: Dan Hecht <[email protected]>
  Date:   2026-07-28 (Tue, 28 Jul 2026)

  Changed paths:
    M Source/bmalloc/libpas/src/test/IsoHeapChaosTests.cpp
    M Source/bmalloc/libpas/src/test/ScavengerExternalWorkTests.cpp

  Log Message:
  -----------
  [libpas] Fix frequent-scavenging test scopes decommitting almost nothing
https://bugs.webkit.org/show_bug.cgi?id=320506
rdar://183470095

Reviewed by Yusuke Suzuki.

pas_scavenger_max_epoch_delta is unsigned, so assigning it a negative value
wraps to near 2^64. The scavenger's epoch subtraction then underflows and
clamps max_epoch to PAS_EPOCH_MIN, which admits almost no pages -- the opposite
of the intended aggressive decommit. Use 0, which yields max_epoch equal to the
current epoch so every page qualifies, and which EpochIsCounter in TestHarness
already uses for the same purpose. Four scopes across two test files had the
negative value; none remains in the tree.

Verified with temporary logging in the scavenger, sampling one in 200 passes 
over
a full run of the affected scopes:

                   overflow   passes blocked by max_epoch   bytes decommitted
  negative delta       yes              87%                      162 MB
  delta = 0            no               20%                     3214 MB

frequent-scavenging 49/49, ScavengerExternalWork 2/2, testAllocationChaos
252/252, AllocationZeroing 14/14.

* Source/bmalloc/libpas/src/test/IsoHeapChaosTests.cpp:
(std::addIsoTests):
(std::addAllTests):
* Source/bmalloc/libpas/src/test/ScavengerExternalWorkTests.cpp:
(addScavengerExternalWorkTests):

Canonical link: https://commits.webkit.org/318111@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to