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