qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Anthony Liguori <anthony@codemonkey.ws>
To: Paul Brook <paul@codesourcery.com>
Cc: Amit Shah <amit.shah@redhat.com>,
	Juan Quintela <quintela@redhat.com>,
	qemu list <qemu-devel@nongnu.org>,
	Gerd Hoffmann <kraxel@redhat.com>
Subject: [Qemu-devel] Re: [PATCH v7 4/6] char: Add qemu_chr_write_nb() for nonblocking writes
Date: Wed, 05 May 2010 08:53:31 -0500	[thread overview]
Message-ID: <4BE1785B.6010208@codemonkey.ws> (raw)
In-Reply-To: <201005051434.20020.paul@codesourcery.com>

On 05/05/2010 08:34 AM, Paul Brook wrote:
>> I really dislike the idea of adding another function for this.  Can you
>> explain why you need this functionality for virtio-console and why this
>> functionality isn't needed for everything else?
>>      
> This functionality should (in principle) be used by all serial port
> implementations.
>
> Physical serial ports are sufficiently crufty and low-performance that noone
> actually uses them nowadays.  I expect that the only significant real-world
> use is for serial consoles, which never send enough data to care that writes
> stall the whole machine.
>    

We don't implement control flow in the character driver layer today.  
Different backends use different policies.  Some drop data (like pty) 
while other block (like tcp).

This patch adds optional control flow in a pretty crufty way to *some* 
backends but not all.  This just adds a bunch of complexity that will 
certainly introduce bugs.

If we're going to make the char drivers implement control flow, then I 
think we should do it universally--not as an optional feature.  For 
devices that can't participate in control flow, we should decide where 
the policy should be implemented (front-end or back-end) and in either 
approach, it's easy enough to make dropping data or blocking a choice.

Regards,

Anthony Liguori

> With virtio-serial we've made serial ports a viable solution to a whole range
> of problems.  It's likely that applications that may send nontrivial amounts
> of data, or clients will not be ready to process the data immediately.
>
> Paul
>    

  reply	other threads:[~2010-05-05 13:53 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-05-04 21:39 [Qemu-devel] [PATCH v7 0/6] Amit Shah
2010-05-04 21:39 ` [Qemu-devel] [PATCH v7 1/6] virtio-console: Factor out common init between console and generic ports Amit Shah
2010-05-04 21:39   ` [Qemu-devel] [PATCH v7 2/6] char: Add a QemuChrHandlers struct to initialise chardev handlers Amit Shah
2010-05-04 21:39     ` [Qemu-devel] [PATCH v7 3/6] char: Let writers know how much data was written in case of errors Amit Shah
2010-05-04 21:39       ` [Qemu-devel] [PATCH v7 4/6] char: Add qemu_chr_write_nb() for nonblocking writes Amit Shah
2010-05-04 21:39         ` [Qemu-devel] [PATCH v7 5/6] char: unix/tcp: Add a non-blocking write handler Amit Shah
2010-05-04 21:39           ` [Qemu-devel] [PATCH v7 6/6] virtio-console: Throttle virtio-serial-bus if we can't consume any more guest data Amit Shah
2010-05-05 13:16         ` [Qemu-devel] Re: [PATCH v7 4/6] char: Add qemu_chr_write_nb() for nonblocking writes Anthony Liguori
2010-05-05 13:22           ` Amit Shah
2010-05-05 13:34           ` Paul Brook
2010-05-05 13:53             ` Anthony Liguori [this message]
2010-05-05 14:10               ` Paul Brook
2010-05-05 18:43               ` Gerd Hoffmann
2010-05-05 18:49                 ` Anthony Liguori
2010-05-05 19:16                   ` Gerd Hoffmann
2010-05-05 19:33                     ` Anthony Liguori
2010-05-06  7:11                       ` Gerd Hoffmann
2010-05-05 18:40           ` Gerd Hoffmann
2010-05-05 18:48             ` Anthony Liguori
2010-05-05 13:15       ` [Qemu-devel] Re: [PATCH v7 3/6] char: Let writers know how much data was written in case of errors Anthony Liguori
2010-05-05 13:23         ` Amit Shah
2010-05-05 13:54           ` Anthony Liguori
2010-05-05 14:06             ` Amit Shah
2010-05-05 13:13     ` [Qemu-devel] Re: [PATCH v7 2/6] char: Add a QemuChrHandlers struct to initialise chardev handlers Anthony Liguori
2010-05-05 13:25       ` Amit Shah
2010-05-05 13:59         ` Anthony Liguori
2010-05-04 21:41 ` [Qemu-devel] Re: [PATCH v7 0/6] char: non-blocking writes, virtio-console flow control Amit Shah
2010-05-05 11:18 ` [Qemu-devel] Re: [PATCH v7 0/6] Juan Quintela

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=4BE1785B.6010208@codemonkey.ws \
    --to=anthony@codemonkey.ws \
    --cc=amit.shah@redhat.com \
    --cc=kraxel@redhat.com \
    --cc=paul@codesourcery.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).