Subject: Re: [v3 PATCH 1/1] booke/kprobe: make program exception to use one dedicated exception stack

From: Benjamin Herrenschmidt <[email-masked]>
Date: Tue, 30 Aug 2011 15:44:24 +1000

> > As I understand it, the problem comes from the fact that stwu combines the
> > creation of a stack frame with storing into that stack frame.  If they were
> 
> Yes.
> 
> > separate instructions you'd have a new exception frame at a lower address
> > by the time you actually store to the non-exception frame.
> 
> So when kprobe we should use a unique stack frame to skip that stack frame the
> kprobed stwu want to create.

I still don't like that patch. Potentially the problem exist for all
variants of powerpc, not just booke, and I'm not sure I like adding yet
another exception stack.

Another (non-great) approach would be to special case stwu to the stack,
and instead of doing the store while emulating the instruction, keep the
store address around and do it later, after the stack has been unwound,
in the exit path (a TIF flag to hit the slow path and then do it in the
slow path).

It sounds hackish but it makes it easier to fix everybody at once, there
are "issues" with changing stacks especially on ppc64 and it would
definitely be affected as well if the stack frame created is larger than
our gap.

Cheers,
Ben.