qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] Re: virtio-serial semantics for binary data and guest agent


From: Amit Shah
Subject: [Qemu-devel] Re: virtio-serial semantics for binary data and guest agents
Date: Mon, 28 Feb 2011 17:51:32 +0530
User-agent: Mutt/1.5.21 (2010-09-15)

On (Thu) 24 Feb 2011 [08:44:07], Anthony Liguori wrote:
> >>>>For instance, if the host side disconnects, then reconnects before
> >>>>we read(), we may never get the read()=0, and our FD remains valid.
> >>>>Whereas with a tcp/unix socket our FD is no longer valid, and the
> >>>>read()=0 is an event we can check for at any point after the other
> >>>>end does a close/disconnect.
> >>>There's SIGIO support, so host connect-disconnect notifications can be
> >>>caught via the signal.
> >>I recall looking into this at some point....but don't we get a SIGIO
> >>for read/write-ability in general?
> >I don't get you -- the virtio_console driver emits the SIGIO signal
> >only when the host side connects or disconnects.  See
> 
> Um, that's not the expected semantics of SIGIO.  SIGIO can be
> delivered for any number of reasons (including on a normal file
> descriptor) so if there's no way to poll for the specific event then
> the mechanism is inherently racy.

Well -- for a custom driver something's going to be non-standard:  if
it's baking in connection info into the open/close semantics or having
SIGIO delivered when needed.

However, I think a generic library needs to be used for guest-host
communications, abstracting away virtio-serial entirely.  This way,
apps should just communicate over tcp, the library should do the
necessary virtio-serial (or even virt-9pfs) calls.  This way, all
guest apps written will be infrastructure-agnostic, and if there's a
better protocol to communicate with, virtio-serial can easily be
dropped w/o modifications to apps.

                Amit



reply via email to

[Prev in Thread] Current Thread [Next in Thread]