|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] Re: [PATCH] avoid gp fault vmexits
On 6 May 2006, at 03:01, Kamble, Nitin A wrote:
Hi Keir, Ian,
The current Xen code for VMX is setting the gp fault vmexiting in
the EXCEPTION_BITMAP vmcs control. There is no need for that as VMM is
just plainly re-injecting back to the guest. The attached is a simple
patch to set the vmcs control properly.
This is a nice way round the 'int 0xff' vm86 problem. With this patch
in place, might we be better to crash the guest if we see a valid
IDT_VECTORING_INFO_FIELD *and* vector_injected? Unlike #GP I can't
really see how a valid guest is going to end up triggering a
guest-visible #PG off of an interrupt/exception delivery (and I expect
#DB/#BP/#NM are all impossible). Also, the current logic will lose
ExtIRQs which would be a harder problem to track down than an explicit
domain_crash().
Perhaps, given that this check would get pushed inside the 'rare path'
of seeing a valid IDT_VECTORING_INFO_FIELD, we could get rid of the
vector_injected software flag and simply check VM_ENTRY_INTR_INFO_FIELD
directly? Something like:
__vmread(IDT_VECTORING_INFO_FIELD, &idtv_info_field);
if (idtv_info_field & INTR_INFO_VALID_MASK) {
__vmread(VM_ENTRY_INTR_INFO_FIELD, &vmentry_intr_info_field);
if (vmentry_intr_info_field & INTR_INFO_VALID_MASK)
domain_crash_synchronous(); /* guest fault occurred during
event injection */
....
-- Keir
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|