All of lore.kernel.org
 help / color / mirror / Atom feed
From: Warner Losh <imp@bsdimp.com>
To: qemu-devel@nongnu.org
Cc: Kyle Evans <kevans@FreeBSD.org>,
	Richard Henderson <richard.henderson@linaro.org>,
	Stacey Son <sson@FreeBSD.org>, Laurent Vivier <laurent@vivier.eu>,
	Warner Losh <imp@bsdimp.com>
Subject: [PULL 20/23] bsd-user: Add stop_all_tasks
Date: Mon, 18 Oct 2021 10:04:55 -0600	[thread overview]
Message-ID: <20211018160458.1976-21-imp@bsdimp.com> (raw)
In-Reply-To: <20211018160458.1976-1-imp@bsdimp.com>

Similar to the same function in linux-user: this stops all the current tasks.

Signed-off-by: Stacey Son <sson@FreeBSD.org>
Signed-off-by: Warner Losh <imp@bsdimp.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Kyle Evans <kevans@FreeBSD.org>
---
 bsd-user/main.c | 9 +++++++++
 bsd-user/qemu.h | 1 +
 2 files changed, 10 insertions(+)

diff --git a/bsd-user/main.c b/bsd-user/main.c
index ee84554854..cb5ea40236 100644
--- a/bsd-user/main.c
+++ b/bsd-user/main.c
@@ -195,6 +195,15 @@ static void usage(void)
 
 __thread CPUState *thread_cpu;
 
+void stop_all_tasks(void)
+{
+    /*
+     * We trust when using NPTL (pthreads) start_exclusive() handles thread
+     * stopping correctly.
+     */
+    start_exclusive();
+}
+
 bool qemu_cpu_is_self(CPUState *cpu)
 {
     return thread_cpu == cpu;
diff --git a/bsd-user/qemu.h b/bsd-user/qemu.h
index c1170f14d9..cdb85140f4 100644
--- a/bsd-user/qemu.h
+++ b/bsd-user/qemu.h
@@ -103,6 +103,7 @@ typedef struct TaskState {
 } __attribute__((aligned(16))) TaskState;
 
 void init_task_state(TaskState *ts);
+void stop_all_tasks(void);
 extern const char *qemu_uname_release;
 
 /*
-- 
2.32.0



  parent reply	other threads:[~2021-10-18 16:22 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-18 16:04 [PULL 00/23] Pull bsd user 20211018 patches Warner Losh
2021-10-18 16:04 ` [PULL 01/23] bsd-user/mmap.c: Always zero MAP_ANONYMOUS memory in mmap_frag() Warner Losh
2021-10-18 16:04 ` [PULL 02/23] bsd-user/mmap.c: check pread's return value to fix warnings with _FORTIFY_SOURCE Warner Losh
2021-10-18 16:04 ` [PULL 03/23] bsd-user/mmap.c: MAP_ symbols are defined, so no need for ifdefs Warner Losh
2021-10-18 16:04 ` [PULL 04/23] bsd-user/mmap.c: mmap return ENOMEM on overflow Warner Losh
2021-10-18 16:04 ` [PULL 05/23] bsd-user/mmap.c: mmap prefer MAP_ANON for BSD Warner Losh
2021-10-18 16:04 ` [PULL 06/23] bsd-user/mmap.c: Convert to qemu_log logging for mmap debugging Warner Losh
2021-10-18 16:04 ` [PULL 07/23] bsd-user/mmap.c: Don't mmap fd == -1 independently from MAP_ANON flag Warner Losh
2021-10-18 18:45   ` Richard Henderson
2021-10-18 18:47     ` Warner Losh
2021-10-18 18:48       ` Richard Henderson
2021-10-18 16:04 ` [PULL 08/23] bsd-user/mmap.c: Implement MAP_EXCL, required by jemalloc in head Warner Losh
2021-10-18 16:04 ` [PULL 09/23] bsd-user/mmap.c: assert that target_mprotect cannot fail Warner Losh
2021-10-18 16:04 ` [PULL 10/23] meson: *-user: only descend into *-user when configured Warner Losh
2021-10-18 16:04 ` [PULL 11/23] bsd-user/target_os-user.h: Remove support for FreeBSD older than 12.0 Warner Losh
2021-10-18 16:04 ` [PULL 12/23] bsd-user/strace.list: Remove support for FreeBSD versions " Warner Losh
2021-10-18 16:04 ` [PULL 13/23] bsd-user: TARGET_RESET define is unused, remove it Warner Losh
2021-10-18 16:04 ` [PULL 14/23] bsd-user: export get_errno and is_error from syscall.c Warner Losh
2021-10-18 16:04 ` [PULL 15/23] bsd-user/errno_defs.h: Add internal error numbers Warner Losh
2021-10-18 16:04 ` [PULL 16/23] bsd-user: move TARGET_MC_GET_CLEAR_RET to target_os_signal.h Warner Losh
2021-10-18 16:04 ` [PULL 17/23] bsd-user/target_os_elf.h: Remove fallback ELF_HWCAP and reorder Warner Losh
2021-10-18 16:04 ` [PULL 18/23] bsd-user/target_os_elf: If ELF_HWCAP2 is defined, publish it Warner Losh
2021-10-18 16:04 ` [PULL 19/23] bsd-user: Remove used from TaskState Warner Losh
2021-10-18 16:04 ` Warner Losh [this message]
2021-10-18 16:04 ` [PULL 21/23] bsd-user/sysarch: Move to using do_freebsd_arch_sysarch interface Warner Losh
2021-10-18 16:04 ` [PULL 22/23] bsd-user: Rename sigqueue to qemu_sigqueue Warner Losh
2021-10-18 16:04 ` [PULL 23/23] bsd-user/signal: Create a dummy signal queueing function Warner Losh

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20211018160458.1976-21-imp@bsdimp.com \
    --to=imp@bsdimp.com \
    --cc=kevans@FreeBSD.org \
    --cc=laurent@vivier.eu \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    --cc=sson@FreeBSD.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.