From: Jeremy Fitzhardinge <jeremy@goop.org>
To: Nick Piggin <nickpiggin@yahoo.com.au>
Cc: Andrew Morton <akpm@linux-foundation.org>,
"H. Peter Anvin" <hpa@zytor.com>,
the arch/x86 maintainers <x86@kernel.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Xen-devel <xen-devel@lists.xensource.com>
Subject: Re: [PATCH] xen: core dom0 support
Date: Mon, 02 Mar 2009 01:05:21 -0800 [thread overview]
Message-ID: <49ABA151.5050302@goop.org> (raw)
In-Reply-To: <200903021919.30068.nickpiggin@yahoo.com.au>
Nick Piggin wrote:
>> I wouldn't say that KVM is necessarily disadvantaged by its design; its
>> just a particular set of tradeoffs made up-front. It loses Xen's
>> flexibility, but the result is very familiar to Linux people. A guest
>> domain just looks like a qemu process that happens to run in a strange
>> processor mode a lot of the time. The qemu process provides virtual
>> device access to its domain, and accesses the normal device drivers like
>> any other usermode process would. The domains are as isolated from each
>> other as much as processes normally are, but they're all floating around
>> in the same kernel; whether that provides enough isolation for whatever
>> technical, billing, security, compliance/regulatory or other
>> requirements you have is up to the user to judge.
>>
>
> Well what is the advantage of KVM? Just that it is integrated into
> the kernel? Can we look at the argument the other way around and
> ask why Xen can't replace KVM?
Xen was around before KVM was even a twinkle, so KVM is redundant from
that perspective; they're certainly broadly equivalent in
functionality. But Xen has had a fairly fraught history with respect to
being merged into the kernel, and being merged gets your feet into a lot
of doors. The upshot is that using Xen has generally required some
preparation - like installing special kernels - before you can use it,
and so tends to get used for servers which are specifically intended to
be virtualized. KVM runs like an accelerated qemu, so it easy to just
fire up an instance of windows in the middle of a normal Linux desktop
session, with no special preparation.
But Xen is getting better at being on laptops and desktops, and doing
all the things people expect there (power management, suspend/resume,
etc). And people are definitely interested in using KVM in server
environments, so the lines are not very clear any more.
(Of course, we're completely forgetting VMI in all this, but VMware seem
to have as well. And we're all waiting for Rusty to make his World
Domination move.)
> (is it possible to make use of HW
> memory virtualization in Xen?)
Yes, Xen will use all available hardware features when running hvm
domains (== fully virtualized == Windows).
> The hypervisor is GPL, right?
>
Yep.
>>> Would it be possible I wonder to make
>>> a MMU virtualization layer for CPUs without support, using Xen's page
>>> table protection methods, and have KVM use that? Or does that amount
>>> to putting a significant amount of Xen hypervisor into the kernel..?
>>>
>> At one point Avi was considering doing it, but I don't think he ever
>> made any real effort in that direction. KVM is pretty wedded to having
>> hardware support anyway, so there's not much point in removing it in
>> this one area.
>>
>
> Not removing it, but making it available as an alternative form of
> "hardware supported" MMU virtualization. As you say if direct protected
> page tables often are faster than existing HW solutoins anyway, then it
> could be a win for KVM even on newer CPUs.
>
Well, yes. I'm sure it will make someone a nice little project. It
should be fairly easy to try out - all the hooks are in place, so its
just a matter of implementing the kvm bits. But it probably wouldn't be
a comfortable fit with the rest of Linux; all the memory mapped via
direct pagetables would be solidly pinned down, completely unswappable,
giving the VM subsystem much less flexibility about allocating
resources. I guess it would be no worse than a multi-hundred
megabyte/gigabyte process mlocking itself down, but I don't know if
anyone actually does that.
J
next prev parent reply other threads:[~2009-03-02 9:05 UTC|newest]
Thread overview: 77+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-02-28 1:59 [PATCH] xen: core dom0 support Jeremy Fitzhardinge
2009-02-28 1:59 ` [PATCH] xen dom0: Make hvc_xen console work for dom0 Jeremy Fitzhardinge
2009-02-28 1:59 ` [PATCH] xen dom0: Initialize xenbus " Jeremy Fitzhardinge
2009-02-28 1:59 ` [PATCH] xen dom0: Set up basic IO permissions " Jeremy Fitzhardinge
2009-02-28 1:59 ` [PATCH] xen-dom0: only selectively disable cpu features Jeremy Fitzhardinge
2009-02-28 1:59 ` [PATCH] xen dom0: Add support for the platform_ops hypercall Jeremy Fitzhardinge
2009-02-28 1:59 ` [PATCH] xen mtrr: Add mtrr_ops support for Xen mtrr Jeremy Fitzhardinge
2009-02-28 1:59 ` [PATCH] xen: disable PAT Jeremy Fitzhardinge
2009-02-28 1:59 ` [PATCH] xen/dom0: use _PAGE_IOMAP in ioremap to do machine mappings Jeremy Fitzhardinge
2009-02-28 1:59 ` [PATCH] paravirt/xen: add pvop for page_is_ram Jeremy Fitzhardinge
2009-03-10 1:07 ` H. Peter Anvin
2009-03-10 21:19 ` Jeremy Fitzhardinge
2009-03-10 22:21 ` H. Peter Anvin
2009-03-10 22:44 ` Jeremy Fitzhardinge
2009-02-28 1:59 ` [PATCH] xen/dom0: Use host E820 map Jeremy Fitzhardinge
2009-02-28 1:59 ` [PATCH] xen: implement XENMEM_machphys_mapping Jeremy Fitzhardinge
2009-02-28 1:59 ` [PATCH] xen: clear reserved bits in l3 entries given in the initial pagetables Jeremy Fitzhardinge
2009-02-28 1:59 ` [PATCH] xen/dom0: add XEN_DOM0 config option Jeremy Fitzhardinge
2009-02-28 1:59 ` [PATCH] xen: allow enable use of VGA console on dom0 Jeremy Fitzhardinge
2009-02-28 1:59 ` [PATCH] xen mtrr: Use specific cpu_has_foo macros instead of generic cpu_has() Jeremy Fitzhardinge
2009-02-28 1:59 ` [PATCH] xen mtrr: Kill some unneccessary includes Jeremy Fitzhardinge
2009-02-28 1:59 ` [PATCH] xen mtrr: Use generic_validate_add_page() Jeremy Fitzhardinge
2009-02-28 1:59 ` [PATCH] xen mtrr: Implement xen_get_free_region() Jeremy Fitzhardinge
2009-02-28 1:59 ` [PATCH] xen mtrr: Add xen_{get,set}_mtrr() implementations Jeremy Fitzhardinge
2009-02-28 5:28 ` [PATCH] xen: core dom0 support Andrew Morton
2009-02-28 6:52 ` Jeremy Fitzhardinge
2009-02-28 7:20 ` Ingo Molnar
2009-02-28 8:05 ` Jeremy Fitzhardinge
2009-02-28 8:36 ` Ingo Molnar
2009-02-28 9:57 ` Jeremy Fitzhardinge
2009-03-02 9:26 ` Gerd Hoffmann
2009-03-02 12:04 ` Ingo Molnar
2009-03-02 12:26 ` Gerd Hoffmann
2009-02-28 12:09 ` Nick Piggin
2009-02-28 18:11 ` [Xen-devel] " Jody Belka
2009-02-28 18:15 ` Andi Kleen
2009-03-01 23:38 ` Jeremy Fitzhardinge
2009-03-02 0:14 ` Andi Kleen
2009-03-01 23:27 ` Jeremy Fitzhardinge
2009-03-02 6:37 ` Nick Piggin
2009-03-02 8:05 ` Jeremy Fitzhardinge
2009-03-02 8:19 ` Nick Piggin
2009-03-02 9:05 ` Jeremy Fitzhardinge [this message]
2009-03-04 17:34 ` Anthony Liguori
2009-03-04 17:38 ` Jeremy Fitzhardinge
2009-03-05 10:59 ` [Xen-devel] " George Dunlap
2009-03-05 14:37 ` Anthony Liguori
2009-03-04 17:31 ` Anthony Liguori
2009-03-04 19:03 ` Anthony Liguori
2009-03-04 19:16 ` H. Peter Anvin
2009-03-04 19:33 ` Anthony Liguori
2009-02-28 16:14 ` Andi Kleen
2009-03-01 23:34 ` Jeremy Fitzhardinge
2009-03-01 23:52 ` H. Peter Anvin
2009-03-02 0:08 ` Jeremy Fitzhardinge
2009-03-02 0:14 ` H. Peter Anvin
2009-03-02 0:42 ` Jeremy Fitzhardinge
2009-03-02 0:46 ` H. Peter Anvin
2009-03-02 0:10 ` Andi Kleen
2009-02-28 8:42 ` Ingo Molnar
2009-02-28 9:46 ` Jeremy Fitzhardinge
2009-03-02 12:08 ` Ingo Molnar
2009-03-07 9:06 ` Jeremy Fitzhardinge
2009-03-08 11:01 ` Ingo Molnar
2009-03-08 21:56 ` H. Peter Anvin
2009-03-08 22:06 ` Ingo Molnar
2009-03-08 22:08 ` H. Peter Anvin
2009-03-08 22:12 ` Ingo Molnar
2009-03-09 18:06 ` Jeremy Fitzhardinge
2009-03-10 12:44 ` Ingo Molnar
2009-03-10 12:49 ` Nick Piggin
2009-03-05 13:52 ` Morten P.D. Stevens
2009-03-08 14:25 ` Manfred Knick
2009-03-09 19:51 ` Morten P.D. Stevens
2009-03-09 20:00 ` Morten P.D. Stevens
-- strict thread matches above, loose matches on Subject: below --
2009-03-11 19:58 devzero
2009-03-14 1:08 ` Morten P.D. Stevens
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=49ABA151.5050302@goop.org \
--to=jeremy@goop.org \
--cc=akpm@linux-foundation.org \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=nickpiggin@yahoo.com.au \
--cc=x86@kernel.org \
--cc=xen-devel@lists.xensource.com \
/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).