Re: [PATCH] i386: improve double fault handling

From: H. Peter Anvin
Date: Thu Jul 24 2008 - 09:25:18 EST


Jan Beulich wrote:
Joerg Roedel <joro@xxxxxxxxxx> 23.07.08 23:43 >>>
On Fri, Jul 18, 2008 at 01:30:42PM +0100, Jan Beulich wrote:
Make the double fault handler use CPU-specific stacks. Add some
abstraction to simplify future change of other exception handlers to go
through task gates.
What is the benefit of exception handlers going through task gates?
Hardware task switches are not very well supported in virtualization
(e.g. its has issues in KVM and is also not in Xen for a long time).

The main goal is to get to a different stack. While at present this is done
only for the double fault, I think generally NMI and MCE should also do
so, as they may be caused by a stack access (see x86-64, which runs
them on IST stacks), and hence continuing to run on that same stack
may not allow the exception to be handled.

NMI, MCE and #DF are the obvious candidates.

Now, keep in mind TSSes have to be prepared per-CPU, since they get marked "busy" when in use, so it's a bit of a nontrivial undertaking.

-hpa

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/