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.
--
error compiling committee.c: too many arguments to function
--
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