qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Amit Shah <amit.shah@redhat.com>
To: Jamie Lokier <jamie@shareable.org>
Cc: qemu list <qemu-devel@nongnu.org>,
	Juan Quintela <quintela@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Gerd Hoffmann <kraxel@redhat.com>,
	Luiz Capitulino <lcapitulino@redhat.com>
Subject: Re: [Qemu-devel] Re: [PATCH 10/15] virtio-serial: Add QMP events for failed port/device add
Date: Fri, 26 Mar 2010 10:26:07 +0530	[thread overview]
Message-ID: <20100326045607.GJ8111@amit-x200.redhat.com> (raw)
In-Reply-To: <20100326040754.GU19308@shareable.org>

On (Fri) Mar 26 2010 [04:07:54], Jamie Lokier wrote:
> Amit Shah wrote:
> > On (Fri) Mar 26 2010 [01:17:49], Jamie Lokier wrote:
> > > Luiz Capitulino wrote:
> > > > On Thu, 25 Mar 2010 09:17:17 +0530
> > > > Amit Shah <amit.shah@redhat.com> wrote:
> > > > 
> > > > > On (Wed) Mar 24 2010 [17:34:15], Luiz Capitulino wrote:
> > > > > > On Wed, 24 Mar 2010 20:19:28 +0530
> > > > > > Amit Shah <amit.shah@redhat.com> wrote:
> > > > > > 
> > > > > > > When adding a port or a device to the guest fails, management software
> > > > > > > might be interested in knowing and then cleaning up the host-side of the
> > > > > > > port. Introduce QMP events to signal such errors.
> > > > > > 
> > > > > >  I'm completely unfamiliar with virtio-serial, so let me ask: how are ports
> > > > > > added? I'd expect the command performing this operation to fail in this case.
> > > > > 
> > > > > If adding the port fails in qemu, then the command will fail. However if
> > > > > adding the port in the guest fails, we raise this QMP event. Adding in
> > > > > the guest could fail because of several reasons, like ENOMEM. In this
> > > > > case, the mgmt might want to hot-unplug the port from qemu so that
> > > > > resources are freed and also apps are notified of guest side not ready.
> > > > 
> > > >  Ok, what about a disconnect? Does virtio-serial have this kind of action?
> > > 
> > > Disconnect would be valuable.  E.g. if the guest app dies (but not the
> > > guest kernel), it won't get a chance to send an "I'm going away"
> > > message.
> > 
> > That's something applications should be able to handle: If an app on the
> > guest dies, the app on the host should be able to discover this.
> 
> Sure.  Does the host app see an EOF on its input when that happens?
> (I.e. *not* like a real serial port).

If it's an in-qemu app, it gets the guest_closed() callback. So I guess
qmp events for non-qemu apps is what you're looking for?

> If so, there's no need for a disconnect event, otherwise, if it's like
> a serial port, there is.
> 
> > > Machine reboot, PCI reset and so on, should probably trigger a
> > 
> > All these messages belong to other subsystems, not virtio-serial. Eg,
> b> libvirt or other mgmt app should know that a reset event, when received,
> > affects virtio ports as well. Similar for pci events.
> 
> Fine (although I don't like that a non-mgmt host app only interested
> talking to a guest with an architecture-neutral protocol might need to
> know about PCI, or even need to know anything about how the VM was
> launched).
> 
> But what I really meant was, if the guest resets, and then it boots up
> before the host apps manage to process their events (e.g. due to
> timing, remoteness, swapping or whatever), it's important that the
> virtio-serial using host app knows where the discontinuity in the byte
> stream is.  Otherwise the app needs to use a silly overcomplicated
> protocol just to provide a reliable layer over the byte stream.

I'd rather that the apps used the existing QMP notifications for guest
reset so that we don't have to do anything special for virtio-serial
(and for other devices as well).

