From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: Re: [PATCH 1/2] x86/xen: Set EFER.NX and EFER.SCE in PVH guests Date: Fri, 05 Sep 2014 15:34:40 +0100 Message-ID: <5409E6200200007800031869@mail.emea.novell.com> References: <1409926309-8345-1-git-send-email-david.vrabel@citrix.com> <1409926309-8345-2-git-send-email-david.vrabel@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail6.bemta4.messagelabs.com ([85.158.143.247]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1XPub3-0003cu-OJ for xen-devel@lists.xenproject.org; Fri, 05 Sep 2014 14:34:41 +0000 In-Reply-To: <1409926309-8345-2-git-send-email-david.vrabel@citrix.com> Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: David Vrabel Cc: xen-devel@lists.xenproject.org, Boris Ostrovsky List-Id: xen-devel@lists.xenproject.org >>> On 05.09.14 at 16:11, 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? > + jne cpu_bringup_and_idle > + ret > + > +#endif /* CONFIG_XEN_PVH */ Also, does all this really need to be done in assembly? Jan