[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] x86/amd: fix crash as Xen Dom0 on AMD Trinity systems

> > Now, someone probably needs to paravirt the *safe_regs variants in case
> > something else decides to use them. I don't know what to do here, do I
> > want more paravirt code in there? No. I guess if this is done carefully
> > and cleanly, then it should be ok but it can't be done like that - it
> > needs to adhere to the current pv_cpu_ops thing which is already there.

Using the native variant seems the right thing to do.
> > 
> I thought I was being told that Xen would trap and emulate the
> rdmsr/wrmsr instructions.  I guess they don't want to do that for the

It does.
> handful of performance-sensitive MSRs there are, but those don't use the
> *_regs variants.

The underlaying issue (as I understand) was that .rdmsr_regs
(and the corresponding write) was NULL and that caused the crash.
This tiny patch should do it:

diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index 75f33b2..e74df95 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -1116,7 +1116,10 @@ static const struct pv_cpu_ops xen_cpu_ops __initconst = 
        .wbinvd = native_wbinvd,
        .read_msr = native_read_msr_safe,
+       .rdmsr_regs = native_rdmsr_safe_regs,
        .write_msr = xen_write_msr_safe,
+       .wrmsr_regs = native_wrmsr_safe_regs,
        .read_tsc = native_read_tsc,
        .read_pmc = native_read_pmc,

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.