Re: [PATCH 3/3] kvm mmu: alloc shadow pages with __GFP_ZERO

Avi Kivity
2009-02-18T13:46:46Z

Joerg Roedel wrote:
> Not using __GFP_ZERO when allocating shadow pages triggers the
> assertion in the kvm_mmu_alloc_page() when MMU debugging is enabled.
>
> Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
> ---
> arch/x86/kvm/mmu.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
> index c90b4b2..d93ecec 100644
> --- a/arch/x86/kvm/mmu.c
> +++ b/arch/x86/kvm/mmu.c
> @@ -301,7 +301,7 @@ static int mmu_topup_memory_cache_page(struct kvm_mmu_memory_cache *cache,
> if (cache->nobjs >= min)
> return 0;
> while (cache->nobjs < ARRAY_SIZE(cache->objects)) {
> - page = alloc_page(GFP_KERNEL);
> + page = alloc_page(GFP_KERNEL | __GFP_ZERO);
> if (!page)
> return -ENOMEM;
> set_page_private(page, 0);
>

What is the warning?

Adding __GFP_ZERO here will cause us to clear the page twice, which is
wasteful.

--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.