qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH v6 13/13] monitor: reduce different code path for oo


From: Peter Xu
Subject: [Qemu-devel] [PATCH v6 13/13] monitor: reduce different code path for oob
Date: Wed, 15 Aug 2018 21:37:47 +0800

Markus suggests that we should reduce special code paths for out-of-band
if possible, so that QMP logic can be simplified.  Apply this rule to
two places where use_io_thread is used but not completely necessary.

Signed-off-by: Peter Xu <address@hidden>
---
 monitor.c | 33 +++++++++++----------------------
 1 file changed, 11 insertions(+), 22 deletions(-)

diff --git a/monitor.c b/monitor.c
index b24a934437..7494885890 100644
--- a/monitor.c
+++ b/monitor.c
@@ -552,23 +552,15 @@ static void qmp_send_response(Monitor *mon, QDict *rsp)
 
 static void qmp_queue_response(Monitor *mon, QDict *rsp)
 {
-    if (mon->use_io_thread) {
-        /*
-         * Push a reference to the response queue.  The I/O thread
-         * drains that queue and emits.
-         */
-        qemu_mutex_lock(&mon->qmp.qmp_lock);
-        g_queue_push_tail(mon->qmp.qmp_responses, qobject_ref(rsp));
-        trace_monitor_qmp_response_queue(mon, mon->qmp.qmp_responses->length);
-        qemu_mutex_unlock(&mon->qmp.qmp_lock);
-        qemu_bh_schedule(qmp_respond_bh);
-    } else {
-        /*
-         * Not using monitor I/O thread, i.e. we are in the main thread.
-         * Emit right away.
-         */
-        qmp_send_response(mon, rsp);
-    }
+    /*
+     * Push a reference to the response queue.  The I/O thread drains
+     * that queue and emits.
+     */
+    qemu_mutex_lock(&mon->qmp.qmp_lock);
+    g_queue_push_tail(mon->qmp.qmp_responses, qobject_ref(rsp));
+    trace_monitor_qmp_response_queue(mon, mon->qmp.qmp_responses->length);
+    qemu_mutex_unlock(&mon->qmp.qmp_lock);
+    qemu_bh_schedule(qmp_respond_bh);
 }
 
 struct QMPResponse {
@@ -4433,12 +4425,9 @@ void monitor_resume(Monitor *mon)
     if (atomic_dec_fetch(&mon->suspend_cnt) == 0) {
         if (monitor_is_qmp(mon)) {
             /*
-             * For QMP monitors that are running in the I/O thread,
-             * let's kick the thread in case it's sleeping.
+             * Let's kick the thread in case it's sleeping.
              */
-            if (mon->use_io_thread) {
-                aio_notify(iothread_get_aio_context(mon_iothread));
-            }
+            aio_notify(iothread_get_aio_context(mon_iothread));
         } else {
             assert(mon->rs);
             readline_show_prompt(mon->rs);
-- 
2.17.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]