From mboxrd@z Thu Jan 1 00:00:00 1970 From: Xiao Guangrong Subject: Re: [PATCH 4/6] KVM MMU: optimize for writing cr4 Date: Mon, 12 Apr 2010 18:42:48 +0800 Message-ID: <4BC2F928.2060407@cn.fujitsu.com> References: <4BC2D2E2.1030604@cn.fujitsu.com> <4BC2D3E0.8070602@cn.fujitsu.com> <4BC2DB27.7060005@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Cc: Marcelo Tosatti , KVM list , LKML To: Avi Kivity Return-path: In-Reply-To: <4BC2DB27.7060005@redhat.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: kvm.vger.kernel.org Hi Avi, Thanks for your comments. Avi Kivity wrote: > Later we have: > >> kvm_x86_ops->set_cr4(vcpu, cr4); >> vcpu->arch.cr4 = cr4; >> vcpu->arch.mmu.base_role.cr4_pge = (cr4 & X86_CR4_PGE) && >> !tdp_enabled; > > All of which depend on cr4. Oh, destroy_kvm_mmu() is not really destroyed cr3 and we can reload it later form shadow page cache, so, maybe this patch is unnecessary. But, i have a another question here, why we need encode 'cr4 & X86_CR4_PGE' into base_role.cr4_gpe? Why we need allocation different shadow page for global page and no-global page? As i know, global page is not static in TLB, and x86 cpu also may flush them form TLB, maybe we no need treat global page specially... Am i miss something? :-( Xiao