2020-09-16 08:37:32

by Haiwei Li

[permalink] [raw]
Subject: [PATCH] KVM: SVM: use __GFP_ZERO instead of clear_page()

From: Haiwei Li <[email protected]>

Use __GFP_ZERO while alloc_page().

Signed-off-by: Haiwei Li <[email protected]>
---
arch/x86/kvm/svm/avic.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/arch/x86/kvm/svm/avic.c b/arch/x86/kvm/svm/avic.c
index ac830cd50830..f73f84d56452 100644
--- a/arch/x86/kvm/svm/avic.c
+++ b/arch/x86/kvm/svm/avic.c
@@ -153,20 +153,18 @@ int avic_vm_init(struct kvm *kvm)
return 0;

/* Allocating physical APIC ID table (4KB) */
- p_page = alloc_page(GFP_KERNEL_ACCOUNT);
+ p_page = alloc_page(GFP_KERNEL_ACCOUNT | __GFP_ZERO);
if (!p_page)
goto free_avic;

kvm_svm->avic_physical_id_table_page = p_page;
- clear_page(page_address(p_page));

/* Allocating logical APIC ID table (4KB) */
- l_page = alloc_page(GFP_KERNEL_ACCOUNT);
+ l_page = alloc_page(GFP_KERNEL_ACCOUNT | __GFP_ZERO);
if (!l_page)
goto free_avic;

kvm_svm->avic_logical_id_table_page = l_page;
- clear_page(page_address(l_page));

spin_lock_irqsave(&svm_vm_data_hash_lock, flags);
again:
--
2.18.4


2020-09-17 09:54:35

by Maxim Levitsky

[permalink] [raw]
Subject: Re: [PATCH] KVM: SVM: use __GFP_ZERO instead of clear_page()

On Wed, 2020-09-16 at 16:36 +0800, [email protected] wrote:
> From: Haiwei Li <[email protected]>
>
> Use __GFP_ZERO while alloc_page().
>
> Signed-off-by: Haiwei Li <[email protected]>
> ---
> arch/x86/kvm/svm/avic.c | 6 ++----
> 1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/arch/x86/kvm/svm/avic.c b/arch/x86/kvm/svm/avic.c
> index ac830cd50830..f73f84d56452 100644
> --- a/arch/x86/kvm/svm/avic.c
> +++ b/arch/x86/kvm/svm/avic.c
> @@ -153,20 +153,18 @@ int avic_vm_init(struct kvm *kvm)
> return 0;
>
> /* Allocating physical APIC ID table (4KB) */
> - p_page = alloc_page(GFP_KERNEL_ACCOUNT);
> + p_page = alloc_page(GFP_KERNEL_ACCOUNT | __GFP_ZERO);
> if (!p_page)
> goto free_avic;
>
> kvm_svm->avic_physical_id_table_page = p_page;
> - clear_page(page_address(p_page));
>
> /* Allocating logical APIC ID table (4KB) */
> - l_page = alloc_page(GFP_KERNEL_ACCOUNT);
> + l_page = alloc_page(GFP_KERNEL_ACCOUNT | __GFP_ZERO);
> if (!l_page)
> goto free_avic;
>
> kvm_svm->avic_logical_id_table_page = l_page;
> - clear_page(page_address(l_page));
>
> spin_lock_irqsave(&svm_vm_data_hash_lock, flags);
> again:
Reviewed-by: Maxim Levitsky <[email protected]>

Best regards,
Maxim Levitsky

2020-09-22 13:31:26

by Paolo Bonzini

[permalink] [raw]
Subject: Re: [PATCH] KVM: SVM: use __GFP_ZERO instead of clear_page()

On 16/09/20 10:36, [email protected] wrote:
> From: Haiwei Li <[email protected]>
>
> Use __GFP_ZERO while alloc_page().
>
> Signed-off-by: Haiwei Li <[email protected]>
> ---
> arch/x86/kvm/svm/avic.c | 6 ++----
> 1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/arch/x86/kvm/svm/avic.c b/arch/x86/kvm/svm/avic.c
> index ac830cd50830..f73f84d56452 100644
> --- a/arch/x86/kvm/svm/avic.c
> +++ b/arch/x86/kvm/svm/avic.c
> @@ -153,20 +153,18 @@ int avic_vm_init(struct kvm *kvm)
> return 0;
>
> /* Allocating physical APIC ID table (4KB) */
> - p_page = alloc_page(GFP_KERNEL_ACCOUNT);
> + p_page = alloc_page(GFP_KERNEL_ACCOUNT | __GFP_ZERO);
> if (!p_page)
> goto free_avic;
>
> kvm_svm->avic_physical_id_table_page = p_page;
> - clear_page(page_address(p_page));
>
> /* Allocating logical APIC ID table (4KB) */
> - l_page = alloc_page(GFP_KERNEL_ACCOUNT);
> + l_page = alloc_page(GFP_KERNEL_ACCOUNT | __GFP_ZERO);
> if (!l_page)
> goto free_avic;
>
> kvm_svm->avic_logical_id_table_page = l_page;
> - clear_page(page_address(l_page));
>
> spin_lock_irqsave(&svm_vm_data_hash_lock, flags);
> again:
>

Queued, thanks.

Paolo