[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 02/22] bsd-user/mmap: use TSA_NO_TSA to suppress clang TSA warning
From: |
Kevin Wolf |
Subject: |
[PULL 02/22] bsd-user/mmap: use TSA_NO_TSA to suppress clang TSA warnings in FreeBSD |
Date: |
Fri, 17 Feb 2023 16:09:34 +0100 |
From: Emanuele Giuseppe Esposito <eesposit@redhat.com>
FreeBSD implements pthread headers using TSA (thread safety analysis)
annotations, therefore when an application is compiled with
-Wthread-safety there are some locking/annotation requirements that the
user of the pthread API has to follow.
This will also be the case in QEMU, since bsd-user/mmap.c uses the
pthread API. Therefore when building it with -Wthread-safety the
compiler will throw warnings because the functions are not properly
annotated. We need TSA to be enabled because it ensures that the
critical sections of an annotated variable are properly locked.
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 all users of pthread_mutex_lock
and pthread_mutex_unlock), simply use TSA_NO_TSA to supppress such
warnings.
Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Message-Id: <20230117135203.3049709-3-eesposit@redhat.com>
Reviewed-by: Warner Losh <imp@bsdimp.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
bsd-user/qemu.h | 5 +++--
include/exec/exec-all.h | 5 +++--
2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/bsd-user/qemu.h b/bsd-user/qemu.h
index 0ceecfb6df..4e7b8b1c06 100644
--- a/bsd-user/qemu.h
+++ b/bsd-user/qemu.h
@@ -36,6 +36,7 @@ extern char **environ;
#include "target_os_signal.h"
#include "target.h"
#include "exec/gdbstub.h"
+#include "qemu/clang-tsa.h"
/*
* This struct is used to hold certain information about the image. Basically,
@@ -234,8 +235,8 @@ int target_msync(abi_ulong start, abi_ulong len, int flags);
extern unsigned long last_brk;
extern abi_ulong mmap_next_start;
abi_ulong mmap_find_vma(abi_ulong start, abi_ulong size);
-void mmap_fork_start(void);
-void mmap_fork_end(int child);
+void TSA_NO_TSA mmap_fork_start(void);
+void TSA_NO_TSA mmap_fork_end(int child);
/* main.c */
extern char qemu_proc_pathname[];
diff --git a/include/exec/exec-all.h b/include/exec/exec-all.h
index 54585a9954..0e36f4d063 100644
--- a/include/exec/exec-all.h
+++ b/include/exec/exec-all.h
@@ -25,6 +25,7 @@
#include "exec/cpu_ldst.h"
#endif
#include "qemu/interval-tree.h"
+#include "qemu/clang-tsa.h"
/* allow to see translation results - the slowdown should be negligible, so we
leave it */
#define DEBUG_DISAS
@@ -759,8 +760,8 @@ static inline tb_page_addr_t
get_page_addr_code(CPUArchState *env,
}
#if defined(CONFIG_USER_ONLY)
-void mmap_lock(void);
-void mmap_unlock(void);
+void TSA_NO_TSA mmap_lock(void);
+void TSA_NO_TSA mmap_unlock(void);
bool have_mmap_lock(void);
/**
--
2.39.2
- [PULL 00/22] Block layer patches, Kevin Wolf, 2023/02/17
- [PULL 01/22] util/qemu-thread-posix: use TSA_NO_TSA to suppress clang TSA warnings in FreeBSD, Kevin Wolf, 2023/02/17
- [PULL 04/22] curl: Fix error path in curl_open(), Kevin Wolf, 2023/02/17
- [PULL 03/22] configure: Enable -Wthread-safety if present, Kevin Wolf, 2023/02/17
- [PULL 02/22] bsd-user/mmap: use TSA_NO_TSA to suppress clang TSA warnings in FreeBSD,
Kevin Wolf <=
- [PULL 06/22] block: Create no_co_wrappers for open functions, Kevin Wolf, 2023/02/17
- [PULL 09/22] qcow: Fix .bdrv_co_create(_opts) to open images with no_co_wrapper, Kevin Wolf, 2023/02/17
- [PULL 12/22] vdi: Fix .bdrv_co_create(_opts) to open images with no_co_wrapper, Kevin Wolf, 2023/02/17
- [PULL 08/22] parallels: Fix .bdrv_co_create(_opts) to open images with no_co_wrapper, Kevin Wolf, 2023/02/17
- [PULL 17/22] block: Assert non-coroutine context for bdrv_open_inherit(), Kevin Wolf, 2023/02/17
- [PULL 13/22] vhdx: Fix .bdrv_co_create(_opts) to open images with no_co_wrapper, Kevin Wolf, 2023/02/17
- [PULL 05/22] block-coroutine-wrapper: Introduce no_co_wrapper, Kevin Wolf, 2023/02/17
- [PULL 07/22] luks: Fix .bdrv_co_create(_opts) to open images with no_co_wrapper, Kevin Wolf, 2023/02/17
- [PULL 18/22] block: Handle curl 7.55.0, 7.85.0 version changes, Kevin Wolf, 2023/02/17
- [PULL 11/22] qed: Fix .bdrv_co_create(_opts) to open images with no_co_wrapper, Kevin Wolf, 2023/02/17