Re: [PATCH v2] KVM: x86: remove check on nr_mmu_pages in kvm_arch_commit_memory_region()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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>

Paolo,

Do you like this one?

>
>---
>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



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux