qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Eduardo Habkost <ehabkost@redhat.com>
To: Luiz Capitulino <lcapitulino@redhat.com>
Cc: aliguori@us.ibm.com, jan.kiszka@siemens.com, dlaor@redhat.com,
	qemu-devel@nongnu.org, avi@redhat.com
Subject: [Qemu-devel] Re: [PATCH 06/11] QMP: Introduce asynchronous events infrastructure
Date: Tue, 23 Jun 2009 10:48:51 -0300	[thread overview]
Message-ID: <20090623134851.GC6462@blackpad> (raw)
In-Reply-To: <20090623103616.409b716a@doriath>

On Tue, Jun 23, 2009 at 10:36:16AM -0300, Luiz Capitulino wrote:
> On Tue, 23 Jun 2009 11:32:51 +0100
> "Daniel P. Berrange" <berrange@redhat.com> wrote:
> 
> > On Tue, Jun 23, 2009 at 01:29:11AM -0300, Luiz Capitulino wrote:
> > > It is just an exported function that will be used by other subsystems
> > > to print specific events to the output buffer.
> > > 
> > > This is based in ideas by Amit Shah <amit.shah@redhat.com>.
> > > 
> > > Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
> > > ---
> > >  monitor.c   |   18 ++++++++++++++++++
> > >  monitor.h   |    6 ++++++
> > >  qemu-tool.c |    4 ++++
> > >  3 files changed, 28 insertions(+), 0 deletions(-)
> > > 
> > > diff --git a/monitor.c b/monitor.c
> > > index 462f60b..df58bdd 100644
> > > --- a/monitor.c
> > > +++ b/monitor.c
> > > @@ -266,6 +266,24 @@ void monitor_printf_data(Monitor *mon, const char *fmt, ...)
> > >      va_end(ap);
> > >  }
> > >  
> > > +/* Asynchronous events main function */
> > > +void monitor_notify_event(MonitorEvent event)
> > > +{
> > > +    if (!monitor_ctrl_mode(cur_mon))
> > > +        return;
> > > +
> > > +    assert(event < EVENT_MAX);
> > > +    monitor_puts(cur_mon, "* EVENT ");
> > > +
> > > +    switch (event) {
> > > +    case EVENT_MAX:
> > > +        // Avoid gcc warning, will never get here
> > > +        break;
> > > +    }
> > > +
> > > +    monitor_puts(cur_mon, "\n");
> > > +}
> > > +
> > 
> > If a client is not reading from the monitor channel quickly enough, then
> > would this cause QEMU to block once the FD buffer is full ? A QEMU level
> > buffer might give more leyway, but we don't want to grow unbounded, so
> > ultimately we'll end up having to drop events. At which point you'd want
> > to send an event to the client indicating that the event queue overflowed,
> > so it can take remedial action to re-sync its state.
> 
>  Wouldn't a buffer flush right at the beginning of this function solve this?
> At least for QEMU?

No, if the messages aren't being consumed fast enough by the other side.
If the consumer isn't consuming the messages fast enough, we would need
to either drop messages or block on the channel (that's the code code
above would do: block on write()).

I agree with Avi: if the system is so busy that the client doesn't
consume the monitor messages fast enough, we are already screwed.

-- 
Eduardo

  reply	other threads:[~2009-06-23 13:49 UTC|newest]

