Re: [PATCH v4 3.0-rc2-tip 14/22] 14: x86: uprobes exception notifier for x86.

Peter Zijlstra
2011-06-21T13:33:55Z

On Tue, 2011-06-21 at 15:31 +0200, Peter Zijlstra wrote:
> On Tue, 2011-06-07 at 18:31 +0530, Srikar Dronamraju wrote:
> > @@ -844,6 +845,19 @@ do_notify_resume(struct pt_regs *regs, void *unused, __u32 thread_info_flags)
> > if (thread_info_flags & _TIF_SIGPENDING)
> > do_signal(regs);
> >
> > + if (thread_info_flags & _TIF_UPROBE) {
> > + clear_thread_flag(TIF_UPROBE);
> > +#ifdef CONFIG_X86_32
> > + /*
> > + * On x86_32, do_notify_resume() gets called with
> > + * interrupts disabled. Hence enable interrupts if they
> > + * are still disabled.
> > + */
> > + local_irq_enable();
> > +#endif
> > + uprobe_notify_resume(regs);
> > + }
>
> Would it make sense to do TIF_UPROBE before TIF_SIGPENDING? That way
> when uprobe decides it ought to have send a signal we don't have to do
> another loop through all this.

Also, it might be good to unify x86_86 and i386 on the interrupt thing,
instead of propagating this difference (unless of course there's a good
reason they're different, but I really don't know this code well).