bpftool: Add {i,d}tlb_misses support for bpftool profile
authorYonghong Song <yhs@fb.com>
Thu, 19 Nov 2020 07:30:39 +0000 (23:30 -0800)
committerDaniel Borkmann <daniel@iogearbox.net>
Fri, 20 Nov 2020 14:50:38 +0000 (15:50 +0100)
commit450d060e8f752a6ce052a2bffd3f01633472e330
treeb23f99d32b48d538b2d835bf7185b21067a34ec1
parent4e99d115d865d45e17e83478d757b58d8fa66d3c
bpftool: Add {i,d}tlb_misses support for bpftool profile

Commit 47c09d6a9f67("bpftool: Introduce "prog profile" command")
introduced "bpftool prog profile" command which can be used
to profile bpf program with metrics like # of instructions,

This patch added support for itlb_misses and dtlb_misses.
During an internal bpf program performance evaluation,
I found these two metrics are also very useful. The following
is an example output:

 $ bpftool prog profile id 324 duration 3 cycles itlb_misses

           1885029 run_cnt
        5134686073 cycles
            306893 itlb_misses

 $ bpftool prog profile id 324 duration 3 cycles dtlb_misses

           1827382 run_cnt
        4943593648 cycles
           5975636 dtlb_misses

 $ bpftool prog profile id 324 duration 3 cycles llc_misses

           1836527 run_cnt
        5019612972 cycles
           4161041 llc_misses

From the above, we can see quite some dtlb misses, 3 dtlb misses
perf prog run. This might be something worth further investigation.

Signed-off-by: Yonghong Song <yhs@fb.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Song Liu <songliubraving@fb.com>
Link: https://lore.kernel.org/bpf/20201119073039.4060095-1-yhs@fb.com
tools/bpf/bpftool/prog.c