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

Re: [Xen-devel] [PATCH v3 for-4.9] x86/emul: Poision the stubs with debug traps



>>> On 07.04.17 at 16:00, <andrew.cooper3@xxxxxxxxxx> wrote:
> ...rather than leaving fragments of old instructions in place.  This reduces
> the chances of something going further-wrong (as the debug trap will be 
> caught
> and terminate the guest) in a cascade-failure where we end up executing the
> instruction fragments.
> 
> Before:
>     (XEN) d2v0 exception 6 (ec=0000) in emulation stub (line 6239)
>     (XEN) d2v0 stub: c4 e1 44 77 c3 80 d0 82 ff ff ff d1 90 ec 90
> 
> After:
>     (XEN) d3v0 exception 6 (ec=0000) in emulation stub (line 6239)
>     (XEN) d3v0 stub: c4 e1 44 77 c3 cc cc cc cc cc cc cc cc cc cc
> 
> To make this work, the int3 handler needs to be extended to attempt recovery
> rather than simply returning back to Xen context.  While altering do_int3(),
> leave an obvious sign if an embedded breakpoint has been hit and not dealt
> with by debugging facilities.
> 
>     (XEN) Hit embedded breakpoint at ffff82d0803d01f6 
> [extable.c#stub_selftest+0xda/0xee]
> 
> Extend the selftests to include int3, and add an extra printk indicating the
> start of the recovery selftests, to avoid leaving otherwise-spurious faults
> visible in the log.
> 
>     (XEN) build-id: 55d7e6f420b4f0ce277f776be620f43d7cb8646c
>     (XEN) Running stub recovery selftests...
>     (XEN) traps.c:3466: GPF (0000): ffff82d0bffff041 [ffff82d0bffff041] -> 
> ffff82d08035937a
>     (XEN) traps.c:813: Trap 12: ffff82d0bffff040 [ffff82d0bffff040] -> 
> ffff82d08035937a
>     (XEN) traps.c:1215: Trap 3: ffff82d0bffff041 [ffff82d0bffff041] -> 
> ffff82d08035937a
>     (XEN) ACPI sleep modes: S3
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>

Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

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