• H
    perf record: Synthesize namespace events for current processes · e907caf3
    Hari Bathini 提交于
    Synthesize PERF_RECORD_NAMESPACES events for processes that were running prior
    to invocation of perf record. The data for this is taken from /proc/$PID/ns.
    These changes make way for analyzing events with regard to namespaces.
    
    Committer notes:
    
    Check if 'tool' is NULL in perf_event__synthesize_namespaces(), as in the
    test__mmap_thread_lookup case, i.e. 'perf test Lookup mmap thread".
    
    Testing it:
    
      # ps axH > /tmp/allthreads
      # perf record -a --namespaces usleep 1
      [ perf record: Woken up 1 times to write data ]
      [ perf record: Captured and wrote 1.169 MB perf.data (8 samples) ]
      # perf report -D | grep PERF_RECORD_NAMESPACES | wc -l
      602
      # wc -l /tmp/allthreads
      601 /tmp/allthreads
      # tail /tmp/allthreads
      16951 pts/4    T      0:00 git rebase -i a033bf1bfacdaa25642e6bcc857a7d0f67cc3c92^
      16952 pts/4    T      0:00 /bin/sh /usr/libexec/git-core/git-rebase -i a033bf1bfacdaa25642e6bcc857a7d0f67cc3c92^
      17176 pts/4    T      0:00 git commit --amend --no-post-rewrite
      17204 pts/4    T      0:00 vim /home/acme/git/linux/.git/COMMIT_EDITMSG
      18939 ?        S      0:00 [kworker/2:1]
      18947 ?        S      0:00 [kworker/3:0]
      18974 ?        S      0:00 [kworker/1:0]
      19047 ?        S      0:00 [kworker/0:1]
      19152 pts/6    S+     0:00 weechat
      19153 pts/7    R+     0:00 ps axH
      # perf report -D | grep PERF_RECORD_NAMESPACES | tail
      0 0 0x125068 [0xa0]: PERF_RECORD_NAMESPACES 17176/17176 - nr_namespaces: 7
      0 0 0x1255b8 [0xa0]: PERF_RECORD_NAMESPACES 17204/17204 - nr_namespaces: 7
      0 0 0x125df0 [0xa0]: PERF_RECORD_NAMESPACES 18939/18939 - nr_namespaces: 7
      0 0 0x125f00 [0xa0]: PERF_RECORD_NAMESPACES 18947/18947 - nr_namespaces: 7
      0 0 0x126010 [0xa0]: PERF_RECORD_NAMESPACES 18974/18974 - nr_namespaces: 7
      0 0 0x126120 [0xa0]: PERF_RECORD_NAMESPACES 19047/19047 - nr_namespaces: 7
      0 0 0x126230 [0xa0]: PERF_RECORD_NAMESPACES 19152/19152 - nr_namespaces: 7
      0 0 0x129330 [0xa0]: PERF_RECORD_NAMESPACES 19154/19154 - nr_namespaces: 7
      0 0 0x12a1f8 [0xa0]: PERF_RECORD_NAMESPACES 19155/19155 - nr_namespaces: 7
      0 0 0x12b0b8 [0xa0]: PERF_RECORD_NAMESPACES 19155/19155 - nr_namespaces: 7
      #
    
    Humm, investigate why we got two record for the 19155 pid/tid...
    Signed-off-by: NHari Bathini <hbathini@linux.vnet.ibm.com>
    Tested-by: NArnaldo Carvalho de Melo <acme@redhat.com>
    Acked-by: NJiri Olsa <jolsa@kernel.org>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Alexei Starovoitov <ast@fb.com>
    Cc: Ananth N Mavinakayanahalli <ananth@linux.vnet.ibm.com>
    Cc: Aravinda Prasad <aravinda@linux.vnet.ibm.com>
    Cc: Brendan Gregg <brendan.d.gregg@gmail.com>
    Cc: Daniel Borkmann <daniel@iogearbox.net>
    Cc: Eric Biederman <ebiederm@xmission.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Sargun Dhillon <sargun@sargun.me>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Link: http://lkml.kernel.org/r/148891931111.25309.11073854609798681633.stgit@hbathini.in.ibm.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
    e907caf3
builtin-record.c 48.6 KB