[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 3/3] x86/svm: Write the correct %eip into the outgoing task
On 26.11.2019 13:03, Andrew Cooper wrote: > The TASK_SWITCH vmexit has fault semantics, and doesn't provide any NRIPs > assistance with instruction length. As a result, any instruction-induced task > switch has the outgoing task's %eip pointing at the instruction switch caused > the switch, rather than after it. > > This causes callers of task gates to livelock (repeatedly execute the call/jmp > to enter the task), and any restartable task to become a nop after its first > use (the (re)entry state points at the ret/iret used to exit the task). > > 32bit Windows in particular is known to use task gates for NMI handling, and > to use NMI IPIs. > > In the task switch handler, distinguish instruction-induced from > interrupt/exception-induced task switches, and decode the instruction under > %rip to calculate its length. > > Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |