Messages in this thread | | | Subject | Re: [PATCH 2/2] KVM: x86: Account a variety of miscellaneous allocations | From | Paolo Bonzini <> | Date | Wed, 31 Mar 2021 11:39:34 +0200 |
| |
On 31/03/21 04:30, Sean Christopherson wrote: > Switch to GFP_KERNEL_ACCOUNT for a handful of allocations that are > clearly associated with a single task/VM. > > Note, there are a several SEV allocations that aren't accounted, but > those can (hopefully) be fixed by using the local stack for memory. > > Signed-off-by: Sean Christopherson <seanjc@google.com> > --- > arch/x86/kvm/svm/nested.c | 4 ++-- > arch/x86/kvm/svm/sev.c | 6 +++--- > arch/x86/kvm/vmx/vmx.c | 2 +- > 3 files changed, 6 insertions(+), 6 deletions(-) > > diff --git a/arch/x86/kvm/svm/nested.c b/arch/x86/kvm/svm/nested.c > index 8523f60adb92..4f9e8b80ef99 100644 > --- a/arch/x86/kvm/svm/nested.c > +++ b/arch/x86/kvm/svm/nested.c > @@ -1234,8 +1234,8 @@ static int svm_set_nested_state(struct kvm_vcpu *vcpu, > return -EINVAL; > > ret = -ENOMEM; > - ctl = kzalloc(sizeof(*ctl), GFP_KERNEL); > - save = kzalloc(sizeof(*save), GFP_KERNEL); > + ctl = kzalloc(sizeof(*ctl), GFP_KERNEL_ACCOUNT); > + save = kzalloc(sizeof(*save), GFP_KERNEL_ACCOUNT); > if (!ctl || !save) > goto out_free; > > diff --git a/arch/x86/kvm/svm/sev.c b/arch/x86/kvm/svm/sev.c > index 83e00e524513..883ce6bf23b9 100644 > --- a/arch/x86/kvm/svm/sev.c > +++ b/arch/x86/kvm/svm/sev.c > @@ -637,7 +637,7 @@ static int sev_launch_measure(struct kvm *kvm, struct kvm_sev_cmd *argp) > } > > ret = -ENOMEM; > - blob = kmalloc(params.len, GFP_KERNEL); > + blob = kmalloc(params.len, GFP_KERNEL_ACCOUNT); > if (!blob) > goto e_free; > > @@ -1074,7 +1074,7 @@ static int sev_get_attestation_report(struct kvm *kvm, struct kvm_sev_cmd *argp) > } > > ret = -ENOMEM; > - blob = kmalloc(params.len, GFP_KERNEL); > + blob = kmalloc(params.len, GFP_KERNEL_ACCOUNT); > if (!blob) > goto e_free; > > @@ -1775,7 +1775,7 @@ static bool setup_vmgexit_scratch(struct vcpu_svm *svm, bool sync, u64 len) > len, GHCB_SCRATCH_AREA_LIMIT); > return false; > } > - scratch_va = kzalloc(len, GFP_KERNEL); > + scratch_va = kzalloc(len, GFP_KERNEL_ACCOUNT); > if (!scratch_va) > return false; > > diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c > index c8a4a548e96b..5ab25376d718 100644 > --- a/arch/x86/kvm/vmx/vmx.c > +++ b/arch/x86/kvm/vmx/vmx.c > @@ -562,7 +562,7 @@ static int hv_enable_direct_tlbflush(struct kvm_vcpu *vcpu) > * evmcs in singe VM shares same assist page. > */ > if (!*p_hv_pa_pg) > - *p_hv_pa_pg = kzalloc(PAGE_SIZE, GFP_KERNEL); > + *p_hv_pa_pg = kzalloc(PAGE_SIZE, GFP_KERNEL_ACCOUNT); > > if (!*p_hv_pa_pg) > return -ENOMEM; >
Queued, thanks.
Paolo
| |