From: Paul Chaignon <paul.chaignon@orange.com>
To: Alexei Starovoitov <alexei.starovoitov@gmail.com>
Cc: bpf@vger.kernel.org,
Quentin Monnet <quentin.monnet@netronome.com>,
paul.chaignon@gmail.com, netdev@vger.kernel.org,
Alexei Starovoitov <ast@kernel.org>,
Daniel Borkmann <daniel@iogearbox.net>,
Martin KaFai Lau <kafai@fb.com>, Song Liu <songliubraving@fb.com>,
Yonghong Song <yhs@fb.com>, Andrii Nakryiko <andriin@fb.com>
Subject: Re: [PATCH bpf-next v2 0/3] bpftool: match programs and maps by names
Date: Wed, 18 Dec 2019 20:29:30 +0100 [thread overview]
Message-ID: <20191218192930.GA30898@Omicron> (raw)
In-Reply-To: <20191215174004.57deg3fs7665jokd@ast-mbp.dhcp.thefacebook.com>
On Sun, Dec 15, 2019 at 09:40:05AM -0800, Alexei Starovoitov wrote:
> 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.
I had a look at bcc and it actually removes these prefixes from the
program's name (except for kretprobes, but it looks like an oversight).
I still agree a partial match would be good to have since related
programs are more likely to share prefixes (e.g., func_entry and
func_exit). Maybe matching on prefixes would be enough though? I can't
think of use cases for a true partial match and the behavior might be a
bit unexpected for users...
Or we go all the way and implement support for * (e.g., tcp_* for all bcc
kprobes on tcp functions; *tcp* for all programs containing 'tcp').
> There is 'bpftool perf|grep tracepoint' as well, but since the tool
> matches on name it probably should match partial name too.
>
prev parent reply other threads:[~2019-12-18 19:29 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-13 19:09 [PATCH bpf-next v2 0/3] bpftool: match programs and maps by names Paul Chaignon
2019-12-13 19:10 ` [PATCH bpf-next v2 1/3] bpftool: match several programs with same tag Paul Chaignon
2019-12-13 19:10 ` [PATCH bpf-next v2 2/3] bpftool: match programs by name Paul Chaignon
2019-12-13 19:10 ` [PATCH bpf-next v2 3/3] bpftool: match maps " Paul Chaignon
2019-12-15 17:40 ` [PATCH bpf-next v2 0/3] bpftool: match programs and maps by names Alexei Starovoitov
2019-12-18 19:29 ` Paul Chaignon [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20191218192930.GA30898@Omicron \
--to=paul.chaignon@orange.com \
--cc=alexei.starovoitov@gmail.com \
--cc=andriin@fb.com \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=kafai@fb.com \
--cc=netdev@vger.kernel.org \
--cc=paul.chaignon@gmail.com \
--cc=quentin.monnet@netronome.com \
--cc=songliubraving@fb.com \
--cc=yhs@fb.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.