• Oleg Nesterov's avatar
    uprobes/perf: Teach trace_uprobe/perf code to track the active perf_event's · 736288ba
    Oleg Nesterov authored
    Introduce "struct trace_uprobe_filter" which records the "active"
    perf_event's attached to ftrace_event_call. For the start we simply
    use list_head, we can optimize this later if needed. For example, we
    do not really need to record an event with ->parent != NULL, we can
    rely on parent->child_list. And we can certainly do some optimizations
    for the case when 2 events have the same ->tp_target or tp_target->mm.
    
    Change trace_uprobe_register() to process TRACE_REG_PERF_OPEN/CLOSE
    and add/del this perf_event to the list.
    
    We can probably avoid any locking, but lets start with the "obvioulsy
    correct" trace_uprobe_filter->rwlock which protects everything.
    Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
    736288ba
trace_uprobe.c 18.7 KB