[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
- [Qemu-devel] [PATCH v6 07/13] monitor: restrict response queue length too, (continued)
- [Qemu-devel] [PATCH v6 07/13] monitor: restrict response queue length too, Peter Xu, 2018/08/15
- [Qemu-devel] [PATCH v6 08/13] monitor: remove "x-oob", turn oob on by default, Peter Xu, 2018/08/15
- [Qemu-devel] [PATCH v6 10/13] monitor: add traces for qmp queues, Peter Xu, 2018/08/15
- [Qemu-devel] [PATCH v6 09/13] Revert "tests: Add parameter to qtest_init_without_qmp_handshake", Peter Xu, 2018/08/15
- [Qemu-devel] [PATCH v6 11/13] tests: remove "0.15" prefix for test-qmp-cmds, Peter Xu, 2018/08/15
- [Qemu-devel] [PATCH v6 13/13] monitor: reduce different code path for oob,
Peter Xu <=
- [Qemu-devel] [PATCH v6 12/13] tests: add oob functional test for test-qmp-cmds, Peter Xu, 2018/08/15
- Re: [Qemu-devel] [PATCH v6 00/13] monitor: enable OOB by default, Markus Armbruster, 2018/08/28