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

Reply via email to