From: Amit Shah <amit.shah@redhat.com>
To: Anthony Liguori <anthony@codemonkey.ws>
Cc: qemu-devel@nongnu.org, kvm@vger.kernel.org,
virtualization@lists.linux-foundation.org
Subject: [Qemu-devel] Re: Extending virtio_console to support multiple ports
Date: Sun, 30 Aug 2009 15:40:57 +0530 [thread overview]
Message-ID: <20090830101057.GB32563@amit-x200.redhat.com> (raw)
In-Reply-To: <4A980D18.30106@codemonkey.ws>
On (Fri) Aug 28 2009 [12:00:08], Anthony Liguori wrote:
> Amit Shah wrote:
>> On (Tue) Aug 25 2009 [11:47:20], Amit Shah wrote:
>>
>>> Hello all,
>>>
>>> Here is a new iteration of the patch series that implements a
>>> transport for guest and host communications.
>>>
>>> The code has been updated to reuse the virtio-console device instead
>>> of creating a new virtio-serial device.
>>>
>>
>> And the problem now is that hvc calls the put_chars function with
>> spinlocks held and we now allocate pages in send_buf(), called from
>> put_chars.
>>
>
> Don't allocate pages in send_buf. There's a fixed number of possible
> entries on the ring. Preallocate them up front and then you don't need
> to sleep.
I did think about that as well, but there are problems:
- vnc clients (at least tigervnc) wants to receive the entire clipboard
in a single flush command. So in the pre-allocated buffers scenario we
could run short of the available buffers in some cases. So there will
have to be a flag with each buffer that says 'there's more data
pending for this particular write' which will have to be passed on to
qemu and qemu will then flush it once it receives all the data
- A lock has to be introduced to fetch one unused buffer from the list
and pass it on to the host. And this lock has to be a spinlock, just
because writes can be called from irq context.
We're basically just turning a simple transport into more and more
complex code just to handle this special case.
Amit
next prev parent reply other threads:[~2009-08-30 10:12 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-08-25 6:17 [Qemu-devel] Extending virtio_console to support multiple ports Amit Shah
2009-08-25 6:17 ` [Qemu-devel] [PATCH] virtio_console: Add interface for guest and host communication Amit Shah
2009-08-25 6:17 ` [Qemu-devel] [PATCH 1/3] char: Emit 'CLOSED' events on char device close Amit Shah
2009-08-25 6:17 ` [Qemu-devel] [PATCH 2/3] virtio-console: rename dvq to ovq Amit Shah
2009-08-25 8:16 ` [Qemu-devel] [PATCH 3/3] virtio-console: Add interface for generic guest-host communication Amit Shah
2009-08-26 11:27 ` [Qemu-devel] Re: Extending virtio_console to support multiple ports Amit Shah
2009-08-26 15:45 ` Amit Shah
2009-08-27 4:07 ` Benjamin Herrenschmidt
2009-08-27 6:51 ` Amit Shah
2009-08-27 9:08 ` Alan Cox
2009-08-27 9:27 ` Benjamin Herrenschmidt
2009-08-27 11:45 ` [Qemu-devel] [PATCH] hvc_console: provide (un)locked version for hvc_resize() Hendrik Brueckner
2009-08-29 1:15 ` [Qemu-devel] Re: Extending virtio_console to support multiple ports Jamie Lokier
2009-08-27 5:04 ` Michael Ellerman
2009-08-27 6:52 ` Amit Shah
2009-08-27 14:13 ` Ryan Arnold
2009-08-28 17:00 ` Anthony Liguori
2009-08-30 10:10 ` Amit Shah [this message]
2009-08-30 12:48 ` Anthony Liguori
2009-08-30 13:17 ` Amit Shah
2009-08-31 13:17 ` Anthony Liguori
2009-08-31 13:51 ` Amit Shah
2009-08-31 14:21 ` Anthony Liguori
2009-08-31 14:31 ` Amit Shah
2009-08-31 15:56 ` Anthony Liguori
2009-08-31 16:19 ` Amit Shah
2009-08-31 16:37 ` Anthony Liguori
2009-09-21 5:20 ` Rusty Russell
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=20090830101057.GB32563@amit-x200.redhat.com \
--to=amit.shah@redhat.com \
--cc=anthony@codemonkey.ws \
--cc=kvm@vger.kernel.org \
--cc=qemu-devel@nongnu.org \
--cc=virtualization@lists.linux-foundation.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).