From: Anthony Liguori <aliguori@us.ibm.com>
To: Avi Kivity <avi@qumranet.com>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>,
John Stoffel <john@stoffel.org>,
linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 1/7] KVM: userspace interface
Date: Thu, 19 Oct 2006 14:17:18 -0500 [thread overview]
Message-ID: <4537CF3E.7060105@us.ibm.com> (raw)
In-Reply-To: <4537CD94.2070706@qumranet.com>
Avi Kivity wrote:
> Anthony Liguori wrote:
>>
>> ioctls are probably wrong here though. Ideally, you would want to be
>> able to support an SMP guest. This means you need to have two
>> virtual processors executing in kernel space. If you use ioctls, it
>> forces you to have two separate threads in userspace. This would be
>> hard for something like QEMU which is currently single threaded (and
>> not at all thread safe).
>>
>
> Since we're using the Linux scheduler, we need a task per virtual cpu
> anyway, so a thread per vcpu is not a problem.
>
You miss my point I think. Using ioctls *requires* a thread per-vcpu in
userspace. This is unnecessary since you could simply provide a
char-device based read/write interface. You could then multiplex events
and poll.
If for nothing else, you have to be able to run timers in userspace and
interrupt the kernel execution (to signal DMA completion for instance).
Even in the UP case, this gets ugly quickly.
read/write is really just a much cleaner interface for anything that has
blocking semantics.
Regards,
Anthony Liguori
>> If you used a read/write interface, you could poll for any number of
>> processors and handle IO emulation in a single userspace thread
>> (which seems closer to how hardware really works anyway).
>>
>
> We can still do that by having the thread write an I/O request to
> hardware service thread, and read back the response. However that
> will not be too good for scheduling. For now the smp plan is to slap
> a single lock on the qemu device model, and later fine-grain the
> locking on individual devices as necessary.
>
> Qemu's transition to aio will probably help in reducing the amount of
> work done under lock.
>
next prev parent reply other threads:[~2006-10-19 19:17 UTC|newest]
Thread overview: 86+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-10-19 13:45 [PATCH 0/7] KVM: Kernel-based Virtual Machine Avi Kivity
2006-10-19 13:47 ` [PATCH 1/7] KVM: userspace interface Avi Kivity
2006-10-19 14:30 ` John Stoffel
2006-10-19 14:43 ` Avi Kivity
2006-10-19 23:26 ` Greg KH
2006-10-19 14:50 ` Alan Cox
2006-10-19 14:51 ` Avi Kivity
2006-10-19 15:25 ` John Stoffel
2006-10-19 18:49 ` Anthony Liguori
2006-10-19 19:10 ` Avi Kivity
2006-10-19 19:17 ` Anthony Liguori [this message]
2006-10-20 7:36 ` Avi Kivity
2006-10-20 15:33 ` Anthony Liguori
2006-10-22 8:10 ` Avi Kivity
2006-10-19 20:36 ` Alan Cox
2006-10-19 18:46 ` Anthony Liguori
2006-10-19 19:04 ` Avi Kivity
2006-10-19 19:09 ` Anthony Liguori
2006-10-19 19:26 ` Avi Kivity
2006-10-19 19:31 ` Anthony Liguori
2006-10-19 22:15 ` Alan Cox
2006-10-20 7:42 ` Avi Kivity
2006-10-20 15:35 ` Anthony Liguori
2006-10-19 20:10 ` Andi Kleen
2006-10-19 20:14 ` Jan Engelhardt
2006-10-20 7:16 ` Avi Kivity
2006-10-21 15:50 ` Arnd Bergmann
2006-10-22 8:19 ` Avi Kivity
2006-10-21 13:37 ` Steven Rostedt
2006-10-22 8:14 ` Avi Kivity
2006-10-19 13:48 ` [PATCH 2/7] KVM: Intel virtual mode extensions definitions Avi Kivity
2006-10-19 20:19 ` Jan Engelhardt
2006-10-19 21:54 ` Alan Cox
2006-10-20 7:17 ` Avi Kivity
2006-10-21 13:48 ` Steven Rostedt
2006-10-22 8:17 ` Avi Kivity
2006-10-19 13:49 ` [PATCH 3/7] KVM: kvm data structures Avi Kivity
2006-10-19 13:53 ` [PATCH 5/7] KVM: mmu virtualization Avi Kivity
2006-10-19 20:26 ` Jan Engelhardt
2006-10-20 7:24 ` Avi Kivity
2006-10-19 13:54 ` [PATCH 6/7] KVM: x86 emulator Avi Kivity
2006-10-19 13:56 ` [PATCH 7/7] KVM: plumbing Avi Kivity
2006-10-19 13:58 ` [PATCH 0/7] KVM: Kernel-based Virtual Machine Avi Kivity
2006-10-19 16:05 ` Andi Kleen
2006-10-19 16:09 ` Avi Kivity
2006-10-19 19:02 ` Anthony Liguori
2006-10-19 19:14 ` Avi Kivity
2006-10-19 19:28 ` Anthony Liguori
2006-10-20 7:37 ` Avi Kivity
2006-10-19 17:31 ` Muli Ben-Yehuda
2006-10-19 18:00 ` Avi Kivity
2006-10-19 18:12 ` Randy Dunlap
2006-10-19 18:14 ` Avi Kivity
2006-10-19 18:30 ` Randy.Dunlap
2006-10-21 16:16 ` Arnd Bergmann
2006-10-22 8:37 ` Avi Kivity
2006-10-22 15:23 ` Arnd Bergmann
2006-10-22 16:18 ` Avi Kivity
2006-10-22 16:51 ` Arnd Bergmann
2006-10-22 17:01 ` Avi Kivity
2006-10-22 17:06 ` Arnd Bergmann
2006-10-22 17:41 ` Avi Kivity
2006-10-22 17:47 ` Arnd Bergmann
2006-10-22 17:56 ` Christoph Hellwig
2006-10-22 18:00 ` Avi Kivity
2006-10-22 18:36 ` Arnd Bergmann
2006-10-22 18:41 ` Avi Kivity
2006-10-22 18:49 ` Arnd Bergmann
2006-10-22 18:55 ` Avi Kivity
2006-10-22 22:26 ` Andi Kleen
2006-10-23 22:29 ` Jeremy Fitzhardinge
2006-10-22 20:01 ` Alan Cox
2006-10-22 20:45 ` Roland Dreier
2006-10-23 0:29 ` Anthony Liguori
2006-10-25 16:42 ` Pavel Machek
2006-10-22 19:59 ` Alan Cox
2006-10-22 22:28 ` Andi Kleen
2006-10-23 0:27 ` Roland Dreier
2006-10-23 0:39 ` Andi Kleen
2006-10-23 0:51 ` Roland Dreier
2006-10-22 17:39 ` Anthony Liguori
2006-10-22 17:53 ` Arnd Bergmann
2006-10-22 19:56 ` Alan Cox
2006-10-23 7:42 ` Avi Kivity
2006-10-24 21:38 ` kvm_create() (was Re: [PATCH 0/7] KVM: Kernel-based Virtual Machine) Andy Isaacson
2006-10-19 18:55 ` [PATCH 0/7] KVM: Kernel-based Virtual Machine Anthony Liguori
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=4537CF3E.7060105@us.ibm.com \
--to=aliguori@us.ibm.com \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=avi@qumranet.com \
--cc=john@stoffel.org \
--cc=linux-kernel@vger.kernel.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.