On 28/08/2023 08:55, Jiri Olsa wrote: > Adding 'missed' field to display missed counts for kprobes > attached by perf event link, like: > > # bpftool link > 5: perf_event prog 82 > kprobe ffffffff815203e0 ksys_write > 6: perf_event prog 83 > kprobe ffffffff811d1e50 scheduler_tick missed 682217 > > # bpftool link -jp > [{ > "id": 5, > "type": "perf_event", > "prog_id": 82, > "retprobe": false, > "addr": 18446744071584220128, > "func": "ksys_write", > "offset": 0, > "missed": 0 > },{ > "id": 6, > "type": "perf_event", > "prog_id": 83, > "retprobe": false, > "addr": 18446744071580753488, > "func": "scheduler_tick", > "offset": 0, > "missed": 693469 > } > ] > > Signed-off-by: Jiri Olsa <jolsa@xxxxxxxxxx> > --- > tools/bpf/bpftool/link.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/tools/bpf/bpftool/link.c b/tools/bpf/bpftool/link.c > index 7387e51a5e5c..d65129318f82 100644 > --- a/tools/bpf/bpftool/link.c > +++ b/tools/bpf/bpftool/link.c > @@ -302,6 +302,7 @@ show_perf_event_kprobe_json(struct bpf_link_info *info, json_writer_t *wtr) > jsonw_string_field(wtr, "func", > u64_to_ptr(info->perf_event.kprobe.func_name)); > jsonw_uint_field(wtr, "offset", info->perf_event.kprobe.offset); > + jsonw_uint_field(wtr, "missed", info->perf_event.kprobe.missed); > } > > static void > @@ -686,6 +687,8 @@ static void show_perf_event_kprobe_plain(struct bpf_link_info *info) > printf("%s", buf); > if (info->perf_event.kprobe.offset) > printf("+%#x", info->perf_event.kprobe.offset); > + if (info->perf_event.kprobe.missed) > + printf(" missed %llu", info->perf_event.kprobe.missed); > printf(" "); > } > Same comment as for the previous patch: double space between fields in plain output please. Thanks! Reviewed-by: Quentin Monnet <quentin@xxxxxxxxxxxxx>