On Thu, Oct 08, 2009 at 06:25:30PM +0200, Avi Kivity wrote: > On 10/08/2009 06:22 PM, Joerg Roedel wrote: > >On Thu, Oct 08, 2009 at 06:12:28PM +0200, Avi Kivity wrote: > >>On 10/08/2009 12:03 PM, Joerg Roedel wrote: > >>>From: Alexander Graf<ag...@suse.de> > >>> > >>>If event_inj is valid on a #vmexit the host CPU would write > >>>the contents to exit_int_info, so the hypervisor knows that > >>>the event wasn't injected. > >>> > >>>We don't do this in nested SVM by now which is a bug and > >>>fixed by this patch. > >>We need to start thinking about regression tests for these bugs. It > >>would be relatively easy to set up something with save->cr3 == cr3 > >>(i.e. no isolation, mmu virtualization, etc.). > >Should be doable with a in-kernel regression test-suite module, I think. > >Triggering such (race-condition like) test cases from userspace is > >somewhat hard. > > > > Isn't it sufficient, for this case, to inject a nested interrupt > when the nested idt is not mapped?
No. The L1 guest needs to execute VMRUN with an interrupt to inject to the L2 guest with event_inj. On that VMRUN instruction emulation an interrupt becomes pending which causes an immediate #vmexit from L2 to L2 again without even entering the L2 guest. The bug was that in this case the event which the L1 tried to inject in the L2 was lost because it was not copied to exit_int_info. Joerg -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html