• Jiri Olsa's avatar
    perf: Do not send exit event twice · 4e93ad60
    Jiri Olsa authored
    In case we monitor events system wide, we get EXIT event
    (when configured) twice for each task that exited.
    
    Note doubled lines with same pid/tid in following example:
    
      $ sudo ./perf record -a
      ^C[ perf record: Woken up 1 times to write data ]
      [ perf record: Captured and wrote 0.480 MB perf.data (2518 samples) ]
      $ sudo ./perf report -D | grep EXIT
    
      0 60290687567581 0x59910 [0x38]: PERF_RECORD_EXIT(1250:1250):(1250:1250)
      0 60290687568354 0x59948 [0x38]: PERF_RECORD_EXIT(1250:1250):(1250:1250)
      0 60290687988744 0x59ad8 [0x38]: PERF_RECORD_EXIT(1250:1250):(1250:1250)
      0 60290687989198 0x59b10 [0x38]: PERF_RECORD_EXIT(1250:1250):(1250:1250)
      1 60290692567895 0x62af0 [0x38]: PERF_RECORD_EXIT(1253:1253):(1253:1253)
      1 60290692568322 0x62b28 [0x38]: PERF_RECORD_EXIT(1253:1253):(1253:1253)
      2 60290692739276 0x69a18 [0x38]: PERF_RECORD_EXIT(1252:1252):(1252:1252)
      2 60290692739910 0x69a50 [0x38]: PERF_RECORD_EXIT(1252:1252):(1252:1252)
    
    The reason is that the cpu contexts are processes each time
    we call perf_event_task. I'm changing the perf_event_aux logic
    to serve task_ctx and cpu contexts separately, which ensure we
    don't get EXIT event generated twice on same cpu context.
    
    This does not affect other auxiliary events, as they don't
    use task_ctx at all.
    Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
    Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
    Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Stephane Eranian <eranian@google.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Vince Weaver <vincent.weaver@maine.edu>
    Link: http://lkml.kernel.org/r/1446649205-5822-1-git-send-email-jolsa@kernel.orgSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    4e93ad60
core.c 221 KB