All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anthony Liguori <anthony@codemonkey.ws>
To: Gerd Hoffmann <kraxel@redhat.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 0/2] Tunnel character device data over VNC (v1)
Date: Wed, 01 Jul 2009 16:32:27 -0500	[thread overview]
Message-ID: <4A4BD5EB.5060701@codemonkey.ws> (raw)
In-Reply-To: <4A4BCD80.2000906@redhat.com>

Gerd Hoffmann wrote:

> With multiple connections and multiplexing:  You'll just connect, type 
> a few commands, disconnect, done.  You'll even see what you have done 
> when you come back to the office the next day.
>
> Also note that the vnc server accepts input from multiple clients as 
> well, which can lead to simliar problems.  Nobody wants to kill 
> support for multiple clients just because of that, because in practice 
> it isn't a issue.

I don't disagree with your use-case.  What I'm pointing out, is that we 
need to do some major surgery to get there.

The current chardev protocol has no real notion of flow control and 
assumes a static bidirectional channel between the front-end and 
back-end.  Flow control policy is inconsistent and those decisions are 
made in the back-end (i.e. tcp:).

We really need to push flow-control to be a proper part of the protocol 
though so that the front-end can participate.  For instance, 
virtio-console/serial is fully capable of implementing flow control.  
Punting buffering policy to the guest is IMHO the best possible solution 
to the general problem.

Having multiple connections within a chardev really also needs to be 
part of the monitor protocol because it's fundamental to flow-control.  
We want the front-end to have enough information to know how many 
clients are connected and which ones are ready to receive.

When dealing with a single I/O source, it should be front-end policy to 
determine what to do.  Certainly, there are some front-ends (like the 
monitor) that can support multiple I/O sources.  Another example is the 
VNC server which really should be using chardevs.

I agree that mirroring is a pretty reasonable policy to map a single I/O 
source to multiple clients for some devices.  That should be a front-end 
decision though.

In this model, I still don't see having two different back-ends 
connected to a single front-end.  I don't know if I agree there's a 
whole lot of value in that although the implementation is straight 
forward (a special back-end that unifies multiple front-ends as sessions).

Regards,

Anthony Liguori

  reply	other threads:[~2009-07-01 21:32 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-07-01 16:21 [Qemu-devel] [PATCH 0/2] Tunnel character device data over VNC (v1) Daniel P. Berrange
2009-07-01 16:26 ` [Qemu-devel] [PATCH 1/2] APIs to capture character device data Daniel P. Berrange
2009-07-01 16:27 ` [Qemu-devel] [PATCH 2/2] VNC char device data stream tunnelling Daniel P. Berrange
2009-07-01 18:44   ` Anthony Liguori
2009-07-01 16:32 ` [Qemu-devel] [PATCH 0/2] Tunnel character device data over VNC (v1) Daniel P. Berrange
2009-07-01 16:42 ` Gerd Hoffmann
2009-07-01 16:50   ` Daniel P. Berrange
2009-07-01 17:30     ` Gerd Hoffmann
2009-07-01 18:50       ` Daniel P. Berrange
2009-07-01 19:27         ` Gerd Hoffmann
2009-07-01 18:51       ` Anthony Liguori
2009-07-01 19:41         ` Gerd Hoffmann
2009-07-01 19:59           ` Anthony Liguori
2009-07-01 20:56             ` Gerd Hoffmann
2009-07-01 21:32               ` Anthony Liguori [this message]
2009-07-01 22:46                 ` Gerd Hoffmann
2009-07-02  2:30               ` Jamie Lokier
2009-07-01 21:07             ` Daniel P. Berrange
2009-07-01 18:36 ` Anthony Liguori
2009-07-01 18:44   ` Daniel P. Berrange
2009-07-01 18:47     ` Anthony Liguori
2009-07-01 18:52       ` Daniel P. Berrange
2009-07-01 19:11         ` Anthony Liguori
2009-07-01 19:27           ` Daniel P. Berrange

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=4A4BD5EB.5060701@codemonkey.ws \
    --to=anthony@codemonkey.ws \
    --cc=kraxel@redhat.com \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.