From: Paul Brook <paul@codesourcery.com>
To: qemu-devel@nongnu.org
Cc: Amit Shah <amit.shah@redhat.com>,
Juan Quintela <quintela@redhat.com>,
Gerd Hoffmann <kraxel@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>
Subject: Re: [Qemu-devel] Re: [PATCH 0/8] (v2) chardev, virtio-console: flow control, error handling, fixes
Date: Mon, 12 Apr 2010 12:42:49 +0100 [thread overview]
Message-ID: <201004121242.49368.paul@codesourcery.com> (raw)
In-Reply-To: <4BC2D117.30307@redhat.com>
> >> The qemu chardevs can now return -EAGAIN when a non-blocking remote
> >> isn't ready to accept more data.
> >>
> >> Comments?
> >
> > This is a major change in semantics. Are you sure all users handle this
> > correctly? My guess is that most of the devices don't.
>
> I don't expect trouble here. EAGAIN is returned only for file handles
> in non-blocking mode. I doubt existing users use non-blocking I/O as
> this makes the current unix_write() code go busy-loop in case the
> outgoing pipe is full.
I'm pretty sure existing devices emulation assumes qemu_chr_write either fully
completes or fails with an error. Whether a FD is nonblocking is determined by
the backend used to implement the chardev, not the emulated device using the
chardev.
For the device emulation side of the API, unix write() semantics are IMO a bad
solution. What we really want is an API for posting asynchronous writes.
Paul
prev parent reply other threads:[~2010-04-12 11:43 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-07 21:02 [Qemu-devel] [PATCH 0/8] (v2) chardev, virtio-console: flow control, error handling, fixes Amit Shah
2010-04-07 21:02 ` [Qemu-devel] [PATCH 1/8] virtio-serial: throttling: check for throttled status before sending any data Amit Shah
2010-04-07 21:02 ` [Qemu-devel] [PATCH 2/8] virtio-serial: Unthrottle ports once they're closed Amit Shah
2010-04-07 21:02 ` [Qemu-devel] [PATCH 3/8] virtio-serial: Discard unconsumed data before sending port close event Amit Shah
2010-04-07 21:02 ` [Qemu-devel] [PATCH 4/8] virtio-serial: Bus info message for showing port's throttled status Amit Shah
2010-04-07 21:02 ` [Qemu-devel] [PATCH 5/8] char: Let writers know how much data was written in case of errors Amit Shah
2010-04-07 21:02 ` [Qemu-devel] [PATCH 6/8] char: unix: For files that are nonblocking, report -EAGAIN to calling functions Amit Shah
2010-04-07 21:02 ` [Qemu-devel] [PATCH 7/8] virtio-console: Factor out common init between console and generic ports Amit Shah
2010-04-07 21:02 ` [Qemu-devel] [PATCH 8/8] virtio-console: Throttle virtio-serial-bus if we can't consume any more guest data Amit Shah
2010-04-07 22:58 ` [Qemu-devel] Re: [PATCH 0/8] (v2) chardev, virtio-console: flow control, error handling, fixes Paul Brook
2010-04-12 7:51 ` Gerd Hoffmann
2010-04-12 11:42 ` Paul Brook [this message]
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=201004121242.49368.paul@codesourcery.com \
--to=paul@codesourcery.com \
--cc=amit.shah@redhat.com \
--cc=kraxel@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).