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

Avi Kivity
2009-02-18T14:03:07Z

Joerg Roedel wrote:
> The assertion which the attached patch removes fails sometimes. Removing
> this assertion is the alternative solution to this problem ;-)
>
> From ca45f3a2e45cd7e76ca624bb1098329db8ff83ab Mon Sep 17 00:00:00 2001
> From: Joerg Roedel <joerg.roedel@amd.com>
> Date: Wed, 18 Feb 2009 14:51:13 +0100
> Subject: [PATCH] kvm mmu: remove assertion in kvm_mmu_alloc_page
>
> Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
> ---
> arch/x86/kvm/mmu.c | 1 -
> 1 files changed, 0 insertions(+), 1 deletions(-)
>
> diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
> index d93ecec..b226973 100644
> --- a/arch/x86/kvm/mmu.c
> +++ b/arch/x86/kvm/mmu.c
> @@ -802,7 +802,6 @@ static struct kvm_mmu_page *kvm_mmu_alloc_page(struct kvm_vcpu *vcpu,
> set_page_private(virt_to_page(sp->spt), (unsigned long)sp);
> list_add(&sp->link, &vcpu->kvm->arch.active_mmu_pages);
> INIT_LIST_HEAD(&sp->oos_link);
> - ASSERT(is_empty_shadow_page(sp->spt));
> bitmap_zero(sp->slot_bitmap, KVM_MEMORY_SLOTS + KVM_PRIVATE_MEM_SLOTS);
> sp->multimapped = 0;
> sp->parent_pte = parent_pte;
>

sp->spt is allocated using mmu_memory_cache_alloc(), which zeros the
page. How can the assertion fail?

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