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

From: Ananth N Mavinakayanahalli
Date: Tue Dec 18 2012 - 00:35:57 EST


On Fri, Dec 14, 2012 at 09:02:41PM +0100, Oleg Nesterov wrote:
> On 12/03, Suzuki K. Poulose wrote:
> >
> > Replace the ptrace helpers with the powerpc generic routines to
> > enable/disable single step. We save/restore the MSR (and DCBR for BookE)
> > across for the operation. We don't have to disable the single step,
> > as restoring the MSR/DBCR would restore the previous state.
>
> Obviously I can't review this series (although it looks fine to me).
>
> Just one note,
>
> > @@ -121,7 +132,7 @@ int arch_uprobe_post_xol(struct arch_uprobe *auprobe, struct pt_regs *regs)
> >
> > WARN_ON_ONCE(current->thread.trap_nr != UPROBE_TRAP_NR);
> >
> > - 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.

Ananth

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