RESOLVED FIXED314598
Use isb in ParkingLot spinloop on ARM64
https://bugs.webkit.org/show_bug.cgi?id=314598
Summary Use isb in ParkingLot spinloop on ARM64
Marcus Plutowski
Reported 2026-05-11 18:34:00 PDT
Currently, ParkingLot on ARM64 uses `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 will require retuning the nop-counts.
Attachments
Marcus Plutowski
Comment 1 2026-05-11 22:23:13 PDT
Marcus Plutowski
Comment 2 2026-05-11 22:23:32 PDT
EWS
Comment 3 2026-05-12 08:36:11 PDT
Committed 313082@main (1e389bdbdcc4): <https://commits.webkit.org/313082@main> Reviewed commits have been landed. Closing PR #64733 and removing active labels.
Note You need to log in before you can comment on or make changes to this bug.