qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] monitor: accept input on resume
@ 2018-07-31 10:42 Marc-André Lureau
  2018-07-31 11:30 ` Markus Armbruster
  0 siblings, 1 reply; 4+ messages in thread
From: Marc-André Lureau @ 2018-07-31 10:42 UTC (permalink / raw)
  To: qemu-devel; +Cc: armbru, Marc-André Lureau, Dr. David Alan Gilbert

A chardev may stop trying to write if the associated can_read()
callback returned 0. This happens when the monitor is suspended.
The frontend is supposed to call qemu_chr_fe_accept_input() when it is
ready to accept data again.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 monitor.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/monitor.c b/monitor.c
index d580c5a79c..e1a14e02cf 100644
--- a/monitor.c
+++ b/monitor.c
@@ -4412,6 +4412,7 @@ void monitor_resume(Monitor *mon)
             assert(mon->rs);
             readline_show_prompt(mon->rs);
         }
+        qemu_chr_fe_accept_input(&mon->chr);
     }
     trace_monitor_suspend(mon, -1);
 }
-- 
2.18.0.321.gffc6fa0e39

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [Qemu-devel] [PATCH] monitor: accept input on resume
  2018-07-31 10:42 [Qemu-devel] [PATCH] monitor: accept input on resume Marc-André Lureau
@ 2018-07-31 11:30 ` Markus Armbruster
  2018-07-31 12:44   ` Marc-André Lureau
  0 siblings, 1 reply; 4+ messages in thread
From: Markus Armbruster @ 2018-07-31 11:30 UTC (permalink / raw)
  To: Marc-André Lureau; +Cc: qemu-devel, Dr. David Alan Gilbert

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

> A chardev may stop trying to write if the associated can_read()
> callback returned 0. This happens when the monitor is suspended.
> The frontend is supposed to call qemu_chr_fe_accept_input() when it is
> ready to accept data again.
>
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>

Impact?

Is this to be considered for 3.0?

> ---
>  monitor.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/monitor.c b/monitor.c
> index d580c5a79c..e1a14e02cf 100644
> --- a/monitor.c
> +++ b/monitor.c
> @@ -4412,6 +4412,7 @@ void monitor_resume(Monitor *mon)
>              assert(mon->rs);
>              readline_show_prompt(mon->rs);
>          }
> +        qemu_chr_fe_accept_input(&mon->chr);
>      }
>      trace_monitor_suspend(mon, -1);
>  }

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Qemu-devel] [PATCH] monitor: accept input on resume
  2018-07-31 11:30 ` Markus Armbruster
@ 2018-07-31 12:44   ` Marc-André Lureau
  2018-07-31 15:42     ` Markus Armbruster
  0 siblings, 1 reply; 4+ messages in thread
From: Marc-André Lureau @ 2018-07-31 12:44 UTC (permalink / raw)
  To: Markus Armbruster; +Cc: QEMU, Dr. David Alan Gilbert

Hi

On Tue, Jul 31, 2018 at 1:30 PM, Markus Armbruster <armbru@redhat.com> wrote:
> Marc-André Lureau <marcandre.lureau@redhat.com> writes:
>
>> A chardev may stop trying to write if the associated can_read()
>> callback returned 0. This happens when the monitor is suspended.
>> The frontend is supposed to call qemu_chr_fe_accept_input() when it is
>> ready to accept data again.
>>
>> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
>
> Impact?

I have observed the issue with a spice port, all pending commands
aren't flushed. Most chardev don't use the accept_input() callback,
and instead poll regularly, like char-socket.c:tcp_chr_read_poll()

>
> Is this to be considered for 3.0?

This is not a regression, afaik, and doesn't impact common monitor
chardev. So it could be delayed. But it's also a small fix for Spice
chardev that shouldn't create regression, so it should be fine for
3.0.

thanks

>
>> ---
>>  monitor.c | 1 +
>>  1 file changed, 1 insertion(+)
>>
>> diff --git a/monitor.c b/monitor.c
>> index d580c5a79c..e1a14e02cf 100644
>> --- a/monitor.c
>> +++ b/monitor.c
>> @@ -4412,6 +4412,7 @@ void monitor_resume(Monitor *mon)
>>              assert(mon->rs);
>>              readline_show_prompt(mon->rs);
>>          }
>> +        qemu_chr_fe_accept_input(&mon->chr);
>>      }
>>      trace_monitor_suspend(mon, -1);
>>  }
>



-- 
Marc-André Lureau

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Qemu-devel] [PATCH] monitor: accept input on resume
  2018-07-31 12:44   ` Marc-André Lureau
@ 2018-07-31 15:42     ` Markus Armbruster
  0 siblings, 0 replies; 4+ messages in thread
From: Markus Armbruster @ 2018-07-31 15:42 UTC (permalink / raw)
  To: Marc-André Lureau; +Cc: QEMU, Dr. David Alan Gilbert

Marc-André Lureau <marcandre.lureau@gmail.com> writes:

> Hi
>
> On Tue, Jul 31, 2018 at 1:30 PM, Markus Armbruster <armbru@redhat.com> wrote:
>> Marc-André Lureau <marcandre.lureau@redhat.com> writes:
>>
>>> A chardev may stop trying to write if the associated can_read()
>>> callback returned 0. This happens when the monitor is suspended.
>>> The frontend is supposed to call qemu_chr_fe_accept_input() when it is
>>> ready to accept data again.
>>>
>>> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
>>
>> Impact?
>
> I have observed the issue with a spice port, all pending commands
> aren't flushed. Most chardev don't use the accept_input() callback,
> and instead poll regularly, like char-socket.c:tcp_chr_read_poll()

The ones that do use it are braille, mux, msmouse, spice (abstract),
spicevmc, spiceport, wctablet.

A description of the impact should be worked into the commit message.

>> Is this to be considered for 3.0?
>
> This is not a regression, afaik, and doesn't impact common monitor
> chardev. So it could be delayed. But it's also a small fix for Spice
> chardev that shouldn't create regression, so it should be fine for
> 3.0.

If the callbacks we now call all work fine, we should be good.  But
that's a chardev question, and I'm the guy for the monitor questions.  I
think the decision needs to be made by maintainers of the chardev
subsystem.

Preferably with an improved commit message:
Acked-by: Markus Armbruster <armbru@redhat.com>

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2018-07-31 15:42 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-07-31 10:42 [Qemu-devel] [PATCH] monitor: accept input on resume Marc-André Lureau
2018-07-31 11:30 ` Markus Armbruster
2018-07-31 12:44   ` Marc-André Lureau
2018-07-31 15:42     ` Markus Armbruster

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).