Re: [PATCH -next] KVM: SVM: Remove unnecessary GFP_KERNEL_ACCOUNT in svm_set_nested_state()

From: Huang, Kai
Date: Thu Aug 22 2024 - 20:04:00 EST




On 21/08/2024 11:27 pm, Yongqiang Liu wrote:
The fixed size temporary variables vmcb_control_area and vmcb_save_area
allocated in svm_set_nested_state() are released when the function exits.
Meanwhile, svm_set_nested_state() also have vcpu mutex held to avoid
massive concurrency allocation, so we don't need to set GFP_KERNEL_ACCOUNT.

Hi Sean/Paolo,

Seems more patches are popping up regarding to whether to use _ACCOUNT for temporary memory allocation. Could we have a definitive guide on this?

As you know, one similar patch was merged and now is in upstream:

dd103407ca315 ("KVM: X86: Remove unnecessary GFP_KERNEL_ACCOUNT for temporary variables")

Also see:

https://lore.kernel.org/kvm/20240715101224.90958-1-kai.huang@xxxxxxxxx/T/


Signed-off-by: Yongqiang Liu <liuyongqiang13@xxxxxxxxxx>
---
arch/x86/kvm/svm/nested.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/x86/kvm/svm/nested.c b/arch/x86/kvm/svm/nested.c
index 6f704c1037e5..d5314cb7dff4 100644
--- a/arch/x86/kvm/svm/nested.c
+++ b/arch/x86/kvm/svm/nested.c
@@ -1693,8 +1693,8 @@ static int svm_set_nested_state(struct kvm_vcpu *vcpu,
return -EINVAL;
ret = -ENOMEM;
- ctl = kzalloc(sizeof(*ctl), GFP_KERNEL_ACCOUNT);
- save = kzalloc(sizeof(*save), GFP_KERNEL_ACCOUNT);
+ ctl = kzalloc(sizeof(*ctl), GFP_KERNEL);
+ save = kzalloc(sizeof(*save), GFP_KERNEL);
if (!ctl || !save)
goto out_free;