• Oleg Nesterov's avatar
    uprobes/perf: Avoid uprobe_apply() whenever possible · b2fe8ba6
    Oleg Nesterov authored
    uprobe_perf_open/close call the costly uprobe_apply() every time,
    we can avoid it if:
    
    	- "nr_systemwide != 0" is not changed.
    
    	- There is another process/thread with the same ->mm.
    
    	- copy_proccess() does inherit_event(). dup_mmap() preserves the
    	  inserted breakpoints.
    
    	- event->attr.enable_on_exec == T, we can rely on uprobe_mmap()
    	  called by exec/mmap paths.
    
    	- tp_target is exiting. Only _close() checks PF_EXITING, I don't
    	  think TRACE_REG_PERF_OPEN can hit the dying task too often.
    Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
    b2fe8ba6
trace_uprobe.c 20.6 KB