[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] AMD extended migration CPU masks: why only on CPU 0?
Tim,The (extended) CPUID mask MSRs are associated with each core. They need to be updated on each core if migration happens across CPUs. Changset 18402 does update the MSRs for each core. But printk() only happens on core 0. If you move printk() statements below wrmsr(), you will see it been called on each core. It is hard to justify which way is better. I attach the patch anyway, in case Keir or you want it for xen-unstable. Signed-off-by: Wei Huang <wei.huang2@xxxxxxx> Best, -Wei Tim Deegan wrote: Hi Travis,In c/s 18402, the CPUID masks are only set once, on CPU 0. Can you explain why this doesn't have to happen on every core, or at least everysocket? The white paper doesn't discuss it.Cheers, Tim. diff -r 83a6621b91bf xen/arch/x86/cpu/amd.c --- a/xen/arch/x86/cpu/amd.c Wed Feb 10 09:20:56 2010 +0000 +++ b/xen/arch/x86/cpu/amd.c Fri Feb 19 14:22:04 2010 -0600 @@ -131,10 +131,6 @@ } status = set_mask; - printk("Writing CPUID feature mask ECX:EDX -> %08Xh:%08Xh\n", - feat_ecx, feat_edx); - printk("Writing CPUID extended feature mask ECX:EDX -> %08Xh:%08Xh\n", - extfeat_ecx, extfeat_edx); setmask: /* FIXME check if processor supports CPUID masking */ @@ -146,6 +142,10 @@ wrmsr_amd(MSR_K8_FEATURE_MASK, feat_edx, feat_ecx); wrmsr_amd(MSR_K8_EXT_FEATURE_MASK, extfeat_edx, extfeat_ecx); } + printk("Writing CPUID feature mask ECX:EDX -> %08Xh:%08Xh\n", + feat_ecx, feat_edx); + printk("Writing CPUID extended feature mask ECX:EDX -> %08Xh:%08Xh\n", + extfeat_ecx, extfeat_edx); } /* _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |