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-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 5/8] virtio-serial-bus: Add support for buffering guest output, throttling guests
Date: Fri, 8 Jan 2010 10:33:51 +0530	[thread overview]
Message-ID: <20100108050351.GB8999@amit-x200.redhat.com> (raw)
In-Reply-To: <20100108011231.GA5011@shareable.org>

On (Fri) Jan 08 2010 [01:12:31], Jamie Lokier wrote:
> Amit Shah wrote:
> > Guests send us one buffer at a time. Current guests send buffers sized
> > 4K bytes. If guest userspace applications sent out > 4K bytes in one
> > write() syscall, the write request actually sends out multiple buffers,
> > each of 4K in size.
> > 
> > This usually isn't a problem but for some apps, like VNC, the entire
> > data has to be sent in one go to make copy/paste work fine. So if an app
> > on the guest sends out guest clipboard contents, it has to be sent to
> > the vnc server in one go as the guest app sent it.
> > 
> > For this to be done, we need the guest to send us START and END markers
> > for each write request so that we can find out complete buffers and send
> > them off to ports.
> 
> That looks very dubious.  TCP/IP doesn't maintain write boundaries;
> neither do pipes, unix domain sockets, pseudo-terminals, and almost
> every other modern byte-oriented transport.
> 
> So how does VNC transmit the clipboard over TCP/IP to a VNC client,
> without those boundaries, and why is it different with virtserialport?

TCP does this in its stack: it waits for the number of bytes written to
be received and then notifies userspace of data availibility.

In this case, consider the case where the guest writes 10k of data. The
guest gives us those 10k in 3 chunks: the first containing 4k (- header
size), the 2nd containing the next 4k (- header size) and the 3rd chunk
the remaining data.

I want to flush out this data only when I get all 10k.

		Amit

  reply	other threads:[~2010-01-08  5:05 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 [this message]
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
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=20100108050351.GB8999@amit-x200.redhat.com \
    --to=amit.shah@redhat.com \
    --cc=jamie@shareable.org \
    --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).