[all-commits] [llvm/llvm-project] f811c7: [rtsan][Apple] Add interceptor for _os_nospin_lock...

thetruestblue via All-commits all-commits at lists.llvm.org
Sat May 10 11:03:25 PDT 2025


  Branch: refs/heads/release/20.x
  Home:   https://github.com/llvm/llvm-project
  Commit: f811c7df0a105549aeae2aa42ca31f6d55e652f2
      https://github.com/llvm/llvm-project/commit/f811c7df0a105549aeae2aa42ca31f6d55e652f2
  Author: davidtrevelyan <davidtrevelyan at users.noreply.github.com>
  Date:   2025-05-10 (Sat, 10 May 2025)

  Changed paths:
    M compiler-rt/lib/rtsan/rtsan_interceptors_posix.cpp
    M compiler-rt/lib/rtsan/tests/rtsan_test_interceptors_posix.cpp

  Log Message:
  -----------
  [rtsan][Apple] Add interceptor for _os_nospin_lock_lock (#131034)

Follows the discussion here:
https://github.com/llvm/llvm-project/pull/129309

Recently, the test
`TestRtsan.AccessingALargeAtomicVariableDiesWhenRealtime` has been
failing on newer MacOS versions, because the internal locking mechanism
in `std::atomic<T>::load` (for types `T` that are larger than the
hardware lock-free limit), has changed to a function that wasn't being
intercepted by rtsan.

This PR introduces an interceptor for `_os_nospin_lock_lock`, which is
the new internal locking mechanism.

_Note: we'd probably do well to introduce interceptors for
`_os_nospin_lock_unlock` (and `os_unfair_lock_unlock`) too, which also
appear to have blocking implementations. This can follow in a separate
PR._

(cherry picked from commit 481a55a3d9645a6bc1540d326319b78ad8ed8db1)


  Commit: b7b834e2a20ed295eaab596dd348db5463b951d8
      https://github.com/llvm/llvm-project/commit/b7b834e2a20ed295eaab596dd348db5463b951d8
  Author: thetruestblue <bblueconway at gmail.com>
  Date:   2025-05-10 (Sat, 10 May 2025)

  Changed paths:
    M compiler-rt/lib/rtsan/rtsan_interceptors_posix.cpp
    M compiler-rt/lib/rtsan/tests/rtsan_test_interceptors_posix.cpp

  Log Message:
  -----------
  [RTSan][Darwin] Adjust OSSpinLock/_os_nospin_lock interceptor and tests (#132867)

These changes align with these lock types and allows builds and tests to
pass with various SDKS.

rdar://147067322
(cherry picked from commit 7cc4472037b43971bd3ee373fe75b5043f5abca9)


Compare: https://github.com/llvm/llvm-project/compare/4370072022e5...b7b834e2a20e

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


More information about the All-commits mailing list