Message ID | 20210427223635.2711774-4-bgardon@google.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Lazily allocate memslot rmaps | expand |
Typo in the commit subject, I guess? Paolo On 28/04/21 00:36, Ben Gardon wrote: > Small code deduplication. No functional change expected. > > Signed-off-by: Ben Gardon <bgardon@google.com> > --- > arch/x86/kvm/x86.c | 19 +++++++++++-------- > 1 file changed, 11 insertions(+), 8 deletions(-) > > diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c > index cf3b67679cf0..5bcf07465c47 100644 > --- a/arch/x86/kvm/x86.c > +++ b/arch/x86/kvm/x86.c > @@ -10818,17 +10818,23 @@ void kvm_arch_destroy_vm(struct kvm *kvm) > kvm_hv_destroy_vm(kvm); > } > > -void kvm_arch_free_memslot(struct kvm *kvm, struct kvm_memory_slot *slot) > +static void free_memslot_rmap(struct kvm_memory_slot *slot) > { > int i; > > for (i = 0; i < KVM_NR_PAGE_SIZES; ++i) { > kvfree(slot->arch.rmap[i]); > slot->arch.rmap[i] = NULL; > + } > +} > > - if (i == 0) > - continue; > +void kvm_arch_free_memslot(struct kvm *kvm, struct kvm_memory_slot *slot) > +{ > + int i; > + > + free_memslot_rmap(slot); > > + for (i = 1; i < KVM_NR_PAGE_SIZES; ++i) { > kvfree(slot->arch.lpage_info[i - 1]); > slot->arch.lpage_info[i - 1] = NULL; > } > @@ -10894,12 +10900,9 @@ static int kvm_alloc_memslot_metadata(struct kvm_memory_slot *slot, > return 0; > > out_free: > - for (i = 0; i < KVM_NR_PAGE_SIZES; ++i) { > - kvfree(slot->arch.rmap[i]); > - slot->arch.rmap[i] = NULL; > - if (i == 0) > - continue; > + free_memslot_rmap(slot); > > + for (i = 1; i < KVM_NR_PAGE_SIZES; ++i) { > kvfree(slot->arch.lpage_info[i - 1]); > slot->arch.lpage_info[i - 1] = NULL; > } >
On Wed, Apr 28, 2021 at 3:00 AM Paolo Bonzini <pbonzini@redhat.com> wrote: > > Typo in the commit subject, I guess? Oh woops, yeah It should just be "Deduplicate rmap freeing" or something to that effect. > > Paolo > > On 28/04/21 00:36, Ben Gardon wrote: > > Small code deduplication. No functional change expected. > > > > Signed-off-by: Ben Gardon <bgardon@google.com> > > --- > > arch/x86/kvm/x86.c | 19 +++++++++++-------- > > 1 file changed, 11 insertions(+), 8 deletions(-) > > > > diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c > > index cf3b67679cf0..5bcf07465c47 100644 > > --- a/arch/x86/kvm/x86.c > > +++ b/arch/x86/kvm/x86.c > > @@ -10818,17 +10818,23 @@ void kvm_arch_destroy_vm(struct kvm *kvm) > > kvm_hv_destroy_vm(kvm); > > } > > > > -void kvm_arch_free_memslot(struct kvm *kvm, struct kvm_memory_slot *slot) > > +static void free_memslot_rmap(struct kvm_memory_slot *slot) > > { > > int i; > > > > for (i = 0; i < KVM_NR_PAGE_SIZES; ++i) { > > kvfree(slot->arch.rmap[i]); > > slot->arch.rmap[i] = NULL; > > + } > > +} > > > > - if (i == 0) > > - continue; > > +void kvm_arch_free_memslot(struct kvm *kvm, struct kvm_memory_slot *slot) > > +{ > > + int i; > > + > > + free_memslot_rmap(slot); > > > > + for (i = 1; i < KVM_NR_PAGE_SIZES; ++i) { > > kvfree(slot->arch.lpage_info[i - 1]); > > slot->arch.lpage_info[i - 1] = NULL; > > } > > @@ -10894,12 +10900,9 @@ static int kvm_alloc_memslot_metadata(struct kvm_memory_slot *slot, > > return 0; > > > > out_free: > > - for (i = 0; i < KVM_NR_PAGE_SIZES; ++i) { > > - kvfree(slot->arch.rmap[i]); > > - slot->arch.rmap[i] = NULL; > > - if (i == 0) > > - continue; > > + free_memslot_rmap(slot); > > > > + for (i = 1; i < KVM_NR_PAGE_SIZES; ++i) { > > kvfree(slot->arch.lpage_info[i - 1]); > > slot->arch.lpage_info[i - 1] = NULL; > > } > > >
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index cf3b67679cf0..5bcf07465c47 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -10818,17 +10818,23 @@ void kvm_arch_destroy_vm(struct kvm *kvm) kvm_hv_destroy_vm(kvm); } -void kvm_arch_free_memslot(struct kvm *kvm, struct kvm_memory_slot *slot) +static void free_memslot_rmap(struct kvm_memory_slot *slot) { int i; for (i = 0; i < KVM_NR_PAGE_SIZES; ++i) { kvfree(slot->arch.rmap[i]); slot->arch.rmap[i] = NULL; + } +} - if (i == 0) - continue; +void kvm_arch_free_memslot(struct kvm *kvm, struct kvm_memory_slot *slot) +{ + int i; + + free_memslot_rmap(slot); + for (i = 1; i < KVM_NR_PAGE_SIZES; ++i) { kvfree(slot->arch.lpage_info[i - 1]); slot->arch.lpage_info[i - 1] = NULL; } @@ -10894,12 +10900,9 @@ static int kvm_alloc_memslot_metadata(struct kvm_memory_slot *slot, return 0; out_free: - for (i = 0; i < KVM_NR_PAGE_SIZES; ++i) { - kvfree(slot->arch.rmap[i]); - slot->arch.rmap[i] = NULL; - if (i == 0) - continue; + free_memslot_rmap(slot); + for (i = 1; i < KVM_NR_PAGE_SIZES; ++i) { kvfree(slot->arch.lpage_info[i - 1]); slot->arch.lpage_info[i - 1] = NULL; }
Small code deduplication. No functional change expected. Signed-off-by: Ben Gardon <bgardon@google.com> --- arch/x86/kvm/x86.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-)