Thread overview: 199+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <cover.1245730845.git.lcapitulino@redhat.com>
2009-06-23  4:28 ` [Qemu-devel] [PATCH 01/11] QMP: Introduce specification file Luiz Capitulino
2009-06-23  8:55   ` [Qemu-devel] " Avi Kivity
2009-06-23  9:57     ` Daniel P. Berrange
2009-06-23 10:08       ` Avi Kivity
2009-06-23 13:22       ` Luiz Capitulino
2009-06-23 13:31         ` Avi Kivity
2009-06-23 13:06     ` Luiz Capitulino
2009-06-23 13:10       ` Daniel P. Berrange
2009-06-23 17:12         ` Luiz Capitulino
2009-06-23 13:27       ` Avi Kivity
2009-06-23 17:15         ` Luiz Capitulino
2009-06-23 13:12     ` Anthony Liguori
2009-06-23 13:30       ` Avi Kivity
2009-06-23 13:34         ` Eduardo Habkost
2009-06-23 13:40         ` Anthony Liguori
2009-06-23 15:01           ` Avi Kivity
2009-06-23 15:47             ` Anthony Liguori
2009-06-23 16:02               ` Avi Kivity
2009-06-23 17:20       ` Luiz Capitulino
2009-06-23 14:45   ` [Qemu-devel] " Vincent Hanquez
2009-06-23 15:56     ` Avi Kivity
2009-06-23 15:56       ` Anthony Liguori
2009-06-23 16:04         ` Avi Kivity
2009-06-23 16:09           ` Anthony Liguori
2009-06-23 16:15             ` Avi Kivity
2009-06-23 18:32               ` Anthony Liguori
2009-06-23 18:47                 ` Avi Kivity
2009-06-23 19:00                   ` Anthony Liguori
2009-06-23 19:44                     ` Avi Kivity
2009-06-23 19:52                     ` Avi Kivity
2009-06-23 20:07                       ` Anthony Liguori
2009-06-23 20:13                         ` Avi Kivity
2009-06-23 22:02                           ` Anthony Liguori
2009-06-23 22:02                     ` Vincent Hanquez
2009-06-23 22:50                       ` Anthony Liguori
2009-06-24  1:01                         ` Vincent Hanquez
2009-06-24 11:55                           ` James
2009-06-24 12:09                             ` Daniel P. Berrange
2009-06-24 12:32                               ` James
2009-06-24 12:54                                 ` Daniel P. Berrange
2009-06-24 14:31                                   ` Stefano Stabellini
2009-06-24 12:46                           ` Anthony Liguori
2009-06-24 13:02                             ` Daniel P. Berrange
2009-06-24 13:21                               ` Avi Kivity
2009-06-24 13:09                             ` Avi Kivity
2009-06-24 16:22                               ` Jamie Lokier
2009-06-24 16:25                                 ` Avi Kivity
2009-06-24 18:52                                   ` Jamie Lokier
2009-06-24 17:39                                 ` Vincent Hanquez
2009-06-24 18:23                                   ` Filip Navara
2009-06-24 18:41                                     ` Jamie Lokier
2009-06-24 18:42                                     ` Vincent Hanquez
2009-06-24 18:55                                       ` Filip Navara
2009-06-24 18:56                                       ` Jamie Lokier
2009-06-24 13:34                             ` Ian Jackson
2009-06-24 16:09                               ` Jamie Lokier
2009-06-24 14:03                             ` Filip Navara
2009-06-25 19:30                               ` Luiz Capitulino
2009-06-24 14:06                             ` Vincent Hanquez
2009-06-24 14:41                             ` Stefano Stabellini
2009-06-24 14:56                             ` Chris Webb
2009-06-24 19:01                               ` Jamie Lokier
2009-06-24 15:57                             ` Filip Navara
2009-06-24 16:22                               ` Avi Kivity
2009-06-24 16:42                                 ` Filip Navara
2009-06-24 19:05                                 ` Jamie Lokier
2009-06-24 19:24                                   ` Filip Navara
2009-06-24 21:13                                     ` Jamie Lokier
2009-06-24 21:29                                       ` Filip Navara
2009-06-24 21:47                                         ` Jamie Lokier
2009-06-25 13:07                                       ` Stefano Stabellini
2009-06-25 14:55                                         ` Avi Kivity
2009-06-25 15:10                                           ` Anthony Liguori
2009-06-25 15:20                                             ` Avi Kivity
2009-06-25 17:04                                               ` Stefano Stabellini
2009-06-25 18:10                                                 ` Anthony Liguori
2009-06-25 19:03                                                   ` Daniel P. Berrange
2009-06-26  9:00                                                     ` Avi Kivity
2009-06-26  9:10                                                       ` Daniel P. Berrange
2009-06-26  9:16                                                         ` Avi Kivity
2009-06-26  9:44                                                           ` Daniel P. Berrange
2009-06-26 11:41                                                             ` Vincent Hanquez
2009-06-25 18:09                                               ` Anthony Liguori
2009-06-25 18:31                                                 ` Avi Kivity
2009-06-25 19:54                                                   ` Anthony Liguori
2009-06-26  9:12                                                     ` Avi Kivity
2009-06-26 13:21                                                       ` Anthony Liguori
2009-06-26 15:02                                                         ` Anthony Liguori
2009-06-26 17:36                                                           ` Filip Navara
2009-06-26 19:36                                                             ` Anthony Liguori
2009-06-26 20:25                                                               ` Filip Navara
2009-06-28 13:16                                                                 ` Avi Kivity
2009-06-28 17:30                                                                   ` Anthony Liguori
2009-06-28 17:36                                                                     ` Avi Kivity
2009-06-29  9:44                                                                     ` Stefano Stabellini
2009-06-29  9:50                                                                       ` Avi Kivity
2009-06-29 10:09                                                                         ` Stefano Stabellini
2009-06-27  7:03                                                               ` Filip Navara
2009-06-28 12:11                                                           ` Avi Kivity
2009-06-28 13:13                                                           ` Avi Kivity
2009-06-28 17:23                                                             ` Anthony Liguori
2009-06-28 17:34                                                               ` Avi Kivity
2009-06-29  0:42                                                                 ` Anthony Liguori
2009-06-29  6:04                                                                   ` Avi Kivity
2009-06-29  9:48                                                                     ` Stefano Stabellini
2009-06-29 20:23                                                                     ` Anthony Liguori
2009-06-30  5:37                                                                       ` Avi Kivity
2009-06-30 13:30                                                                         ` Anthony Liguori
2009-06-30 13:51                                                                           ` Stefano Stabellini
2009-06-30 13:52                                                                           ` Avi Kivity
2009-06-30 13:56                                                                             ` Anthony Liguori
2009-06-30 14:03                                                                               ` Luiz Capitulino
2009-06-30 16:05                                                                                 ` Avi Kivity
2009-06-30 18:21                                                                                   ` Anthony Liguori
2009-07-01  8:07                                                                                     ` Avi Kivity
2009-06-29 14:41                                                                   ` Stefano Stabellini
2009-06-29 14:56                                                                     ` Avi Kivity
2009-06-28 17:38                                                               ` Filip Navara
2009-06-26 11:36                                                     ` Vincent Hanquez
2009-06-24 16:00                     ` Jamie Lokier
2009-06-23 16:20             ` Avi Kivity
2009-06-23 17:59             ` Vincent Hanquez
2009-06-23 15:41   ` Blue Swirl
2009-06-23  4:28 ` [Qemu-devel] [PATCH 02/11] QMP: Introduce MONITOR_USE_CONTROL flag Luiz Capitulino
2009-06-23  4:28 ` [Qemu-devel] [PATCH 03/11] QMP: Introduce protocol print functions Luiz Capitulino
2009-06-23 13:45   ` Anthony Liguori
2009-06-23 13:53     ` Eduardo Habkost
2009-06-23  4:28 ` [Qemu-devel] [PATCH 04/11] QMP: Make monitor_handle_command() QMP aware Luiz Capitulino
2009-06-23 13:51   ` Anthony Liguori
2009-06-23 17:25     ` Luiz Capitulino
2009-06-23  4:29 ` [Qemu-devel] [PATCH 05/11] QMP: Introduce control mode chardev handling Luiz Capitulino
2009-06-23  4:29 ` [Qemu-devel] [PATCH 06/11] QMP: Introduce asynchronous events infrastructure Luiz Capitulino
2009-06-23  8:59   ` [Qemu-devel] " Jan Kiszka
2009-06-23 13:31     ` Luiz Capitulino
2009-06-23 10:08   ` Daniel P. Berrange
2009-06-23 10:11     ` Avi Kivity
2009-06-23 14:46     ` Paul Brook
2009-06-23 10:32   ` Daniel P. Berrange
2009-06-23 11:23     ` Avi Kivity
2009-06-23 13:36     ` Luiz Capitulino
2009-06-23 13:48       ` Eduardo Habkost [this message]
2009-06-23 13:51         ` Jan Kiszka
2009-06-23 16:34           ` Avi Kivity
2009-06-23 16:47           ` Daniel P. Berrange
2009-06-23  4:29 ` [Qemu-devel] [PATCH 07/11] QMP: Enable simple commands Luiz Capitulino
2009-06-23  4:29 ` [Qemu-devel] [PATCH 08/11] QMP: Port balloon command Luiz Capitulino
2009-06-23  9:42   ` [Qemu-devel] " Avi Kivity
2009-06-23 13:59     ` Anthony Liguori
2009-06-23 16:36       ` Avi Kivity
2009-06-23 16:58         ` Anthony Liguori
2009-06-23 16:59       ` Luiz Capitulino
2009-06-23 18:38         ` Anthony Liguori
2009-06-25 11:27           ` Dor Laor
2009-06-25 19:11             ` Luiz Capitulino
2009-06-26  9:21               ` Avi Kivity
2009-06-26  9:42                 ` Daniel P. Berrange
2009-06-26 11:15                   ` Avi Kivity
2009-06-27 15:58                   ` Luiz Capitulino
2009-06-28 15:52                     ` Avi Kivity
2009-06-28 16:30                       ` Blue Swirl
2009-06-28 17:23                       ` Filip Navara
2009-06-28 17:43                         ` Avi Kivity
2009-06-28 17:51                         ` Blue Swirl
2009-06-28 18:36                           ` Avi Kivity
2009-06-28 22:11                           ` Jamie Lokier
2009-06-25 19:59             ` Anthony Liguori
2009-06-23  4:29 ` [Qemu-devel] [PATCH 09/11] QMP: Port 'info blockstats' command Luiz Capitulino
2009-06-23  9:43   ` [Qemu-devel] " Avi Kivity
2009-06-23  9:59     ` Jan Kiszka
2009-06-23 10:09       ` Avi Kivity
2009-06-23 10:10         ` Jan Kiszka
2009-06-23 14:01   ` [Qemu-devel] " Anthony Liguori
2009-06-23  4:29 ` [Qemu-devel] [PATCH 10/11] QMP: Introduce basic events Luiz Capitulino
2009-06-23  9:46   ` [Qemu-devel] " Avi Kivity
2009-06-23 17:07     ` Luiz Capitulino
2009-06-23 10:06   ` Daniel P. Berrange
2009-06-23  4:30 ` [Qemu-devel] [PATCH 11/11] QMP: Command-line flag to enable control mode Luiz Capitulino
2009-06-23  9:03   ` [Qemu-devel] " Jan Kiszka
2009-06-23 10:04     ` Daniel P. Berrange
2009-06-23 10:11       ` Jan Kiszka
2009-06-23 10:17         ` Avi Kivity
2009-06-23 10:54           ` Jan Kiszka
2009-06-23 11:28             ` Avi Kivity
2009-06-23 11:44               ` Jan Kiszka
2009-06-23 11:51                 ` Avi Kivity
2009-06-23 11:53                   ` Jan Kiszka
2009-06-23 12:01                     ` Avi Kivity
2009-06-23 12:39                       ` Jan Kiszka
2009-06-23 12:46                         ` Avi Kivity
2009-06-23 12:48                         ` Avi Kivity
2009-06-23 11:54                   ` Daniel P. Berrange
2009-06-23 11:48               ` Daniel P. Berrange
2009-06-23 12:25                 ` Avi Kivity
2009-06-23 14:06           ` Anthony Liguori
2009-06-23 10:19         ` Daniel P. Berrange
2009-06-23 11:13           ` Jan Kiszka
2009-06-23 13:59     ` Luiz Capitulino
2009-06-23 14:06       ` Jan Kiszka
2009-06-23 17:27         ` Luiz Capitulino

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=20090623134851.GC6462@blackpad \
    --to=ehabkost@redhat.com \
    --cc=aliguori@us.ibm.com \
    --cc=avi@redhat.com \
    --cc=dlaor@redhat.com \
    --cc=jan.kiszka@siemens.com \
    --cc=lcapitulino@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).