Also, if it might help, the 'guest device ready' and 'guest port ready'
QMP events can be sent on success as well (right now they're only sent
on failure).

		Amit

  reply	other threads:[~2010-03-26  4:57 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-03-24 14:49 [Qemu-devel] [PATCH 00/15] v3: virtio-serial-bus fixes, new abi for port discovery Amit Shah
2010-03-24 14:49 ` [Qemu-devel] [PATCH 01/15] virtio-serial: save/load: Ensure target has enough ports Amit Shah
2010-03-24 14:49   ` [Qemu-devel] [PATCH 02/15] virtio-serial: save/load: Ensure nr_ports on src and dest are same Amit Shah
2010-03-24 14:49     ` [Qemu-devel] [PATCH 03/15] virtio-serial: save/load: Ensure we have hot-plugged ports instantiated Amit Shah
2010-03-24 14:49       ` [Qemu-devel] [PATCH 04/15] virtio-serial: save/load: Send target host connection status if different Amit Shah
2010-03-24 14:49         ` [Qemu-devel] [PATCH 05/15] virtio-serial: Use control messages to notify guest of new ports Amit Shah
2010-03-24 14:49           ` [Qemu-devel] [PATCH 06/15] virtio-serial: whitespace: match surrounding code Amit Shah
2010-03-24 14:49             ` [Qemu-devel] [PATCH 07/15] virtio-serial: Remove redundant check for 0-sized write request Amit Shah
2010-03-24 14:49               ` [Qemu-devel] [PATCH 08/15] virtio-serial: Update copyright year to 2010 Amit Shah
2010-03-24 14:49                 ` [Qemu-devel] [PATCH 09/15] virtio-serial: Propagate errors in initialising ports / devices in guest Amit Shah
2010-03-24 14:49                   ` [Qemu-devel] [PATCH 10/15] virtio-serial: Add QMP events for failed port/device add Amit Shah
2010-03-24 14:49                     ` [Qemu-devel] [PATCH 11/15] virtio-serial: Send out guest data to ports only if port is opened Amit Shah
2010-03-24 14:49                       ` [Qemu-devel] [PATCH 12/15] iov: Introduce a new file for helpers around iovs, add iov_from_buf() Amit Shah
2010-03-24 14:49                         ` [Qemu-devel] [PATCH 13/15] iov: Add iov_to_buf and iov_size helpers Amit Shah
2010-03-24 14:49                           ` [Qemu-devel] [PATCH 14/15] virtio-serial: Handle scatter-gather buffers for control messages Amit Shah
2010-03-24 14:49                             ` [Qemu-devel] [PATCH 15/15] virtio-serial: Handle scatter/gather input from the guest Amit Shah
2010-03-30 13:44                             ` [Qemu-devel] Re: [PATCH 14/15] virtio-serial: Handle scatter-gather buffers for control messages Juan Quintela
2010-03-30 13:47                               ` Amit Shah
2010-03-24 20:34                     ` [Qemu-devel] Re: [PATCH 10/15] virtio-serial: Add QMP events for failed port/device add Luiz Capitulino
2010-03-25  3:47                       ` Amit Shah
2010-03-25 18:34                         ` Luiz Capitulino
2010-03-26  1:17                           ` Jamie Lokier
2010-03-26  2:07                             ` Amit Shah
2010-03-26  4:07                               ` Jamie Lokier
2010-03-26  4:56                                 ` Amit Shah [this message]
2010-03-26  5:23                                   ` Jamie Lokier
2010-03-26 13:49                                     ` Amit Shah
2010-03-26 14:44                                       ` Jamie Lokier
2010-03-26 14:57                                         ` Amit Shah
2010-03-28 15:01                                           ` Jamie Lokier
2010-03-26 13:05                                   ` Luiz Capitulino
2010-03-26 13:24                                     ` Amit Shah
2010-03-26  1:57                           ` Amit Shah
2010-03-25 18:55                     ` Luiz Capitulino
2010-03-26  2:16                       ` Amit Shah
2010-03-26 13:14                         ` Luiz Capitulino
2010-03-26 13:26                           ` Amit Shah
2010-03-26 14:29                             ` Luiz Capitulino
2010-03-26 14:43                               ` Amit Shah
2010-03-26 17:52                                 ` Luiz Capitulino
2010-03-27  8:03                                   ` Amit Shah
2010-03-29 13:34                                     ` Luiz Capitulino
2010-03-26 16:51                               ` Anthony Liguori
2010-03-26  1:09     ` [Qemu-devel] [PATCH 02/15] virtio-serial: save/load: Ensure nr_ports on src and dest are same Jamie Lokier
2010-03-26  2:03       ` Amit Shah
2010-03-26  4:08         ` Jamie Lokier

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=20100326045607.GJ8111@amit-x200.redhat.com \
    --to=amit.shah@redhat.com \
    --cc=jamie@shareable.org \
    --cc=kraxel@redhat.com \
    --cc=lcapitulino@redhat.com \
    --cc=mst@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    /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).