Re: [PATCH 22/24] Correct handling of idt vectoring info

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Sep 26, 2010 at 05:14:37PM +0200, Avi Kivity wrote:
>  On 09/23/2010 01:15 AM, Nadav Har'El wrote:
> >On Mon, Sep 20, 2010, Avi Kivity wrote about "Re: [PATCH 22/24] Correct handling of idt vectoring info":
> >>  >I'm afraid I know very little about the SVM architecture. Does SVM even
> >>  >have
> >>  >a parallel of the IDT_VECTORING_INFO that this patch is trying to address?
> >>
> >>  It does. exit_int_info.
> >
> >Thanks. I guess I need to do some serious reading on this subject. I guessed
> >that exit_int_info was more of a parallel of VMX's vm_exit_intr_info field and
> >not idt_vectoring_info, but I guess I was wrong.
> 
> svm has separate intercepts for every exception, so it doesn't need
> the vector field of vm_exit_intr_info_field.  The error code is
> stored in exit_info_1, cr2 (for #PF) in exit_info_2.
> 
> >>  >I agree that the nested SVM's handle_exit() looks cleaner that the parallel
> >>  >code in nested VMX. The root of all evil is that second exit decision point
> >>  >in the injection phase, and I'll think some more if I can find a way to
> >>  >avoid it without rocking the foundations too much.
> >>  >
> >>
> >>  I think svm needs it too.
> >
> >Can you please clarify? I didn't understand what "it" refers to here.
> >
> >
> 
> Sorry, it was a week ago.
> 
> In general I think both svm and vmx need to go through the
> exception/interrupt queues.  That is, if you exit with
> IDT_VECTORING_INFO_VALID, you unpack it into the queue as a pending
> exception, and when you enter again you load it into
> VM_ENTRY_INTR_INFO_FIELD.  That's a bit of work, but it reduces the
> amount of code paths when L0 needs to inject an exception into L2
> (like in emulation) - all it has to do is to queue it into the
> generic exception queue.
> 
And if L0 needs to reinject event directly into L2 it just uses regular
L0 code path instead of ah-hoc nested_handle_valid_idt_vectoring_info()
function.

--
			Gleb.
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux