> On Feb 29, 2020, at 8:14 PM, Yonghong Song <yhs@xxxxxx> wrote: > > > > On 2/28/20 3:40 PM, Song Liu wrote: >> With fentry/fexit programs, it is possible to profile BPF program with >> hardware counters. Introduce bpftool "prog profile", which measures key >> metrics of a BPF program. >> bpftool prog profile command creates per-cpu perf events. Then it attaches >> fentry/fexit programs to the target BPF program. The fentry program saves >> perf event value to a map. The fexit program reads the perf event again, >> and calculates the difference, which is the instructions/cycles used by >> the target program. >> Example input and output: >> ./bpftool prog profile 3 id 337 cycles instructions llc_misses >> 4228 run_cnt >> 3403698 cycles (84.08%) >> 3525294 instructions # 1.04 insn per cycle (84.05%) >> 13 llc_misses # 3.69 LLC misses per million isns (83.50%) > > if run_cnt is 0, the following is the result: > > -bash-4.4$ sudo ./bpftool prog profile 3 id 52 cycles instructions llc_misses > > 0 run_cnt > 0 cycles > 0 instructions # -nan insn per cycle > 0 llc_misses # -nan LLC misses per million isns > > -nan is a little bit crypto for user output. maybe just says > unknown insns per cycle > in the comment? > > We can still display "0 cycles" etc. just to make output uniform. Good catch! Will fix this in next version. Song