Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752794AbaBCLtY (ORCPT ); Mon, 3 Feb 2014 06:49:24 -0500 Received: from userp1040.oracle.com ([156.151.31.81]:50295 "EHLO userp1040.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750882AbaBCLtW (ORCPT ); Mon, 3 Feb 2014 06:49:22 -0500 Date: Mon, 3 Feb 2014 06:49:14 -0500 From: Konrad Rzeszutek Wilk To: Mukesh Rathor , boris.ostrovsky@oracle.com, david.vrabel@citrix.com Cc: roger.pau@citrix.com, Xen-devel@lists.xensource.com, linux-kernel@vger.kernel.org Subject: Re: [PATCH] pvh: set cr4 flags for APs Message-ID: <20140203114914.GA3350@phenom.dumpdata.com> References: <1391040918-11722-1-git-send-email-mukesh.rathor@oracle.com> <1391040918-11722-2-git-send-email-mukesh.rathor@oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1391040918-11722-2-git-send-email-mukesh.rathor@oracle.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Source-IP: acsinet22.oracle.com [141.146.126.238] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Jan 29, 2014 at 04:15:18PM -0800, Mukesh Rathor wrote: > We need to set cr4 flags for APs that are already set for BSP. The title is missing the 'xen' part. I rewrote it a bit and I think this should go in 3.14. David, Boris: It is not the full fix as there are other parts to make an PVH guest use 2MB or 1GB pages- but this fixes an obvious bug. >From 797ea6812ff0a90cce966a4ff6bad57cbadc43b5 Mon Sep 17 00:00:00 2001 From: Mukesh Rathor Date: Wed, 29 Jan 2014 16:15:18 -0800 Subject: [PATCH] xen/pvh: set CR4 flags for APs The Xen ABI sets said flags for the BSP, but it does not do that for the CR4. As such fix it up to make sure we have that flag set. Signed-off-by: Mukesh Rathor Signed-off-by: Konrad Rzeszutek Wilk --- arch/x86/xen/enlighten.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c index a4d7b64..201d09a 100644 --- a/arch/x86/xen/enlighten.c +++ b/arch/x86/xen/enlighten.c @@ -1473,6 +1473,18 @@ static void xen_pvh_set_cr_flags(int cpu) * X86_CR0_TS, X86_CR0_PE, X86_CR0_ET are set by Xen for HVM guests * (which PVH shared codepaths), while X86_CR0_PG is for PVH. */ write_cr0(read_cr0() | X86_CR0_MP | X86_CR0_NE | X86_CR0_WP | X86_CR0_AM); + + if (!cpu) + return; + /* + * For BSP, PSE PGE are set in probe_page_size_mask(), for APs + * set them here. For all, OSFXSR OSXMMEXCPT are set in fpu_init. + */ + if (cpu_has_pse) + set_in_cr4(X86_CR4_PSE); + + if (cpu_has_pge) + set_in_cr4(X86_CR4_PGE); } /* -- 1.8.3.1 > > Signed-off-by: Mukesh Rathor > --- > arch/x86/xen/enlighten.c | 12 ++++++++++++ > 1 files changed, 12 insertions(+), 0 deletions(-) > > diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c > index a4d7b64..201d09a 100644 > --- a/arch/x86/xen/enlighten.c > +++ b/arch/x86/xen/enlighten.c > @@ -1473,6 +1473,18 @@ static void xen_pvh_set_cr_flags(int cpu) > * X86_CR0_TS, X86_CR0_PE, X86_CR0_ET are set by Xen for HVM guests > * (which PVH shared codepaths), while X86_CR0_PG is for PVH. */ > write_cr0(read_cr0() | X86_CR0_MP | X86_CR0_NE | X86_CR0_WP | X86_CR0_AM); > + > + if (!cpu) > + return; > + /* > + * For BSP, PSE PGE are set in probe_page_size_mask(), for APs > + * set them here. For all, OSFXSR OSXMMEXCPT are set in fpu_init. > + */ > + if (cpu_has_pse) > + set_in_cr4(X86_CR4_PSE); > + > + if (cpu_has_pge) > + set_in_cr4(X86_CR4_PGE); > } > > /* > -- > 1.7.2.3 > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/