[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3 4/6] monitor: check if chardev can switch gco
From: |
Markus Armbruster |
Subject: |
Re: [Qemu-devel] [PATCH v3 4/6] monitor: check if chardev can switch gcontext for OOB |
Date: |
Wed, 05 Dec 2018 09:42:55 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) |
Marc-André Lureau <address@hidden> writes:
> 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 currently forbid MUX because not all frontends are ready to run
> outside main loop. Extend to add a context-switching feature check.
>
> Signed-off-by: Marc-André Lureau <address@hidden>
> ---
> monitor.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/monitor.c b/monitor.c
> index 79afe99079..25cf4223e8 100644
> --- a/monitor.c
> +++ b/monitor.c
> @@ -4562,9 +4562,11 @@ void monitor_init(Chardev *chr, int flags)
> bool use_oob = flags & MONITOR_USE_OOB;
>
> if (use_oob) {
> - if (CHARDEV_IS_MUX(chr)) {
> + if (CHARDEV_IS_MUX(chr) ||
> + !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) {
Aha, this answers my question on the previous patch: yes, it is possible
to trip the new assertion.
Are there any ways other than this one?
We could squash the two patches. But I figure you kept the previous
patch separate on purpose. That's okay, but it should mention the
assertion can be tripped, and the next patch (this one) will fix it.