Skip to content

Commit 63dface

Browse files
committed
Introduce tsan pipeline
1 parent e0861c0 commit 63dface

File tree

3 files changed

+33
-10
lines changed

3 files changed

+33
-10
lines changed

.github/workflows/ci-ut.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ jobs:
3131
- {name: "py3.13", python_version: "3.13", config: ""}
3232
- {name: "py3.14", python_version: "3.14", config: ""}
3333
- {name: "asan", python_version: "3.11", config: "--config=asan"}
34+
- {name: "tsan", python_version: "3.11", config: "--config=tsan"}
3435
container:
3536
# note this image shall match the one defined in platform/linux:tf_linux_gpu
3637
image: rocm/tensorflow-build@sha256:7fcfbd36b7ac8f6b0805b37c4248e929e31cf5ee3af766c8409dd70d5ab65faa

jax_rocm_plugin/.bazelrc

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,15 @@ build:rocm --copt=-Wno-gnu-offsetof-extensions
101101
build:rocm --copt=-Qunused-arguments
102102
build:rocm --action_env=TF_HIPCC_CLANG="1"
103103

104+
#############################################################################
105+
# Sanitizer configs
106+
#############################################################################
107+
build:sanitizer --linkopt="-L/usr/lib/llvm-18/lib/clang/18/lib/linux"
108+
build:sanitizer --linkopt="-Wl,-rpath,/usr/lib/llvm-18/lib/clang/18/lib/linux"
109+
build:sanitizer --run_under=//build/rocm:sanitizer_wrapper
110+
build:sanitizer --action_env TF_ROCM_AMDGPU_TARGETS="gfx908,gfx90a,gfx942"
111+
112+
build:asan --config=sanitizer
104113
build:asan --strip=never
105114
build:asan --copt -fsanitize=address
106115
build:asan --copt -DADDRESS_SANITIZER
@@ -111,14 +120,20 @@ build:asan --copt -gsplit-dwarf
111120
build:asan --copt -fno-omit-frame-pointer
112121
build:asan --linkopt -fsanitize=address
113122
build:asan --linkopt -g1
114-
115-
build:asan --linkopt="-L/usr/lib/llvm-18/lib/clang/18/lib/linux"
116-
build:asan --linkopt="-Wl,-rpath,/usr/lib/llvm-18/lib/clang/18/lib/linux"
117123
build:asan --linkopt="-lclang_rt.asan-x86_64"
118124
build:asan --linkopt="-lclang_rt.asan_cxx-x86_64"
119125
build:asan --//build/rocm:sanitizer=asan
120-
build:asan --run_under=//build/rocm:sanitizer_wrapper
121-
build:asan --action_env TF_ROCM_AMDGPU_TARGETS="gfx908,gfx90a,gfx942"
126+
127+
build:tsan --config=sanitizer
128+
build:tsan --strip=never
129+
build:tsan --copt -fsanitize=thread
130+
build:tsan --copt -g
131+
build:tsan --copt -fno-omit-frame-pointer
132+
build:tsan --linkopt -fsanitize=thread
133+
build:tsan --linkopt -g
134+
build:tsan --linkopt="-lclang_rt.tsan-x86_64"
135+
build:tsan --linkopt="-lclang_rt.tsan_cxx-x86_64"
136+
build:tsan --//build/rocm:sanitizer=tsan
122137

123138
#############################################################################
124139
# Configuration for running RBE builds and tests
Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,32 @@
11
#!/usr/bin/env bash
22

33
ASAN_RT="/usr/lib/llvm-18/lib/clang/18/lib/linux/libclang_rt.asan-x86_64.so"
4-
5-
# Only set LD_PRELOAD for the test binary, not for Bazel's wrappers
6-
export LD_PRELOAD="${ASAN_RT}"
4+
TSAN_RT="/usr/lib/llvm-18/lib/clang/18/lib/linux/libclang_rt.tsan-x86_64.so"
75

86
# Resolve suppression files from runfiles
97
ASAN_SUPP="$TEST_SRCDIR/jax_rocm_plugin/build/rocm/asan_ignore_list.txt"
108
LSAN_SUPP="$TEST_SRCDIR/jax_rocm_plugin/build/rocm/lsan_ignore_list.txt"
9+
TSAN_SUPP="$TEST_SRCDIR/jax_rocm_plugin/build/rocm/tsan_ignore_list.txt"
1110

1211
ASAN_OPTS="use_sigaltstack=0:detect_leaks=0"
1312
LSAN_OPTS="use_sigaltstack=0"
13+
TSAN_OPTS="history_size=7:ignore_noninstrumented_modules=1"
1414

1515
if [[ -f "$ASAN_SUPP" ]]; then
16-
ASAN_OPTS="suppressions=${ASAN_SUPP}:${ASAN_OPTS}"
16+
export LD_PRELOAD="${ASAN_RT}"
17+
ASAN_OPTS="suppressions=${ASAN_SUPP}:${ASAN_OPTS}"
1718
fi
1819
if [[ -f "$LSAN_SUPP" ]]; then
19-
LSAN_OPTS="suppressions=${LSAN_SUPP}:${LSAN_OPTS}"
20+
export LD_PRELOAD="${ASAN_RT}"
21+
LSAN_OPTS="suppressions=${LSAN_SUPP}:${LSAN_OPTS}"
22+
fi
23+
if [[ -f "$TSAN_SUPP" ]]; then
24+
export LD_PRELOAD="${TSAN_RT}"
25+
TSAN_OPTS="suppressions=${TSAN_SUPP}:${TSAN_OPTS}"
2026
fi
2127

2228
export ASAN_OPTIONS="${ASAN_OPTS}"
2329
export LSAN_OPTIONS="${LSAN_OPTS}"
30+
export TSAN_OPTIONS="${TSAN_OPTS}"
2431

2532
exec "$@"

0 commit comments

Comments
 (0)