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

Srikar Dronamraju
2011-06-22T15:03:17Z

* Peter Zijlstra <peterz@infradead.org> [2011-06-21 15:32:47]:

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

Okay,

>
> 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).

I am not sure if this has changed lately. So I will try removing the
local_irq_enable.

Oleg, Roland, do you know why do_notify_resume() gets called with
interrupts disabled on i386?

--
Thanks and Regards
Srikar