qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Marc-André Lureau" <marcandre.lureau@redhat.com>
Subject: [Qemu-devel] [PULL 04/11] monitor: check if chardev can switch gcontext for OOB
Date: Wed, 12 Dec 2018 11:11:38 +0100	[thread overview]
Message-ID: <20181212101145.3496-5-armbru@redhat.com> (raw)
In-Reply-To: <20181212101145.3496-1-armbru@redhat.com>

From: Marc-André Lureau <marcandre.lureau@redhat.com>

Not all backends are able to switch gcontext. Those backends cannot
drive a OOB monitor (the monitor would then be blocking on main
thread).

For example, ringbuf, spice, or more esoteric input chardevs like
braille or MUX.

We already forbid MUX because not all frontends are ready to run outside
main loop.  Replace that by a context-switching feature check.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20181205203737.9011-5-marcandre.lureau@redhat.com>
[Error condition simplified, commit message adjusted accordingly]
Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 monitor.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/monitor.c b/monitor.c
index 79afe99079..a1329d8a86 100644
--- a/monitor.c
+++ b/monitor.c
@@ -4562,9 +4562,10 @@ void monitor_init(Chardev *chr, int flags)
     bool use_oob = flags & MONITOR_USE_OOB;
 
     if (use_oob) {
-        if (CHARDEV_IS_MUX(chr)) {
+        if (!qemu_chr_has_feature(chr, QEMU_CHAR_FEATURE_GCONTEXT)) {
             error_report("Monitor out-of-band is not supported with "
-                         "MUX typed chardev backend");
+                         "%s typed chardev backend",
+                         object_get_typename(OBJECT(chr)));
             exit(1);
         }
         if (use_readline) {
-- 
2.17.2

  parent reply	other threads:[~2018-12-12 10:11 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-12 10:11 [Qemu-devel] [PULL 00/11] Monitor patches for 2018-12-12 Markus Armbruster
2018-12-12 10:11 ` [Qemu-devel] [PULL 01/11] monitor: inline ambiguous helper functions Markus Armbruster
2018-12-12 10:11 ` [Qemu-devel] [PULL 02/11] monitor: accept chardev input from iothread Markus Armbruster
2018-12-12 10:11 ` [Qemu-devel] [PULL 03/11] char: add a QEMU_CHAR_FEATURE_GCONTEXT flag Markus Armbruster
2018-12-12 10:11 ` Markus Armbruster [this message]
2018-12-12 10:11 ` [Qemu-devel] [PULL 05/11] colo: check chardev can switch context Markus Armbruster
2018-12-12 10:11 ` [Qemu-devel] [PULL 06/11] monitor: prevent inserting new monitors after cleanup Markus Armbruster
2018-12-12 10:11 ` [Qemu-devel] [PULL 07/11] monitor: avoid potential dead-lock when cleaning up Markus Armbruster
2018-12-12 10:11 ` [Qemu-devel] [PULL 08/11] monitor: Suspend monitor instead dropping commands Markus Armbruster
2018-12-12 10:11 ` [Qemu-devel] [PULL 09/11] monitor: Remove "x-oob", offer capability "oob" unconditionally Markus Armbruster
2018-12-12 10:11 ` [Qemu-devel] [PULL 10/11] Revert "tests: Add parameter to qtest_init_without_qmp_handshake" Markus Armbruster
2018-12-12 10:11 ` [Qemu-devel] [PULL 11/11] tests: add oob functional test for test-qmp-cmds Markus Armbruster
2018-12-13 17:50 ` [Qemu-devel] [PULL 00/11] Monitor patches for 2018-12-12 Peter Maydell
2018-12-13 18:12   ` Markus Armbruster

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=20181212101145.3496-5-armbru@redhat.com \
    --to=armbru@redhat.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=qemu-devel@nongnu.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).