On Fri, Dec 13, 2019 at 08:09:52PM +0100, Paul Chaignon wrote: > When working with frequently modified BPF programs, both the ID and the > tag may change. bpftool currently doesn't provide a "stable" way to match > such programs. This patchset allows bpftool to match programs and maps by > name. > > When given a tag that matches several programs, bpftool currently only > considers the first match. The first patch changes that behavior to > either process all matching programs (for the show and dump commands) or > error out. The second patch implements program lookup by name, with the > same behavior as for tags in case of ambiguity. The last patch implements > map lookup by name. > > Changelogs: > Changes in v2: > - Fix buffer overflow after realloc. > - Add example output to commit message. > - Properly close JSON arrays on errors. > - Fix style errors (line breaks, for loops, exit labels, type for > tagname). > - Move do_show code for argc == 2 to do_show_subset functions. > - Rebase. Loogs good. Applied. I found the exact match logic unintuitive though. Since 'prog show' can print multiple may be allow partial match on name? So 'bpftool p s name tracepoint__' would print all BCC-based programs that attach to tracepoints. It would be roughly equivalent to 'bpftool p s |grep tracepoint__', but grep captures single line. There is 'bpftool perf|grep tracepoint' as well, but since the tool matches on name it probably should match partial name too.