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 _______________________________________________ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel