• Namhyung Kim's avatar
    perf lock contention: Show per-cpu rq_lock with address · d24c0144
    Namhyung Kim authored
    Using the BPF_PROG_RUN mechanism, we can run a raw_tp BPF program to
    collect some semi-global locks like per-cpu locks.  Let's add runqueue
    locks using bpf_per_cpu_ptr() helper.
    
      $ sudo ./perf lock con -abl -- sleep 1
       contended   total wait     max wait     avg wait            address   symbol
    
             248      3.25 ms     32.23 us     13.10 us   ffff8cc75cfd2940   siglock
              60    217.91 us      9.69 us      3.63 us   ffff8cc700061c00
               8     70.23 us     13.86 us      8.78 us   ffff8cc703629484
               4     56.32 us     35.81 us     14.08 us   ffff8cc78b66f778   mmap_lock
               4     16.70 us      5.18 us      4.18 us   ffff8cc7036a0684
               3      4.99 us      2.65 us      1.66 us   ffff8d053da30c80   rq_lock
               2      3.44 us      2.28 us      1.72 us   ffff8d053dcf0c80   rq_lock
               9      2.51 us       371 ns       278 ns   ffff8ccb92479440
               2      2.11 us      1.24 us      1.06 us   ffff8d053db30c80   rq_lock
               2      2.06 us      1.69 us      1.03 us   ffff8d053d970c80   rq_lock
    Signed-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
    Cc: Boqun Feng <boqun.feng@gmail.com>
    Cc: Hao Luo <haoluo@google.com>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Juri Lelli <juri.lelli@redhat.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Song Liu <song@kernel.org>
    Cc: Stephane Eranian <eranian@google.com>
    Cc: Waiman Long <longman@redhat.com>
    Cc: Will Deacon <will@kernel.org>
    Cc: bpf@vger.kernel.org
    Link: https://lore.kernel.org/r/20230313204825.2665483-2-namhyung@kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    d24c0144
lock_contention.bpf.c 9.03 KB