Re: [PATCH v2 4/4] uprobes/powerpc: Make use of generic routinesto enable single step

From: Oleg Nesterov
Date: Tue Dec 18 2012 - 14:13:56 EST


On 12/18, Ananth N Mavinakayanahalli wrote:
>
> On Fri, Dec 14, 2012 at 09:02:41PM +0100, Oleg Nesterov wrote:
> > >
> > > - uprobe_restore_context_sstep(&utask->autask);
> > > + uprobe_restore_context_sstep(&utask->autask, regs);
> >
> > I am not sure ppc needs this, but note that x86 does a bit more.
> >
> > Not only we need to restore the "single-step" state, we need to
> > send SIGTRAP if it was not set by us. The same for _skip_sstep.
>
> Do you mean restoring the TF equivalent on powerpc to what it was before?
>
> If so, powerpc has always been unique in this aspect -- the single-step
> exception handler *always* resets the sstep bit in MSR. Any user needing
> to continue single-stepping has to explicitly set it again.

I meant another thing.

Suppose that, say, gdb tries to single-step over the probed insn.
In this case we need to send SIGTRAP after xol/emulate. Please look at
send_sig(SIGTRAP) in arch/x86/kernel/uprobes.c:arch_uprobe_post_xol()
and arch_uprobe_skip_sstep().

Oleg.

--
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/