Re: [PATCH 12/12] xen/mtrr: Add mtrr_if support for Xen mtrr

Stefano Stabellini
2010-09-28T17:19:51Z

On Tue, 28 Sep 2010, Jeremy Fitzhardinge wrote:
> On 09/28/2010 07:00 AM, Stefano Stabellini wrote:
> > On Tue, 28 Sep 2010, Ingo Molnar wrote:
> >> * stefano.stabellini@eu.citrix.com <stefano.stabellini@eu.citrix.com> wrote:
> >>
> >>> From: Stephen Tweedie <sct@redhat.com>
> >>>
> >>> Add a Xen mtrr type, and reorganise mtrr initialisation slightly to
> >>> allow the mtrr driver to set up num_var_ranges (Xen needs to do this by
> >>> querying the hypervisor itself.)
> >>>
> >>> [ Impact: add basic MTRR support ]
> >>>
> >>> Signed-off-by: Stephen Tweedie <sct@redhat.com>
> >>> Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
> >>> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
> >>> ---
> >>> arch/x86/kernel/cpu/mtrr/Makefile | 2 +-
> >>> arch/x86/kernel/cpu/mtrr/main.c | 3 +
> >>> arch/x86/kernel/cpu/mtrr/mtrr.h | 7 ++
> >>> arch/x86/kernel/cpu/mtrr/xen.c | 110 +++++++++++++++++++++++++++++++++++++
> >>> 4 files changed, 121 insertions(+), 1 deletions(-)
> >>> create mode 100644 arch/x86/kernel/cpu/mtrr/xen.c
> >> Still NAK, for the very same reasons as we NAK-ed it the previous time:
> >> /proc/mtrr is a problematic and complicated legacy interface that should
> >> die. Any modern X server will do the right thing via PAT.
> >>
> > Sorry I should have read the original thread more carefully: I didn't
> > realize this patch had been NAK-ed.
> >
> > However it is not a problem because we can easily disable MTRRs from Xen
> > and with no cpu_has_mtrr the kernel would still boot fine on Xen.
> > Also I think we do have PAT support nowadays but I'll let Jeremy comment
> > on that.
>
> Yes, we could just mask out the MTRR CPU feature and rely entirely on PAT.
>
> The alternative would be to use the wrmsr hooks to emulate the Intel
> MTRR registers by mapping them to hypercalls, but that seems needlessly
> complex.

Yeah, I have already tested a prototype patch to xen to mask the MTRR
cpu features and everything seems to run fine on my testbox.