[all-commits] [llvm/llvm-project] bd8411: [TSAN] Add __tsan_check_no_mutexes_held helper (#6...

Kenny Yu via All-commits all-commits at lists.llvm.org
Thu Nov 2 22:54:05 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: bd841111f340a73eb23c1be70ff1be4c8a6afb0c
      https://github.com/llvm/llvm-project/commit/bd841111f340a73eb23c1be70ff1be4c8a6afb0c
  Author: Kenny Yu <yu.kenny124 at gmail.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M compiler-rt/include/sanitizer/tsan_interface.h
    M compiler-rt/lib/tsan/rtl/tsan.syms.extra
    M compiler-rt/lib/tsan/rtl/tsan_debugging.cpp
    M compiler-rt/lib/tsan/rtl/tsan_interface_ann.cpp
    M compiler-rt/lib/tsan/rtl/tsan_report.cpp
    M compiler-rt/lib/tsan/rtl/tsan_report.h
    M compiler-rt/lib/tsan/rtl/tsan_suppressions.cpp
    A compiler-rt/test/tsan/mutex_held_wrong_context.cpp

  Log Message:
  -----------
  [TSAN] Add __tsan_check_no_mutexes_held helper (#69372)

This adds a new helper that can be called from application code to
ensure that no mutexes are held on specific code paths. This is useful
for multiple scenarios, including ensuring no locks are held:

- at thread exit
- in peformance-critical code
- when a coroutine is suspended (can cause deadlocks)

See this discourse thread for more discussion:

https://discourse.llvm.org/t/add-threadsanitizer-check-to-prevent-coroutine-suspending-while-holding-a-lock-potential-deadlock/74051




More information about the All-commits mailing list