qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Amit Shah <amit.shah@redhat.com>
To: Anthony Liguori <anthony@codemonkey.ws>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 5/8] virtio-serial-bus: Add support for buffering guest output, throttling guests
Date: Tue, 12 Jan 2010 12:38:41 +0530	[thread overview]
Message-ID: <20100112070841.GA19438@amit-x200.redhat.com> (raw)
In-Reply-To: <4B4BC244.7030508@codemonkey.ws>

On (Mon) Jan 11 2010 [18:28:52], Anthony Liguori wrote:
>>>
>>> I would think that any buffering should be pushed back to the guest.
>>> IOW, if there's available data from the char driver, but the guest
>>> doesn't have a buffer.  Don't select on the char driver until the guest
>>> has a buffer available.  If the guest attempts to write data but the
>>> char driver isn't ready to receive data, don't complete the request
>>> until the char driver can accept data.
>>>      
>> This is a different thing from what Jamie's talking about. A guest or a
>> host might be interested in communicating data without waiting for the
>> other end to come up. The other end can just start consuming the data
>> (even the data that it missed while it wasn't connected) once it's up.
>>
>> (I can remove this option for now and add it later, if you prefer it
>> that way.)
>>    
>
> If it's not needed by your use case, please remove it.  Doing buffering  
> gets tricky because you can't allow an infinite buffer for security  
> reasons.  All you end up doing is increasing the size of the buffer  
> beyond what the guest and client are capable of doing.  Since you still  
> can lose data, apps have to be written to handle this.  I think it adds  
> complexity without a lot of benefit.

The buffering has to remain anyway since we can't assume that the ports
will consume the entire buffers we pass on to them. So we'll have to
buffer the data till the entire buffer is consumed.

That, or the buffer management should be passed off to individual ports.
Which might result in a lot of code duplication since we can have a lot
of these ports in different places in the qemu code.

So I guess it's better to leave the buffer management in the bus itself.

Which means we get the 'cache_buffers' functionality essentially for
free.

		Amit

  reply	other threads:[~2010-01-12  7:09 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-01-07  7:31 [Qemu-devel] [PATCH 0/8] virtio-console: Move to qdev, multiple devices, generic ports Amit Shah
2010-01-07  7:31 ` [Qemu-devel] [PATCH 1/8] virtio: Remove duplicate macro definition for max. virtqueues, bump up the max Amit Shah
2010-01-07  7:31   ` [Qemu-devel] [PATCH 2/8] virtio-console: qdev conversion, new virtio-serial-bus Amit Shah
2010-01-07  7:31     ` [Qemu-devel] [PATCH 3/8] virtio-serial-bus: Maintain guest and host port open/close state Amit Shah
2010-01-07  7:31       ` [Qemu-devel] [PATCH 4/8] virtio-serial-bus: Add a port 'name' property for port discovery in guests Amit Shah
2010-01-07  7:31         ` [Qemu-devel] [PATCH 5/8] virtio-serial-bus: Add support for buffering guest output, throttling guests Amit Shah
2010-01-07  7:31           ` [Qemu-devel] [PATCH 6/8] virtio-serial-bus: Add ability to hot-unplug ports Amit Shah
2010-01-07  7:31             ` [Qemu-devel] [PATCH 7/8] virtio-serial: Add a 'virtserialport' device for generic serial port support Amit Shah
2010-01-07  7:31               ` [Qemu-devel] [PATCH 8/8] Move virtio-serial to Makefile.hw Amit Shah
2010-01-08  0:41                 ` Andreas Färber
2010-01-08  5:01                   ` Amit Shah
2010-01-08  1:12           ` [Qemu-devel] [PATCH 5/8] virtio-serial-bus: Add support for buffering guest output, throttling guests Jamie Lokier
2010-01-08  5:03             ` Amit Shah
2010-01-08 13:35               ` Jamie Lokier
2010-01-08 16:26                 ` Anthony Liguori
2010-01-11  8:39                   ` Amit Shah
2010-01-12  0:28                     ` Anthony Liguori
2010-01-12  7:08                       ` Amit Shah [this message]
2010-01-11  8:34                 ` Amit Shah
2010-01-11 10:45                   ` Jamie Lokier
2010-01-11 11:04                     ` Amit Shah
2010-01-11 23:33                       ` Jamie Lokier
2010-01-12  0:27                         ` Anthony Liguori
2010-01-12  7:16                         ` Amit Shah
2010-01-12 15:00                           ` Anthony Liguori
2010-01-12 15:13                             ` Amit Shah
2010-01-12 15:46                               ` Anthony Liguori
2010-01-12 15:49                                 ` Amit Shah
2010-01-12 15:55                                   ` Anthony Liguori
2010-01-12 16:04                                     ` Amit Shah
2010-01-13 17:14                             ` Markus Armbruster
2010-01-13 18:31                               ` Anthony Liguori
2010-01-11 19:57   ` [Qemu-devel] [PATCH 1/8] virtio: Remove duplicate macro definition for max. virtqueues, bump up the max Anthony Liguori
  -- strict thread matches above, loose matches on Subject: below --
2010-01-14 13:17 [Qemu-devel] [PATCH 0/8] virtio-console: Move to qdev, multiple devices, generic ports Amit Shah
2010-01-14 13:17 ` [Qemu-devel] [PATCH 1/8] virtio: Remove duplicate macro definition for max. virtqueues, bump up the max Amit Shah
2010-01-14 13:17   ` [Qemu-devel] [PATCH 2/8] virtio-console: qdev conversion, new virtio-serial-bus Amit Shah
2010-01-14 13:17     ` [Qemu-devel] [PATCH 3/8] virtio-serial-bus: Maintain guest and host port open/close state Amit Shah
2010-01-14 13:17       ` [Qemu-devel] [PATCH 4/8] virtio-serial-bus: Add a port 'name' property for port discovery in guests Amit Shah
2010-01-14 13:17         ` [Qemu-devel] [PATCH 5/8] virtio-serial-bus: Add support for buffering guest output, throttling guests Amit Shah
2010-01-04 17:34 [Qemu-devel] [PATCH 0/8] virtio-console: Move to qdev, multiple devices, generic ports Amit Shah
2010-01-04 17:34 ` [Qemu-devel] [PATCH 1/8] virtio: Remove duplicate macro definition for max. virtqueues, bump up the max Amit Shah
2010-01-04 17:34   ` [Qemu-devel] [PATCH 2/8] virtio-console: qdev conversion, new virtio-serial-bus Amit Shah
2010-01-04 17:34     ` [Qemu-devel] [PATCH 3/8] virtio-serial-bus: Maintain guest and host port open/close state Amit Shah
2010-01-04 17:34       ` [Qemu-devel] [PATCH 4/8] virtio-serial-bus: Add a port 'name' property for port discovery in guests Amit Shah
2010-01-04 17:34         ` [Qemu-devel] [PATCH 5/8] virtio-serial-bus: Add support for buffering guest output, throttling guests Amit Shah

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=20100112070841.GA19438@amit-x200.redhat.com \
    --to=amit.shah@redhat.com \
    --cc=anthony@codemonkey.ws \
    --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).