qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Jan Kiszka <jan.kiszka@siemens.com>
To: qemu-devel@nongnu.org
Subject: [Qemu-devel] Re: KQEMU code organization
Date: Thu, 29 May 2008 18:48:30 +0200	[thread overview]
Message-ID: <483EDE5E.2000807@siemens.com> (raw)
In-Reply-To: <20080529161322.GB21610@shareable.org>

Jamie Lokier wrote:
> Fabrice Bellard wrote:
>> Regarding the kqemu evolution, I am doing small API changes to make it 
>> more independent from the QEMU internal data structures and to allow 
>> usage from a 32 bit user QEMU application with a 64 bit host. There is 
>> also another small change I did some time ago but never published to 
>> allow paravirtualization of the Linux kernel.
> 
> Do you see integrating it with KVM at some point, developing a merged
> API which supports both hardware-assisted (kvm) or software-assisted
> (kqemu) depending on the host's CPU?

I had the same idea while initially looking closer at kqemu, but I
didn't felt familiar enough with the code and its design requirements to
suggest this. :)

> 
> Right now, although it's come from a different background, from a
> user's perspective kvm seems to do essentially the same as kqemu,
> except kvm is faster and kqemu runs on more x86 CPUs.
> 
> I.e. kvm has two sub-modules for Intel VT and AMD SVM extensions (I
> think that's their names).  It would be great if it hard a third KQEMU
> sub-module (which would of course be the most complicated ;-) to make
> running vMs even more independent of the host CPU.

Well, already the same driver interface to userspace would be great. :->

> 
> That would require adding kqemu's software translation/scanning
> callbacks to kvm's API, or vice versa.  But it would have the bonus of
> adding kvm's in-kernel fast APIC emulation to kqemu, possibly the
> paravirt and virtio stuff too, and further unifying kvm-using and
> kqemu-using systems, and combining developer attention from these
> different projects, which all seem to be in the same direction.

The most important thing, IMHO, this /could/ open the door from mainline
integration of a software-based QEMU accelerator - surely the ultimate
goal /wrt to maintainability and distribution (on Linux).

> 
> As someone interested in emulator development I understand the
> different histories of kqemu and kvm.  As a user, however, it seems
> logical at this point to begin seeing them as different ways of
> achieving the same thing, depending on the host CPU capabilities, and
> those things which should not depend on the host CPU - such as virtio,
> APIC emulation etc. - ought to share the same kernel code.

Virtio on x86 requires no special host-kernel support, IIRC. But, yeah,
in-kernel irqchip (including APIC) is a further incentive to motivate
such step.

But - this is all nice on the drawing board. It just requires a
reasonable balance between required effort (wouldn't be small, I guess)
and future relevance. For x86, by AMD and Intel at least (not sure about
VIA right now), you see hardware virtualization in every new processor.
So kqemu becomes less and less relevant over the time. The thrilling
question is: Is that period long enough to justify a kqemu / soft-kvm,
and to push the result mainline?

Jan

-- 
Siemens AG, Corporate Technology, CT SE 2
Corporate Competence Center Embedded Linux

  parent reply	other threads:[~2008-05-29 16:48 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-05-27 16:56 [Qemu-devel] KQEMU code organization Jan Kiszka
2008-05-27 17:20 ` Ben Taylor
2008-05-27 18:25   ` [Qemu-devel] " Jan Kiszka
2008-05-27 20:58 ` [Qemu-devel] " Fabrice Bellard
2008-05-27 21:40   ` [Qemu-devel] " Jan Kiszka
2008-05-27 22:11 ` [Qemu-devel] " Fabrice Bellard
2008-05-28 16:02   ` [Qemu-devel] " Jan Kiszka
2008-05-28 16:37     ` Fabrice Bellard
2008-05-28 16:55       ` Jan Kiszka
2008-05-28 18:34         ` Jan Kiszka
2008-05-29 12:29         ` Fabrice Bellard
2008-05-29 13:16           ` Jan Kiszka
2008-05-29 16:13           ` Jamie Lokier
2008-05-29 16:26             ` Paul Brook
2008-05-29 16:35               ` Jamie Lokier
2008-05-29 17:43                 ` Anthony Liguori
2008-05-29 21:46                   ` Fabrice Bellard
2008-05-30  3:32                     ` Mulyadi Santosa
2008-05-30  8:14                       ` Andreas Färber
2008-05-29 16:26             ` Anthony Liguori
2008-05-29 16:53               ` Jan Kiszka
2008-05-29 17:48                 ` Anthony Liguori
2008-05-31 10:18                 ` Avi Kivity
2008-06-02 16:34                   ` Jamie Lokier
2008-05-29 21:52               ` Fabrice Bellard
2008-05-31 10:06                 ` Avi Kivity
2008-06-01 22:58                 ` Anthony Liguori
2008-06-02  9:02                   ` Fabrice Bellard
2008-06-02 13:25                     ` Anthony Liguori
2008-05-29 16:48             ` Jan Kiszka [this message]
2008-05-29 17:47               ` 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=483EDE5E.2000807@siemens.com \
    --to=jan.kiszka@siemens.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 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).