WARNING - OLD ARCHIVES

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/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] unstable changeset 16667 introduced regression

To: Bruce Rogers <BROGERS@xxxxxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: Re: [Xen-devel] unstable changeset 16667 introduced regression
From: Keir Fraser <Keir.Fraser@xxxxxxxxxxxx>
Date: Tue, 15 Jan 2008 08:24:56 +0000
Delivery-date: Tue, 15 Jan 2008 00:25:21 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <C3B21D95.122BC%Keir.Fraser@xxxxxxxxxxxx>
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/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AchXT6fX5k5vSsNCEdyI+gAWy6hiGQAAHQ5C
Thread-topic: [Xen-devel] unstable changeset 16667 introduced regression
User-agent: Microsoft-Entourage/11.3.6.070618
Oh, you really do mean that the EIP is incremented by 2 bytes rather than 1.
This is explained by the fact that Xen receives a GPF fault, determines this
is due to a software-interrupt/exception attempt by the guest, and
'emulates' the instruction by reflecting the interrupt to the guest and
incrementing EIP across 'INT <n>', which happens to be a two-byte
instruction.

I'll fix this for 3.2.0.

 -- Keir

On 15/1/08 08:21, "Keir Fraser" <Keir.Fraser@xxxxxxxxxxxx> wrote:

> Can you explain the scenario in more detail? Do you mean the EIP has not
> been incremented past the 0xcc opcode? I think the change from
> set_system_gate() to set_intr_gate() in that patch is very dubious, now I
> take another look at it. I should probably at least revert that, as it's
> probably causing guest INT3s to be delivered to Xen as GPFs, with no
> corresponding increment of EIP.
> 
> I can't see how any other change in the patch would affect guest execution
> when gdbstub is not involved as almost all other changes are to gdbstub
> code. And probably you are not building Xen with crash_debug=y?
> 
>  -- Keir
> 
> On 14/1/08 22:57, "Bruce Rogers" <BROGERS@xxxxxxxxxx> wrote:
> 
>> Keir,
>> I've narrowed down a problem we are now seeing with Virtualized NetWare when
>> run on current unstable.
>> It started occurring with changeset 16667, which dealt with debugger changes.
>> When encountering the INT 3 instruction (opcode 0xcc), the EIP value provided
>> in the exception frame is supposed to be at the next instruction following
>> the
>> INT 3 instruction.  With this patch included, the EIP value ends up being one
>> byte further into the instruction stream.
>> 
>> I haven't seen where in this patch the problem is coming from, but will keep
>> looking.
>> 
>> - Bruce
>> 
>> 
>> _______________________________________________
>> Xen-devel mailing list
>> Xen-devel@xxxxxxxxxxxxxxxxxxx
>> http://lists.xensource.com/xen-devel
> 
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel



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

<Prev in Thread] Current Thread [Next in Thread>