From: ebiederm@xmission.com (Eric W. Biederman)
To: Jeremy Fitzhardinge <jeremy@goop.org>
Cc: Ingo Molnar <mingo@elte.hu>,
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: [GIT PULL] xen /proc/mtrr implementation
Date: Fri, 15 May 2009 16:26:11 -0700 [thread overview]
Message-ID: <m1my9ex818.fsf@fess.ebiederm.org> (raw)
In-Reply-To: <4A0DCC11.10307@goop.org> (Jeremy Fitzhardinge's message of "Fri\, 15 May 2009 13\:09\:53 -0700")
Jeremy Fitzhardinge <jeremy@goop.org> writes:
> Ingo Molnar wrote:
>> Right now there's no MTRR support under Xen guests and the Xen hypervisor was
>> able to survive, right? Why should we do it under dom0?
>>
>
> Because dom0 has direct hardware access, and is running real device drivers.
> domU guests don't see physical memory, and so MTRR has no relevance for them.
>> The MTRR code is extremely fragile, we dont really need an added layer
>> there. _Especially_ since /proc/mtrr is an obsolete API.
>>
>
> There's no added layer there. I'm just adding another implementation of
> mtrr_ops.
>
> /proc/mtrr is in wide use today. It may be planned for obsolescence, but
> there's no way you can claim its obsolete today (my completely up-to-date F10 X
> server is using it, for example). We don't break oldish usermode ABIs in new
> kernels.
Sure it is. There is a better newer replacement. It is taking a while to
get userspace transitioned but that is different. Honestly I am puzzled
why that it but whatever.
> Besides, the MTRR code is also a kernel-internal API, used by DRM and other
> drivers to configure the system MTRR state. Those drivers will either perform
> badly or outright fail if they can't set the appropriate cachability properties.
> That is not obsolete in any way.
There are about 5 of them so let's fix them.
With PAT we are in a much better position both for portability and for
flexibility.
>> If you want to allow a guest to do MTRR ops, you can do it by catching the
>> native kernel accesses to the MTRR space. There's no guest side support needed
>> for that.
>>
>
> MTRR can't be virtualized like that. It can't be meaningfully multiplexed, and
> must be set in a uniform way on all physical CPUs. Guests run on virtual CPUs,
> and don't have any knowledge of what the mapping of VCPU to PCPU is, or even any
> visibility of all PCPUs.
>
> It is not a piece of per-guest state; it is system-wide property, maintained by
> Xen. These patches add the mechanism for dom0 (=hardware control domain) to
> tell Xen what state they should be in.
Is it possible to fix PAT and get that working first. That is very definitely
the preferend API.
Eric
next prev parent reply other threads:[~2009-05-15 23:26 UTC|newest]
Thread overview: 73+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-12 23:27 [GIT PULL] xen /proc/mtrr implementation Jeremy Fitzhardinge
2009-05-12 23:27 ` [PATCH 1/6] xen: set cpu_callout_mask to make mtrr work Jeremy Fitzhardinge
2009-05-12 23:27 ` [PATCH 2/6] xen mtrr: Use specific cpu_has_foo macros instead of generic cpu_has() Jeremy Fitzhardinge
2009-05-12 23:27 ` [PATCH 3/6] xen mtrr: Use generic_validate_add_page() Jeremy Fitzhardinge
2009-05-12 23:27 ` [PATCH 4/6] xen mtrr: Implement xen_get_free_region() Jeremy Fitzhardinge
2009-05-12 23:27 ` [PATCH 5/6] xen mtrr: Add xen_{get,set}_mtrr() implementations Jeremy Fitzhardinge
2009-05-12 23:27 ` [PATCH 6/6] xen mtrr: Kill some unnecessary includes Jeremy Fitzhardinge
2009-05-13 13:30 ` [GIT PULL] xen /proc/mtrr implementation Ingo Molnar
2009-05-13 13:30 ` Ingo Molnar
2009-05-13 14:39 ` Jeremy Fitzhardinge
2009-05-13 14:39 ` Jeremy Fitzhardinge
2009-05-15 18:27 ` Ingo Molnar
2009-05-15 18:27 ` Ingo Molnar
2009-05-15 20:09 ` Jeremy Fitzhardinge
2009-05-15 20:09 ` Jeremy Fitzhardinge
2009-05-15 23:26 ` Eric W. Biederman [this message]
2009-05-15 23:49 ` Jeremy Fitzhardinge
2009-05-15 23:49 ` Jeremy Fitzhardinge
2009-05-16 3:22 ` Jesse Barnes
2009-05-16 3:22 ` Jesse Barnes
2009-05-16 4:26 ` Eric W. Biederman
2009-05-16 18:22 ` Jesse Barnes
2009-05-16 18:22 ` Jesse Barnes
2009-05-18 5:02 ` Jeremy Fitzhardinge
2009-05-18 5:02 ` Jeremy Fitzhardinge
2009-05-18 4:57 ` Jeremy Fitzhardinge
2009-05-18 4:57 ` Jeremy Fitzhardinge
2009-05-18 8:59 ` Ingo Molnar
2009-05-18 8:59 ` Ingo Molnar
2009-05-18 13:17 ` [Xen-devel] " Jan Beulich
2009-05-18 17:51 ` Chris Wright
2009-05-18 18:07 ` Jeremy Fitzhardinge
2009-05-18 18:07 ` Jeremy Fitzhardinge
2009-05-19 9:59 ` Ingo Molnar
2009-05-19 9:59 ` Ingo Molnar
2009-05-19 10:22 ` [Xen-devel] " Jan Beulich
2009-05-19 10:22 ` Jan Beulich
2009-05-19 11:08 ` [Xen-devel] " Ingo Molnar
2009-05-19 11:08 ` Ingo Molnar
2009-05-19 12:04 ` [Xen-devel] " Gerd Hoffmann
2009-05-19 12:04 ` Gerd Hoffmann
2009-05-19 12:26 ` [Xen-devel] " Ingo Molnar
2009-05-19 12:26 ` Ingo Molnar
2009-05-19 12:32 ` [Xen-devel] " Alan Cox
2009-05-19 12:32 ` Alan Cox
2009-05-19 12:37 ` [Xen-devel] " Ingo Molnar
2009-05-19 12:37 ` Ingo Molnar
2009-05-19 13:21 ` [Xen-devel] " Gerd Hoffmann
2009-05-19 13:21 ` Gerd Hoffmann
2009-05-19 13:31 ` [Xen-devel] " Ingo Molnar
2009-05-19 13:31 ` Ingo Molnar
2009-05-19 13:51 ` [Xen-devel] " Gerd Hoffmann
2009-05-19 13:51 ` Gerd Hoffmann
2009-05-19 14:17 ` [Xen-devel] " Ingo Molnar
2009-05-19 14:17 ` Ingo Molnar
2009-05-19 14:55 ` [Xen-devel] " Gerd Hoffmann
2009-05-19 14:55 ` Gerd Hoffmann
2009-05-19 15:24 ` [Xen-devel] " Ingo Molnar
2009-05-19 15:24 ` Ingo Molnar
2009-05-20 8:01 ` [Xen-devel] " Gerd Hoffmann
2009-05-20 8:01 ` Gerd Hoffmann
2009-05-20 16:35 ` [Xen-devel] " Jeremy Fitzhardinge
2009-05-20 16:35 ` Jeremy Fitzhardinge
2009-05-20 16:12 ` Jeremy Fitzhardinge
2009-05-20 16:12 ` Jeremy Fitzhardinge
2009-05-20 8:16 ` Andi Kleen
2009-05-20 16:39 ` Jeremy Fitzhardinge
2009-05-20 16:39 ` Jeremy Fitzhardinge
2009-05-20 22:52 ` Andi Kleen
2009-05-20 22:49 ` Jeremy Fitzhardinge
2009-05-20 22:49 ` Jeremy Fitzhardinge
2009-05-20 23:03 ` H. Peter Anvin
2009-05-20 23:03 ` H. Peter Anvin
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=m1my9ex818.fsf@fess.ebiederm.org \
--to=ebiederm@xmission.com \
--cc=jeremy@goop.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--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 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.