This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


[Xen-devel] Re: Crash with c/s 20097 (x86 vmx: Update EIP when appropria

To: Tim Deegan <Tim.Deegan@xxxxxxxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] Re: Crash with c/s 20097 (x86 vmx: Update EIP when appropriate during task switch)
From: Keir Fraser <keir.fraser@xxxxxxxxxxxxx>
Date: Wed, 02 Dec 2009 12:09:48 +0000
Cc: Kouya Shimura <kouya@xxxxxxxxxxxxxx>
Delivery-date: Wed, 02 Dec 2009 04:10:44 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <20091202114738.GJ14284@xxxxxxxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AcpzRUFwr8oanw5hTsWCZXfFrNaQvwAAxZI0
Thread-topic: Crash with c/s 20097 (x86 vmx: Update EIP when appropriate during task switch)
User-agent: Microsoft-Entourage/
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 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