From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave McCracken Subject: [PATCH xen-unstable] Remove PSE flag from guest CR4 Date: Mon, 14 Sep 2009 12:27:16 -0500 Message-ID: <200909141227.16852.dcm@mccr.org> Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="Boundary-00=_0znrKDXkoVJ9Seo" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Xen Developers List , Keir Fraser Cc: Jeremy Fitzhardinge List-Id: xen-devel@lists.xenproject.org --Boundary-00=_0znrKDXkoVJ9Seo Content-Type: Text/Plain; charset="us-ascii" Content-Transfer-Encoding: 7bit When I originally did the Xen hypervisor hugepage patch I also allowed guests to see the PSE flag in CR4. This has proven to be a mistake. Here is a patch to remove that functionality. All Linux kernels will still allow userspace hugepages without the flag. Dave McCracken --Boundary-00=_0znrKDXkoVJ9Seo Content-Type: text/x-patch; charset="ISO-8859-1"; name="xen-hpage-090914-1.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="xen-hpage-090914-1.patch" --- xen-unstable/./xen/arch/x86/traps.c 2009-09-14 12:15:46.000000000 -0500 +++ xen-hpage/./xen/arch/x86/traps.c 2009-09-14 12:18:42.000000000 -0500 @@ -752,8 +752,7 @@ static void pv_cpuid(struct cpu_user_reg __clear_bit(X86_FEATURE_VME, &d); if ( !cpu_has_apic ) __clear_bit(X86_FEATURE_APIC, &d); - if ( !opt_allow_hugepage ) - __clear_bit(X86_FEATURE_PSE, &d); + __clear_bit(X86_FEATURE_PSE, &d); __clear_bit(X86_FEATURE_PGE, &d); __clear_bit(X86_FEATURE_PSE36, &d); } @@ -2064,12 +2063,9 @@ static int emulate_privileged_op(struct case 4: /* Read CR4 */ /* * Guests can read CR4 to see what features Xen has enabled. We - * therefore lie about PGE as it is unavailable to guests. - * Also disallow PSE if hugepages are not enabled. + * therefore lie about PGE and PSE as they are unavailable to guests. */ - *reg = read_cr4() & ~X86_CR4_PGE; - if ( !opt_allow_hugepage ) - *reg &= ~X86_CR4_PSE; + *reg = read_cr4() & ~(X86_CR4_PGE|X86_CR4_PSE); break; default: --Boundary-00=_0znrKDXkoVJ9Seo Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --Boundary-00=_0znrKDXkoVJ9Seo--