From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Quentin Monnet <quentin.monnet@netronome.com>
Cc: Alexei Starovoitov <ast@kernel.org>,
Daniel Borkmann <daniel@iogearbox.net>,
netdev@vger.kernel.org, oss-drivers@netronome.com,
Jesper Dangaard Brouer <brouer@redhat.com>,
Stanislav Fomichev <sdf@google.com>
Subject: Re: [PATCH bpf-next 0/8] tools: bpftool: add probes for system and device
Date: Fri, 14 Dec 2018 11:00:09 -0300 [thread overview]
Message-ID: <20181214140009.GS21027@kernel.org> (raw)
In-Reply-To: <20181213121922.6652-1-quentin.monnet@netronome.com>
Em Thu, Dec 13, 2018 at 12:19:14PM +0000, Quentin Monnet escreveu:
> Hi,
> This set add a new command to bpftool in order to dump a list of
> eBPF-related parameters for the system (or for a specific network
> device) to the console. Once again, this is based on a suggestion from
> Daniel.
>
> At this time, output includes:
>
> - Availability of bpf() system call
> - Availability of bpf() system call for unprivileged users
> - JIT status (enabled or not, with or without debugging traces)
> - JIT hardening status
> - JIT kallsyms exports status
> - Status of kernel compilation options related to BPF features
> - Release number of the running kernel
> - Availability of known eBPF program types
> - Availability of known eBPF map types
> - Availability of known eBPF helper functions
>
> There are three different ways to dump this information at this time:
>
> - Plain output dumps probe results in plain text. It is the most
> flexible options for providing descriptive output to the user, but
> should not be relied upon for parsing the output.
> - JSON output is supported.
> - A third mode, available through the "macros" keyword appended to
> the command line, dumps the parameters as a series of "#define"
> directives, that can be included into a C header file for example.
>
> If the user does not have root privileges (or more precisely, the
> CAP_SYS_ADMIN capability) detection will be erroneous for most
> parameters. Therefore, forbid non-root users to run the command.
One other thing I noticed is that this has lots of goodies that are not
bpftool specific, like the json writer, the procfs reading routines,
etc.
perf has these and some were even moved to tools/lib/api/, things like
finding the procfs, debugfs, sysfs mount points, routines to mount then
automatically when the user can do it, etc.
Have you considered using them? If so, what prevented you from doing it?
Licensing?
Sharing these non-tool specific routines in tools/lib/ is a good thing
and we should work out details on what prevents that from happening.
Another thing that came to mind is that the bpf loaded in perf has
routines for figuring out the kbuild directory, kernel version, etc.
Please take a look at tools/perf/util/llvm-utils.c and
tools/perf/util/bpf-loader.c. If we could reuse what is there, working
out licensing details with Wang, etc, that would be awesome.
- Arnaldo
next prev parent reply other threads:[~2018-12-14 14:00 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-13 12:19 [PATCH bpf-next 0/8] tools: bpftool: add probes for system and device Quentin Monnet
2018-12-13 12:19 ` [PATCH bpf-next 1/8] tools: bpftool: add basic probe capability, probe syscall and kversion Quentin Monnet
2018-12-14 2:50 ` Stanislav Fomichev
2018-12-14 11:27 ` Quentin Monnet
2018-12-14 18:45 ` Stanislav Fomichev
2018-12-15 3:31 ` Quentin Monnet
2018-12-14 23:35 ` Daniel Borkmann
2018-12-15 3:31 ` Quentin Monnet
2018-12-13 12:19 ` [PATCH bpf-next 2/8] tools: bpftool: add probes for /proc/ eBPF parameters Quentin Monnet
2018-12-14 2:58 ` Stanislav Fomichev
2018-12-14 11:27 ` Quentin Monnet
2018-12-14 23:40 ` Daniel Borkmann
2018-12-15 3:31 ` Quentin Monnet
2018-12-16 0:14 ` Daniel Borkmann
2018-12-17 10:44 ` Quentin Monnet
2018-12-17 11:11 ` Daniel Borkmann
2018-12-13 12:19 ` [PATCH bpf-next 3/8] tools: bpftool: add probes for kernel configuration options Quentin Monnet
2018-12-14 23:56 ` Daniel Borkmann
2018-12-15 3:32 ` Quentin Monnet
2018-12-19 18:49 ` Quentin Monnet
2018-12-13 12:19 ` [PATCH bpf-next 4/8] tools: bpftool: add probes for eBPF program types Quentin Monnet
2018-12-13 12:19 ` [PATCH bpf-next 5/8] tools: bpftool: add probes for eBPF map types Quentin Monnet
2018-12-13 12:19 ` [PATCH bpf-next 6/8] tools: bpftool: add probes for eBPF helper functions Quentin Monnet
2018-12-15 0:08 ` Daniel Borkmann
2018-12-15 3:32 ` Quentin Monnet
2018-12-15 23:57 ` Daniel Borkmann
2018-12-17 10:18 ` Quentin Monnet
2018-12-18 0:42 ` Daniel Borkmann
2018-12-19 19:02 ` Quentin Monnet
2018-12-13 12:19 ` [PATCH bpf-next 7/8] tools: bpftool: add probes for a network device Quentin Monnet
2018-12-13 12:19 ` [PATCH bpf-next 8/8] tools: bpftool: add bash completion for bpftool probes Quentin Monnet
2018-12-13 13:03 ` [PATCH bpf-next 0/8] tools: bpftool: add probes for system and device Arnaldo Carvalho de Melo
2018-12-13 13:49 ` Debugging eBPF was: " Arnaldo Carvalho de Melo
2018-12-13 20:55 ` Alexei Starovoitov
2018-12-14 13:39 ` Arnaldo Carvalho de Melo
2018-12-14 11:53 ` Quentin Monnet
2018-12-14 18:21 ` Stanislav Fomichev
2018-12-14 18:41 ` [oss-drivers] " Quentin Monnet
2018-12-14 14:00 ` Arnaldo Carvalho de Melo [this message]
2018-12-14 14:56 ` Quentin Monnet
2018-12-14 17:26 ` Arnaldo Carvalho de Melo
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=20181214140009.GS21027@kernel.org \
--to=acme@kernel.org \
--cc=ast@kernel.org \
--cc=brouer@redhat.com \
--cc=daniel@iogearbox.net \
--cc=netdev@vger.kernel.org \
--cc=oss-drivers@netronome.com \
--cc=quentin.monnet@netronome.com \
--cc=sdf@google.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).