diff options
author | Oleg Nesterov <oleg@redhat.com> | 2013-02-04 19:05:43 +0100 |
---|---|---|
committer | Oleg Nesterov <oleg@redhat.com> | 2013-02-08 18:28:08 +0100 |
commit | b2fe8ba674e8acbb9e8e63510b802c6d054d88a3 (patch) | |
tree | 1bd1defbfe3f285dfa7c77f94bc5523ac4a82679 /kernel/context_tracking.c | |
parent | f42d24a1d20d2e72d1e5d48930f18b138dfad117 (diff) | |
download | lwn-b2fe8ba674e8acbb9e8e63510b802c6d054d88a3.tar.gz lwn-b2fe8ba674e8acbb9e8e63510b802c6d054d88a3.zip |
uprobes/perf: Avoid uprobe_apply() whenever possible
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: Oleg Nesterov <oleg@redhat.com>
Diffstat (limited to 'kernel/context_tracking.c')
0 files changed, 0 insertions, 0 deletions