verilator/test_regress/tsan.supp

34 lines
1.4 KiB
Plaintext

# DESCRIPTION: Verilator: ThreadSanitizer default suppressions for test_regress
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of either the GNU Lesser General Public License Version 3
# or the Perl Artistic License Version 2.0.
# SPDX-FileCopyrightText: 2026 Wilson Snyder
# SPDX-License-Identifier: LGPL-3.0-only OR Artistic-2.0
#
# This file is used via TSAN_OPTIONS by driver.py when running a test with
# ThreadSanitizer (--tsan option, or test.enable_tsan()). Suppress known
# races in the runtime library. TODO: most of these should likely be fixed.
# Racy update of the cached last-used context pointer
race:*Verilated::lastContextp*
# Model teardown may destroy mtask state while a worker thread is still
# returning from signaling completion of the final mtask
race:*VlMTaskVertex::signalUpstreamDone*
# The parallel trace buffer handoff between worker threads and the commit
# on the dumping thread is not visible to ThreadSanitizer; this includes
# the trace worker unlocking a mutex locked by the dumping thread
race:*VerilatedTrace*
race:*VerilatedVcd*
mutex:*VerilatedTrace*
# vl_stop (e.g. on assertion failure) tears the model down via exit
# handlers while worker threads may still be executing the current eval
race:*vl_stop*
# The --debug-runtime-timeout alarm handler prints via the runtime, which
# allocates; not async-signal-safe. Note 'signal:' matches the handler name.
signal:*alarmHandler*