From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: KVM 12 and BUG with preempt kernel Date: Wed, 24 Jan 2007 15:24:41 +0200 Message-ID: <45B75E19.7070803@qumranet.com> References: <195c7a900701231506x15370e6epfc2220bc7f809e07@mail.gmail.com> <45B72AC3.5050201@qumranet.com> <195c7a900701240247h3f478462w6f0d0c565550c480@mail.gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org To: roucaries bastien Return-path: In-Reply-To: <195c7a900701240247h3f478462w6f0d0c565550c480-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org Errors-To: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org List-Id: kvm.vger.kernel.org roucaries bastien wrote: > > It seems yes (10 boots). Good. I'll commit the patch. > Nethertheless I think it is time to report > another bug (present without this patch therefore unrelated). > Unfortunatly I have no trace because it crash my machine and I do not > manage to find it. > > If I booot my debian guest with framebuffer activated after 20s to 15 > minutes I see on my host screen a cloud of colorfull pixel. These > pixel flash and seems related to guest frame buffer (same colors > scheme but because it not the same resolution I can't read it). About > 3s latter my box crash and is dead (cap lock does not even toggles the > keyboard led). Therefore it seems that the guest achieve to write the > host memory :-(, the good point is that he does not poke to my hard > drive registers. > > This behavior is 100% reproductible. If I run the host and I switch to > the text console I can't even get a trace because the screen is > corrupted. You can start the guest in vnc mode (-vnc 1), so the host can remain in text mode, or use netconsole. Alternatively, please post exact instructions for reproducing. >> Index: paging_tmpl.h >> =================================================================== >> --- paging_tmpl.h (revision 4320) >> +++ paging_tmpl.h (working copy) >> @@ -443,31 +443,17 @@ >> static gpa_t FNAME(gva_to_gpa)(struct kvm_vcpu *vcpu, gva_t vaddr) >> { > struct guest_walker walker; > - pt_element_t guest_pte; > - gpa_t gpa; > + gpa_t gpa = UNMAPPED_GVA; > + int r; > > - FNAME(walk_addr)(&walker, vcpu, vaddr, 0, 0, 0); > - guest_pte = *walker.ptep; > - FNAME(release_walker)(&walker); > + r = FNAME(walk_addr)(&walker, vcpu, vaddr, 0, 0, 0); > > - if (!is_present_pte(guest_pte)) > - return UNMAPPED_GVA; > - > - if (walker.level == PT_DIRECTORY_LEVEL) { > - ASSERT((guest_pte & PT_PAGE_SIZE_MASK)); > - ASSERT(PTTYPE == 64 || is_pse(vcpu)); > - > - gpa = (guest_pte & PT_DIR_BASE_ADDR_MASK) | (vaddr & > - (PT_LEVEL_MASK(PT_PAGE_TABLE_LEVEL) | > ~PAGE_MASK)); > - > - if (PTTYPE == 32 && is_cpuid_PSE36()) > - gpa |= (guest_pte & PT32_DIR_PSE36_MASK) << > - (32 - PT32_DIR_PSE36_SHIFT); > - } else { > - gpa = (guest_pte & PT_BASE_ADDR_MASK); > - gpa |= (vaddr & ~PAGE_MASK); > + if (r) { > + gpa = (gpa_t)walker.gfn << PAGE_SHIFT; > + gpa |= vaddr & ~PAGE_MASK; > } > > + FNAME(release_walker)(&walker); > return gpa; > } -- error compiling committee.c: too many arguments to function ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV