Messages in this thread | ![/](/images/icornerl.gif) | | Date | Mon, 12 Apr 2010 14:22:27 +0300 | From | Avi Kivity <> | Subject | Re: [PATCH 4/6] KVM MMU: optimize for writing cr4 |
| |
On 04/12/2010 01:42 PM, Xiao Guangrong wrote: > 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? >
See 6364a3918cb. It was reverted later due to a problem with the implementation. I'm not sure whether I want to fix the bug and restore that patch, or to drop it altogether and give the guest ownership of cr4.pge. See cr4_guest_owned_bits (currently only used on ept).
> 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? :-( >
You can't read reverted patches? :)
-- I have a truly marvellous patch that fixes the bug which this signature is too narrow to contain.
| ![\](/images/icornerr.gif) |