diff mbox series

[RFC,v4,23/27] monitor: enable IO thread for (qmp & !mux) typed

Message ID 20171116130610.23582-24-peterx@redhat.com
State New
Headers show
Series QMP: out-of-band (OOB) execution support | expand

Commit Message

Peter Xu Nov. 16, 2017, 1:06 p.m. UTC
Start to use dedicate IO thread for QMP monitors that are not using
MUXed chardev.

Signed-off-by: Peter Xu <peterx@redhat.com>
---
 monitor.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Dr. David Alan Gilbert Nov. 24, 2017, 11:01 a.m. UTC | #1
* Peter Xu (peterx@redhat.com) wrote:
> Start to use dedicate IO thread for QMP monitors that are not using
> MUXed chardev.
> 
> Signed-off-by: Peter Xu <peterx@redhat.com>

Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>

I guess another way to do this would be to have a property on the
Chardev something like 'can use iothread' and clear that for Mux.

Dave

> ---
>  monitor.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/monitor.c b/monitor.c
> index b18d9d696c..5e0b8ed9c5 100644
> --- a/monitor.c
> +++ b/monitor.c
> @@ -36,6 +36,7 @@
>  #include "net/net.h"
>  #include "net/slirp.h"
>  #include "chardev/char-fe.h"
> +#include "chardev/char-mux.h"
>  #include "ui/qemu-spice.h"
>  #include "sysemu/numa.h"
>  #include "monitor/monitor.h"
> @@ -4456,7 +4457,7 @@ void monitor_init(Chardev *chr, int flags)
>      Monitor *mon = g_malloc(sizeof(*mon));
>      GMainContext *context;
>  
> -    monitor_data_init(mon, false, false);
> +    monitor_data_init(mon, false, !CHARDEV_IS_MUX(chr));
>  
>      qemu_chr_fe_init(&mon->chr, chr, &error_abort);
>      mon->flags = flags;
> -- 
> 2.13.6
> 
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
Peter Xu Nov. 27, 2017, 3 a.m. UTC | #2
On Fri, Nov 24, 2017 at 11:01:49AM +0000, Dr. David Alan Gilbert wrote:
> * Peter Xu (peterx@redhat.com) wrote:
> > Start to use dedicate IO thread for QMP monitors that are not using
> > MUXed chardev.
> > 
> > Signed-off-by: Peter Xu <peterx@redhat.com>
> 
> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>

Thanks!

> 
> I guess another way to do this would be to have a property on the
> Chardev something like 'can use iothread' and clear that for Mux.

Yeh we can.  Though I would still prefer to put that in Monitor struct
since current IOThread is really tailored only for monitors.  IOW not
all Chardevs can be run in the IOThread (or say, the thread currently
named as "mon_iothread") safely.  Thanks,
diff mbox series

Patch

diff --git a/monitor.c b/monitor.c
index b18d9d696c..5e0b8ed9c5 100644
--- a/monitor.c
+++ b/monitor.c
@@ -36,6 +36,7 @@ 
 #include "net/net.h"
 #include "net/slirp.h"
 #include "chardev/char-fe.h"
+#include "chardev/char-mux.h"
 #include "ui/qemu-spice.h"
 #include "sysemu/numa.h"
 #include "monitor/monitor.h"
@@ -4456,7 +4457,7 @@  void monitor_init(Chardev *chr, int flags)
     Monitor *mon = g_malloc(sizeof(*mon));
     GMainContext *context;
 
-    monitor_data_init(mon, false, false);
+    monitor_data_init(mon, false, !CHARDEV_IS_MUX(chr));
 
     qemu_chr_fe_init(&mon->chr, chr, &error_abort);
     mon->flags = flags;