All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marcelo Tosatti <mtosatti@redhat.com>
To: John Rousseau <jrrousseau@gmail.com>
Cc: Avi Kivity <avi@redhat.com>, kvm-devel <kvm@vger.kernel.org>
Subject: Re: KVM: MMU: avoid creation of unreachable pages in the shadow
Date: Tue, 25 Nov 2008 16:54:28 +0100	[thread overview]
Message-ID: <20081125155428.GA17250@dmt.cnet> (raw)
In-Reply-To: <492C438F.70203@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 975 bytes --]

On Tue, Nov 25, 2008 at 01:27:27PM -0500, John Rousseau wrote:
> Marcelo Tosatti wrote:
>> It is possible for a shadow page to have a parent link
>> pointing to a freed page. When zapping a high level table,
>> kvm_mmu_page_unlink_children fails to remove the parent_pte link.
>> For that to happen, the child must be unreachable via the shadow tree, 
>> which can happen in shadow_walk_entry if the guest pte was
>> modified in between walk() and fetch(). Remove the parent pte  
>> reference in such case.
>>
>> Possible cause for oops in bug #2217430.
>
> I'll apply this to the code that I'm testing, but with my change to  
> 2.6.27, kvm-79 and Avi's patch from bug #2217430, I haven't seen the  
> problem again. I still have been testing with oos_shadow=0, which I'll  
> get rid of now.

John, 

Please use the attached patch in addition (and drop Avi's). What
is the application set you use to reproduce these issues (that you
mentioned in the bugtrack) ?

Thanks



[-- Attachment #2: kvm-mmu-self-ref-pte.patch --]
[-- Type: text/plain, Size: 503 bytes --]

diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
index 0813a08..8904e8a 100644
--- a/arch/x86/kvm/mmu.c
+++ b/arch/x86/kvm/mmu.c
@@ -1046,13 +1046,13 @@ static int kvm_sync_page(struct kvm_vcpu *vcpu, struct kvm_mmu_page *sp)
 	}
 
 	rmap_write_protect(vcpu->kvm, sp->gfn);
+	kvm_unlink_unsync_page(vcpu->kvm, sp);
 	if (vcpu->arch.mmu.sync_page(vcpu, sp)) {
 		kvm_mmu_zap_page(vcpu->kvm, sp);
 		return 1;
 	}
 
 	kvm_mmu_flush_tlb(vcpu);
-	kvm_unlink_unsync_page(vcpu->kvm, sp);
 	return 0;
 }
 

  reply	other threads:[~2008-11-25 18:56 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-11-25 14:33 KVM: MMU: avoid creation of unreachable pages in the shadow Marcelo Tosatti
2008-11-25 18:27 ` John Rousseau
2008-11-25 15:54   ` Marcelo Tosatti [this message]
2008-11-25 19:01     ` John Rousseau
2008-11-29  4:15     ` John Rousseau

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20081125155428.GA17250@dmt.cnet \
    --to=mtosatti@redhat.com \
    --cc=avi@redhat.com \
    --cc=jrrousseau@gmail.com \
    --cc=kvm@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.