From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [PATCH][v2 3/3] VMX: x86: Only reset MMU when necessary Date: Wed, 12 May 2010 11:47:36 +0300 Message-ID: <4BEA6B28.9060404@redhat.com> References: <1273653642-23132-1-git-send-email-sheng@linux.intel.com> <1273653642-23132-4-git-send-email-sheng@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Cc: Marcelo Tosatti , kvm@vger.kernel.org To: Sheng Yang Return-path: Received: from mx1.redhat.com ([209.132.183.28]:20210 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755120Ab0ELIrk (ORCPT ); Wed, 12 May 2010 04:47:40 -0400 In-Reply-To: <1273653642-23132-4-git-send-email-sheng@linux.intel.com> Sender: kvm-owner@vger.kernel.org List-ID: On 05/12/2010 11:40 AM, Sheng Yang wrote: > Only modifying some bits of CR0/CR4 needs paging mode switch. > > Modify EFER.NXE bit would result in reserved bit updates. > > Signed-off-by: Sheng Yang > --- > arch/x86/kvm/x86.c | 16 ++++++++++++++-- > 1 files changed, 14 insertions(+), 2 deletions(-) > > diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c > index 764f89b..f442da2 100644 > --- a/arch/x86/kvm/x86.c > +++ b/arch/x86/kvm/x86.c > @@ -416,6 +416,10 @@ out: > > static int __kvm_set_cr0(struct kvm_vcpu *vcpu, unsigned long cr0) > { > + unsigned long old_cr0 = kvm_read_cr0(vcpu); > + unsigned long update_bits = X86_CR0_PG | X86_CR0_WP | > + X86_CR0_CD | X86_CR0_NW; > + > CR0_WP... -- Do not meddle in the internals of kernels, for they are subtle and quick to panic.