Paolo, Do you have time to take a look at this one? On Thu, Sep 27, 2018 at 08:31:26AM +0800, Wei Yang wrote: >* nr_mmu_pages would be non-zero only if kvm->arch.n_requested_mmu_pages is > non-zero. > >* nr_mmu_pages is always non-zero, since kvm_mmu_calculate_mmu_pages() > never return zero. > >Based on these two reasons, we can merge the two *if* clause and use the >return value from kvm_mmu_calculate_mmu_pages() directly. This simplify >the code and also eliminate the possibility for reader to believe >nr_mmu_pages would be zero. > >Signed-off-by: Wei Yang <richard.weiyang@xxxxxxxxx> >Reviewed-by: Sean Christopherson <sean.j.christopherson@xxxxxxxxx> > >--- >v2: refactor changelog and rename kvm_mmu_calculate_mmu_pages() based on >Sean Christopherson comment. >--- > arch/x86/include/asm/kvm_host.h | 2 +- > arch/x86/kvm/mmu.c | 2 +- > arch/x86/kvm/x86.c | 8 ++------ > 3 files changed, 4 insertions(+), 8 deletions(-) > >diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h >index c5e7bb811b1e..036dede47274 100644 >--- a/arch/x86/include/asm/kvm_host.h >+++ b/arch/x86/include/asm/kvm_host.h >@@ -1190,7 +1190,7 @@ void kvm_mmu_clear_dirty_pt_masked(struct kvm *kvm, > gfn_t gfn_offset, unsigned long mask); > void kvm_mmu_zap_all(struct kvm *kvm); > void kvm_mmu_invalidate_mmio_sptes(struct kvm *kvm, struct kvm_memslots *slots); >-unsigned int kvm_mmu_calculate_mmu_pages(struct kvm *kvm); >+unsigned int kvm_mmu_calculate_default_mmu_pages(struct kvm *kvm); > void kvm_mmu_change_mmu_pages(struct kvm *kvm, unsigned int kvm_nr_mmu_pages); > > int load_pdptrs(struct kvm_vcpu *vcpu, struct kvm_mmu *mmu, unsigned long cr3); >diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c >index 9fa77aa24fc7..80629f5377c3 100644 >--- a/arch/x86/kvm/mmu.c >+++ b/arch/x86/kvm/mmu.c >@@ -5893,7 +5893,7 @@ int kvm_mmu_module_init(void) > /* > * Calculate mmu pages needed for kvm. > */ >-unsigned int kvm_mmu_calculate_mmu_pages(struct kvm *kvm) >+unsigned int kvm_mmu_calculate_default_mmu_pages(struct kvm *kvm) > { > unsigned int nr_mmu_pages; > unsigned int nr_pages = 0; >diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c >index 8614199d733b..bed566fd4ee5 100644 >--- a/arch/x86/kvm/x86.c >+++ b/arch/x86/kvm/x86.c >@@ -9131,13 +9131,9 @@ void kvm_arch_commit_memory_region(struct kvm *kvm, > const struct kvm_memory_slot *new, > enum kvm_mr_change change) > { >- int nr_mmu_pages = 0; >- > if (!kvm->arch.n_requested_mmu_pages) >- nr_mmu_pages = kvm_mmu_calculate_mmu_pages(kvm); >- >- if (nr_mmu_pages) >- kvm_mmu_change_mmu_pages(kvm, nr_mmu_pages); >+ kvm_mmu_change_mmu_pages(kvm, >+ kvm_mmu_calculate_default_mmu_pages(kvm)); > > /* > * Dirty logging tracks sptes in 4k granularity, meaning that large >-- >2.15.1 -- Wei Yang Help you, Help me