[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 1/2] x86/xen: Set EFER.NX and EFER.SCE in PVH guests
>>> On 05.09.14 at 16:46, <david.vrabel@xxxxxxxxxx> wrote: > On 05/09/14 15:34, Jan Beulich wrote: >>>>> On 05.09.14 at 16:11, <david.vrabel@xxxxxxxxxx> wrote: >>> --- a/arch/x86/xen/xen-head.S >>> +++ b/arch/x86/xen/xen-head.S >>> @@ -47,6 +47,36 @@ ENTRY(startup_xen) >>> >>> __FINIT >>> >>> +#ifdef CONFIG_XEN_PVH >>> + >>> +/** >>> + * xen_pvh_cpu_early_init() - early PVH VCPU initialization >>> + * @cpu: this cpu number (%rdi) >>> + * >>> + * Note: This is called as a function on the boot CPU and as the secondary >>> + * CPU entry point. >>> + */ >>> +ENTRY(xen_pvh_cpu_early_init) >>> + /* Gather features to see if NX implemented. */ >>> + mov $0x80000001, %eax >>> + cpuid >>> + mov %edx,%esi >>> + >>> + mov $MSR_EFER, %ecx >>> + rdmsr >>> + bts $_EFER_SCE, %eax >>> + >>> + bt $20,%esi >>> + jnc 1f /* No NX, skip setting it */ >>> + bts $_EFER_NX, %eax >>> +1: wrmsr >>> + >>> + cmp $0,%rdi /* non-zero => secondary cpu */ >> >> Isn't Linux is specifically moving away from this assumption? > > I don't think this is relevant. Is Xen ever going boot with a non-zero > VCPU? That's not the question here. The question is - will CPU 0 ever be possible to be brought down and back up? And I hope the answer to this isn't "No, never". >>> + jne cpu_bringup_and_idle >>> + ret >>> + >>> +#endif /* CONFIG_XEN_PVH */ >> >> Also, does all this really need to be done in assembly? > > There's no usable stack until EFER.NX is set. I couldn't think of a way > to write this in C that would guarantee no stack use, so I didn't > suggest it. > > Can you think of a way? No stack use is a very convincing argument for using assembly? I must have overlooked it if that was said somewhere in a comment. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |