All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Xu <peterx@redhat.com>
To: qemu-devel@nongnu.org
Cc: Paolo Bonzini <pbonzini@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	peterx@redhat.com, Richard Henderson <rth@twiddle.net>
Subject: [PATCH v2 1/9] cpus: Export queue work related fields to cpu.h
Date: Fri, 23 Jul 2021 15:34:36 -0400	[thread overview]
Message-ID: <20210723193444.133412-2-peterx@redhat.com> (raw)
In-Reply-To: <20210723193444.133412-1-peterx@redhat.com>

This patch has no functional change, but prepares for moving the function
do_run_on_cpu() into softmmu/cpus.c.  It does:

  1. Move qemu_work_item into hw/core/cpu.h.
  2. Export queue_work_on_cpu()/qemu_work_cond.

All of them will be used by softmmu/cpus.c later.

Signed-off-by: Peter Xu <peterx@redhat.com>
---
 cpus-common.c         | 11 ++---------
 include/hw/core/cpu.h | 10 +++++++++-
 2 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/cpus-common.c b/cpus-common.c
index 6e73d3e58d..d814b2439a 100644
--- a/cpus-common.c
+++ b/cpus-common.c
@@ -27,7 +27,7 @@
 static QemuMutex qemu_cpu_list_lock;
 static QemuCond exclusive_cond;
 static QemuCond exclusive_resume;
-static QemuCond qemu_work_cond;
+QemuCond qemu_work_cond;
 
 /* >= 1 if a thread is inside start_exclusive/end_exclusive.  Written
  * under qemu_cpu_list_lock, read with atomic operations.
@@ -114,14 +114,7 @@ CPUState *qemu_get_cpu(int index)
 /* current CPU in the current thread. It is only valid inside cpu_exec() */
 __thread CPUState *current_cpu;
 
-struct qemu_work_item {
-    QSIMPLEQ_ENTRY(qemu_work_item) node;
-    run_on_cpu_func func;
-    run_on_cpu_data data;
-    bool free, exclusive, done;
-};
-
-static void queue_work_on_cpu(CPUState *cpu, struct qemu_work_item *wi)
+void queue_work_on_cpu(CPUState *cpu, struct qemu_work_item *wi)
 {
     qemu_mutex_lock(&cpu->work_mutex);
     QSIMPLEQ_INSERT_TAIL(&cpu->work_list, wi, node);
diff --git a/include/hw/core/cpu.h b/include/hw/core/cpu.h
index bc864564ce..f62ae88524 100644
--- a/include/hw/core/cpu.h
+++ b/include/hw/core/cpu.h
@@ -243,7 +243,15 @@ typedef union {
 
 typedef void (*run_on_cpu_func)(CPUState *cpu, run_on_cpu_data data);
 
-struct qemu_work_item;
+struct qemu_work_item {
+    QSIMPLEQ_ENTRY(qemu_work_item) node;
+    run_on_cpu_func func;
+    run_on_cpu_data data;
+    bool free, exclusive, done;
+};
+
+void queue_work_on_cpu(CPUState *cpu, struct qemu_work_item *wi);
+extern QemuCond qemu_work_cond;
 
 #define CPU_UNSET_NUMA_NODE_ID -1
 #define CPU_TRACE_DSTATE_MAX_EVENTS 32
-- 
2.31.1



  reply	other threads:[~2021-07-23 19:36 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-23 19:34 [PATCH v2 0/9] memory: Sanity checks memory transaction when releasing BQL Peter Xu
2021-07-23 19:34 ` Peter Xu [this message]
2021-07-27 13:02   ` [PATCH v2 1/9] cpus: Export queue work related fields to cpu.h David Hildenbrand
2021-07-23 19:34 ` [PATCH v2 2/9] cpus: Move do_run_on_cpu into softmmu/cpus.c Peter Xu
2021-07-27 13:04   ` David Hildenbrand
2021-07-23 19:34 ` [PATCH v2 3/9] memory: Introduce memory_region_transaction_{push|pop}() Peter Xu
2021-07-27 13:06   ` David Hildenbrand
2021-07-23 19:34 ` [PATCH v2 4/9] memory: Don't do topology update in memory finalize() Peter Xu
2021-07-27 13:21   ` David Hildenbrand
2021-07-27 16:02     ` Peter Xu
2021-07-28 12:13       ` David Hildenbrand
2021-07-28 13:56         ` Peter Xu
2021-07-28 14:01           ` David Hildenbrand
2021-07-23 19:34 ` [PATCH v2 5/9] cpus: Use qemu_cond_wait_iothread() where proper Peter Xu
2021-07-27 12:49   ` David Hildenbrand
2021-07-23 19:34 ` [PATCH v2 6/9] cpus: Remove the mutex parameter from do_run_on_cpu() Peter Xu
2021-07-27 12:50   ` David Hildenbrand
2021-07-23 19:34 ` [PATCH v2 7/9] cpus: Introduce qemu_mutex_unlock_iothread_prepare() Peter Xu
2021-07-27 12:59   ` David Hildenbrand
2021-07-27 16:08     ` Peter Xu
2021-07-28 12:11       ` David Hildenbrand
2021-07-23 19:34 ` [PATCH v2 8/9] memory: Assert on no ongoing memory transaction before release BQL Peter Xu
2021-07-27 13:00   ` David Hildenbrand
2021-07-23 19:34 ` [PATCH v2 9/9] memory: Delay the transaction pop() until commit completed Peter Xu
2021-07-27 13:02   ` David Hildenbrand
2021-07-23 22:36 ` [PATCH v2 0/9] memory: Sanity checks memory transaction when releasing BQL Peter Xu
2021-07-27 12:41 ` David Hildenbrand
2021-07-27 16:35   ` Peter Xu

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=20210723193444.133412-2-peterx@redhat.com \
    --to=peterx@redhat.com \
    --cc=david@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=rth@twiddle.net \
    /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.