[all-commits] [llvm/llvm-project] b33213: tsan: new runtime (v3)

Dmitry Vyukov via All-commits all-commits at lists.llvm.org
Mon Dec 13 03:48:46 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: b332134921b42796c6b46453eaf2affdc09e3154
      https://github.com/llvm/llvm-project/commit/b332134921b42796c6b46453eaf2affdc09e3154
  Author: Dmitry Vyukov <dvyukov at google.com>
  Date:   2021-12-13 (Mon, 13 Dec 2021)

  Changed paths:
    M compiler-rt/lib/sanitizer_common/sanitizer_thread_registry.h
    M compiler-rt/lib/tsan/CMakeLists.txt
    M compiler-rt/lib/tsan/check_analyze.sh
    M compiler-rt/lib/tsan/go/build.bat
    M compiler-rt/lib/tsan/go/buildgo.sh
    M compiler-rt/lib/tsan/go/tsan_go.cpp
    M compiler-rt/lib/tsan/rtl/CMakeLists.txt
    M compiler-rt/lib/tsan/rtl/tsan_defs.h
    M compiler-rt/lib/tsan/rtl/tsan_dense_alloc.h
    M compiler-rt/lib/tsan/rtl/tsan_flags.cpp
    M compiler-rt/lib/tsan/rtl/tsan_flags.inc
    M compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
    M compiler-rt/lib/tsan/rtl/tsan_interface_atomic.cpp
    M compiler-rt/lib/tsan/rtl/tsan_interface_java.cpp
    M compiler-rt/lib/tsan/rtl/tsan_mman.cpp
    M compiler-rt/lib/tsan/rtl/tsan_mman.h
    M compiler-rt/lib/tsan/rtl/tsan_mutexset.cpp
    M compiler-rt/lib/tsan/rtl/tsan_mutexset.h
    M compiler-rt/lib/tsan/rtl/tsan_platform.h
    M compiler-rt/lib/tsan/rtl/tsan_platform_linux.cpp
    M compiler-rt/lib/tsan/rtl/tsan_platform_mac.cpp
    M compiler-rt/lib/tsan/rtl/tsan_platform_posix.cpp
    M compiler-rt/lib/tsan/rtl/tsan_platform_windows.cpp
    M compiler-rt/lib/tsan/rtl/tsan_rtl.cpp
    M compiler-rt/lib/tsan/rtl/tsan_rtl.h
    M compiler-rt/lib/tsan/rtl/tsan_rtl_access.cpp
    M compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cpp
    M compiler-rt/lib/tsan/rtl/tsan_rtl_proc.cpp
    M compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp
    M compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cpp
    M compiler-rt/lib/tsan/rtl/tsan_shadow.h
    M compiler-rt/lib/tsan/rtl/tsan_sync.cpp
    M compiler-rt/lib/tsan/rtl/tsan_sync.h
    M compiler-rt/lib/tsan/rtl/tsan_trace.h
    R compiler-rt/lib/tsan/rtl/tsan_update_shadow_word.inc
    M compiler-rt/lib/tsan/tests/unit/tsan_flags_test.cpp
    M compiler-rt/lib/tsan/tests/unit/tsan_shadow_test.cpp
    M compiler-rt/lib/tsan/tests/unit/tsan_stack_test.cpp
    M compiler-rt/lib/tsan/tests/unit/tsan_sync_test.cpp
    M compiler-rt/lib/tsan/tests/unit/tsan_trace_test.cpp
    M compiler-rt/test/tsan/bench_threads.cpp
    M compiler-rt/test/tsan/free_race2.c
    M compiler-rt/test/tsan/memcmp_race.cpp
    M compiler-rt/test/tsan/memcpy_race.cpp
    M compiler-rt/test/tsan/mutexset7.cpp
    M compiler-rt/test/tsan/thread_end_with_ignore.cpp
    M compiler-rt/test/tsan/thread_end_with_ignore2.cpp
    M compiler-rt/test/tsan/thread_end_with_ignore3.cpp

  Log Message:
  -----------
  tsan: new runtime (v3)

This change switches tsan to the new runtime which features:
 - 2x smaller shadow memory (2x of app memory)
 - faster fully vectorized race detection
 - small fixed-size vector clocks (512b)
 - fast vectorized vector clock operations
 - unlimited number of alive threads/goroutimes

Depends on D112602.

Reviewed By: melver

Differential Revision: https://reviews.llvm.org/D112603




More information about the All-commits mailing list