On 04/10, Ravi Bangoria wrote:
> > and what if __mmu_notifier_register() fails simply because signal_pending()
> > == T?
> > see mm_take_all_locks().
> > at first glance this all look suspicious and sub-optimal,
> Yes. I should have added checks for failure cases.
> Will fix them in v3.
And what can you do if it fails? Nothing except report the problem. But
signal_pending() is not the unlikely or error condition, it should not
cause the tracing errors.
Plus mm_take_all_locks() is very heavy... BTW, uprobe_mmap_callback() is
called unconditionally. Whatever it does, can we at least move it after
the no_uprobe_events() check? Can't we also check MMF_HAS_UPROBES?
Either way, I do not feel that mmu_notifier is the right tool... Did you
consider the uprobe_clear_state() hook we already have?