On Tue, Jan 17, 2023 at 08:52:02AM -0500, Emanuele Giuseppe Esposito wrote: > QEMU does not compile when enabling clang's thread safety analysis > (TSA), > because some functions create wrappers for pthread mutexes but do > not use any TSA macro. Therefore the compiler fails. > > In order to make the compiler happy and avoid adding all the > necessary macros to all callers (lock functions should use > TSA_ACQUIRE, while unlock TSA_RELEASE, and this applies to allusers of > pthread_mutex_lock/pthread_mutex_unlock), > simply use TSA_NO_TSA to supppress such warnings. > > Signed-off-by: Emanuele Giuseppe Esposito <eespo...@redhat.com> > --- > bsd-user/qemu.h | 5 +++-- > include/exec/exec-all.h | 5 +++-- > 2 files changed, 6 insertions(+), 4 deletions(-)
As a TSA newbie I'm wondering how would we go about annotating this properly? Maybe: 1. mmap_lock() ACQUIRE(), mmap_unlock() RELEASE() 2. Find all functions that call mmap_lock() but not mmap_release() and add ACQUIRE(). 3. Find all functions that call mmap_unlock() but not mmap_lock() and add RELEASE(). Can you add an item to https://wiki.qemu.org/BiteSizedTasks so someone who wants to spend a few hours auditing the code can do this? Thanks!
signature.asc
Description: PGP signature