On Wed, Feb 18, 2009 at 01:47:04PM +0000, Avi Kivity wrote: > 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 <[email protected]> > >--- > > 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.
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 <[email protected]> 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 <[email protected]> --- 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; -- 1.5.6.4 -- | Advanced Micro Devices GmbH Operating | Karl-Hammerschmidt-Str. 34, 85609 Dornach bei München System | Research | Geschäftsführer: Jochen Polster, Thomas M. McCoy, Giuliano Meroni Center | Sitz: Dornach, Gemeinde Aschheim, Landkreis München | Registergericht München, HRB Nr. 43632 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
