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

[Xen-devel] Re: Crash with c/s 20097 (x86 vmx: Update EIP when appropriate during task switch)



On 02/12/2009 11:47, "Tim Deegan" <Tim.Deegan@xxxxxxxxxxxxx> wrote:

> The __get_instruction_length() _isn't_ safe in those cases where we
> later explicitly set inst_len to zero (and possibly in other cases).

Argh, stupid, and probably my mistake. I'll push the
__get_instruction_length() inside the if()s.

>  The cases of VM exits encountered during delivery of a software
>  interrupt, privileged software exception, or software exception include
>  those encountered during delivery of events injected as part of VM
>  entry (see Section 22.5.1.2). If the original event was injected as
>  part of VM entry, this field receives the value of the VM-entry
>  instruction length.
> 
> Does that mean that if we inject a fault and the guest routes it through
> a task switch gate, we'll see the length of VMENTER here?  (And should
> we be advancing EIP in that case anyway?)

Fortunately we never inject software interrupts or exceptions. I reworked
the code to avoid that a long time ago, due to just such concerns. Possibly
we should even ASSERT as such in the event-injection functions.

 -- Keir



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.