• Peter Zijlstra's avatar
    perf: Fix owner-list vs exit · 8882135b
    Peter Zijlstra authored
    Oleg noticed that a perf-fd keeping a reference on the creating task
    leads to a few funny side effects.
    
    There's two different aspects to this:
    
      - kernel based perf-events, these should not take out
        a reference on the creating task and appear on the task's
        event list since they're not bound to fds nor visible
        to userspace.
    
      - fork() and pthread_create(), these can lead to the creating
        task dying (and thus the task's event-list becomming useless)
        but keeping the list and ref alive until the event is closed.
    
    Combined they lead to malfunction of the ptrace hw_tracepoints.
    
    Cure this by not considering kernel based perf_events for the
    owner-list and destroying the owner-list when the owner dies.
    Reported-by: default avatarOleg Nesterov <oleg@redhat.com>
    Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
    Acked-by: default avatarOleg Nesterov <oleg@redhat.com>
    LKML-Reference: <1289576883.2084.286.camel@laptop>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    8882135b
perf_event.c 144 KB