[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
>>> On 30.05.12 at 15:10, Andre Przywara <andre.przywara@xxxxxxx> wrote: > Because we are behind a family check before tweaking the topology > bit, we can use the standard rd/wrmsr variants for the CPUID feature > register. > This fixes a crash when using the kernel as a Xen Dom0 on affected > Trinity systems. The wrmsrl_amd_safe is not properly paravirtualized > yet (this will be fixed in another patch). I'm not following: If the AMD variants (putting a special value into %edi) can be freely replaced by the non-AMD variants, why did the AMD special ones get used in the first place? Further, I can't see how checking_wrmsrl() is being paravirtualized any better than wrmsrl_amd_safe() - both have nothing but an exception handling fixup attached to the wrmsr invocation. Care to point out what actual crash it is that was seen? Finally, I would question whether re-enabling the topology extensions under Xen shouldn't be skipped altogether, perhaps even on Dom0 (as the hypervisor is controlling this MSR, but in any case on DomU - the hypervisor won't allow (read: ignore, not fault on) the write anyway (and will log a message for each (v)CPU that attempts this). Jan > Signed-off-by: Andre Przywara <andre.przywara@xxxxxxx> > Cc: stable@xxxxxxxxxxxxxxx # 3.4+ > --- > arch/x86/kernel/cpu/amd.c | 4 ++-- > 1 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c > index 146bb62..80ccd99 100644 > --- a/arch/x86/kernel/cpu/amd.c > +++ b/arch/x86/kernel/cpu/amd.c > @@ -586,9 +586,9 @@ static void __cpuinit init_amd(struct cpuinfo_x86 *c) > !cpu_has(c, X86_FEATURE_TOPOEXT)) { > u64 val; > > - if (!rdmsrl_amd_safe(0xc0011005, &val)) { > + if (!rdmsrl_safe(0xc0011005, &val)) { > val |= 1ULL << 54; > - wrmsrl_amd_safe(0xc0011005, val); > + checking_wrmsrl(0xc0011005, val); > rdmsrl(0xc0011005, val); > if (val & (1ULL << 54)) { > set_cpu_cap(c, X86_FEATURE_TOPOEXT); _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |