From mboxrd@z Thu Jan 1 00:00:00 1970 From: Takuya Yoshikawa Subject: Re: [PATCH 5/5] KVM: MMU: fast invalid all mmio sptes Date: Sat, 16 Mar 2013 11:13:30 +0900 Message-ID: <20130316111330.6e077a421aa580d80dc08641@gmail.com> References: <51433D98.4050605@linux.vnet.ibm.com> <51433E71.2070107@linux.vnet.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: Marcelo Tosatti , Gleb Natapov , LKML , KVM To: Xiao Guangrong Return-path: In-Reply-To: <51433E71.2070107@linux.vnet.ibm.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: kvm.vger.kernel.org On Fri, 15 Mar 2013 23:29:53 +0800 Xiao Guangrong wrote: > +/* > + * The caller should protect concurrent access on > + * kvm->arch.mmio_invalid_gen. Currently, it is used by > + * kvm_arch_commit_memory_region and protected by kvm->slots_lock. > + */ > +void kvm_mmu_invalid_mmio_spte(struct kvm *kvm) kvm_mmu_invalidate_mmio_sptes() may be a better name. Thanks, Takuya > +{ > + /* Ensure update memslot has been completed. */ > + smp_mb(); > + > + trace_kvm_mmu_invalid_mmio_spte(kvm); > + > + /* > + * The very rare case: if the generation-number is round, > + * zap all shadow pages. > + */ > + if (unlikely(kvm->arch.mmio_invalid_gen++ == MAX_GEN)) { > + kvm->arch.mmio_invalid_gen = 0; > + return kvm_mmu_zap_all(kvm); > + } > +} > +