* Peter Zijlstra <peterz@xxxxxxxxxxxxx> [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 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>