Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 1e389bdbdcc4cfcf8954427d0a44249814761b31
https://github.com/WebKit/WebKit/commit/1e389bdbdcc4cfcf8954427d0a44249814761b31
Author: Marcus Plutowski <[email protected]>
Date: 2026-05-12 (Tue, 12 May 2026)
Changed paths:
M Source/WTF/wtf/LockAlgorithmInlines.h
M Source/bmalloc/libpas/src/libpas/pas_internal_config.h
Log Message:
-----------
Use isb in ParkingLot spinloop on ARM64
https://bugs.webkit.org/show_bug.cgi?id=314598
rdar://176840292
Reviewed by Yusuke Suzuki.
Previously, ParkingLot on ARM64 used the `yield` instruction. External
experimentation has shown that it’s preferable to use an `isb`
instruction instead.
https://github.com/rust-lang/rust/commit/c064b6560b7ce0adeb9bbf5d7dcf12b1acb0c807
The explantation there is not 100% accurate — an isb does not “put the
core to sleep” per se, but by draining the out-of-order buffer and
preventing the dispatch of younger instructions,
it does effectively throttle execution until fetch gets past the block
of isb instructions. The core continues executing but fully in-order.
The upside is more determinism and generally less power consumption.
This required retuning the nop-counts. This was done empirically.
No new tests since this is an implementation detail.
Canonical link: https://commits.webkit.org/313082@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications