From: Alexei Starovoitov <alexei.starovoitov@gmail.com>
To: Wang Nan <wangnan0@huawei.com>
Cc: ast@kernel.org, agartrell@fb.com, acme@redhat.com,
bblanco@plumgrid.com, daniel@iogearbox.net,
daniel.wagner@bmw-carit.de, davem@davemloft.net,
mingo@kernel.org, jolsa@kernel.org, xiakaixu@huawei.com,
holzheu@linux.vnet.ibm.com, yang.shi@linaro.org,
linux-kernel@vger.kernel.org, pi3orama@163.com
Subject: Re: [PATCH 08/10] bpf samples: Add utils.[ch] for using BPF
Date: Thu, 17 Dec 2015 15:11:39 -0800 [thread overview]
Message-ID: <20151217231138.GA34078@ast-mbp.thefacebook.com> (raw)
In-Reply-To: <1450329794-161948-9-git-send-email-wangnan0@huawei.com>
On Thu, Dec 17, 2015 at 05:23:12AM +0000, Wang Nan wrote:
> We are going to uses libbpf to replace old libbpf.[ch] and
> bpf_load.[ch]. This is the first patch of this work. In this patch,
> several macros and helpers in libbpf.[ch] and bpf_load.[ch] are
> merged into utils.[ch]. utils.[ch] utilizes libbpf in tools/lib to
> deal with BPF related things. They would be compiled after Makefile
> changes.
>
> Signed-off-by: Wang Nan <wangnan0@huawei.com>
...
> +#define IS_ERR_VALUE(x) unlikely((x) >= (unsigned long)-MAX_ERRNO)
> +
> +static inline void * __must_check ERR_PTR(long error_)
> +{
> + return (void *) error_;
> +}
> +
> +static inline long __must_check PTR_ERR(__force const void *ptr)
> +{
> + return (long) ptr;
> +}
> +
> +static inline bool __must_check IS_ERR(__force const void *ptr)
> +{
> + return IS_ERR_VALUE((unsigned long)ptr);
> +}
why copy paste this? I don't see the code that uses that.
> + bpf_object__for_each_program(prog, obj) {
> + const char *event = bpf_program__title(prog, false);
> + int fd, err;
> +
> + LIBBPF_PTR_ASSERT(event, goto errout);
> + __LIBBPF_ASSERT(fd = bpf_program__nth_fd(prog, 0),
> + >= 0,
> + goto errout);
> +
> + if (strncmp(event, "kprobe/", 7) == 0)
> + err = create_kprobes(fd, event + 7, true);
> + else if (strncmp(event, "kretprobe/", 10) == 0)
> + err = create_kprobes(fd, event + 10, false);
I have a feeling that all bpf+socket, tcbpf1_kernc and trace_output_*.c
are broken, since I don't see a code that attaches programs to sockets
and to perf_event.
How did you test it?
> diff --git a/samples/bpf/utils.h b/samples/bpf/utils.h
> new file mode 100644
> index 0000000..5962a68
> --- /dev/null
> +++ b/samples/bpf/utils.h
> @@ -0,0 +1,217 @@
> +#ifndef __SAMPELS_UTILS_H
> +#define __SAMPELS_UTILS_H
> +
> +#include <bpf/libbpf.h>
> +#include <bpf/bpf.h>
> +
> +/* ALU ops on registers, bpf_add|sub|...: dst_reg += src_reg */
> +
> +#define BPF_ALU64_REG(OP, DST, SRC) \
> + ((struct bpf_insn) { \
> + .code = BPF_ALU64 | BPF_OP(OP) | BPF_X, \
> + .dst_reg = DST, \
> + .src_reg = SRC, \
> + .off = 0, \
> + .imm = 0 })
this probably belongs in tools/lib/bpf/bpf.h instead of samples.
The whole set depends on changes in perf/core tree, but
in net-next we have extra commit 30b50aa612018, so I don't see an easy way
to route this patch without creating across-tree merge conflicts during
merge window.
I'd suggest to apply all required work to tools/lib/bpf/ into perf/core
and leave samples/bpf/ after merge window.
next prev parent reply other threads:[~2015-12-17 23:11 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-17 5:23 [PATCH 00/10] bpf samples: Uses libbpf in tools/lib to do BPF operations Wang Nan
2015-12-17 5:23 ` [PATCH 01/10] bpf samples: bpf: Fix tracex5_kern.c compiling error Wang Nan
2015-12-17 5:23 ` [PATCH 02/10] bpf tools: Define LD and RM in Makefile for 'make -R' Wang Nan
2015-12-17 5:23 ` [PATCH 03/10] bpf tools: Add const decoretor to 'license' and 'insns' for bpf_load_program() Wang Nan
2015-12-17 5:23 ` [PATCH 04/10] bpf tools: Switch to uapi style type names Wang Nan
2015-12-17 5:23 ` [PATCH 05/10] bpf tools: Support load different type of programs Wang Nan
2015-12-17 5:23 ` [PATCH 06/10] bpf tools: Support new map operations Wang Nan
2015-12-17 6:06 ` Wangnan (F)
2015-12-17 6:09 ` [PATCH v2 " Wang Nan
2015-12-17 5:23 ` [PATCH 07/10] bpf tools: Support BPF_OBJ_PIN and BPF_OBJ_GET Wang Nan
2015-12-17 5:23 ` [PATCH 08/10] bpf samples: Add utils.[ch] for using BPF Wang Nan
2015-12-17 23:11 ` Alexei Starovoitov [this message]
2015-12-18 1:47 ` Wangnan (F)
2015-12-18 6:19 ` Alexei Starovoitov
2015-12-18 7:04 ` Wangnan (F)
2015-12-18 7:10 ` Wangnan (F)
2015-12-18 10:57 ` Daniel Borkmann
2015-12-18 11:18 ` pi3orama
2015-12-18 11:24 ` Daniel Borkmann
2015-12-19 0:35 ` Alexei Starovoitov
2015-12-17 5:23 ` [PATCH 09/10] bpf samples: Uses libbpf in tools/lib to deal with BPF operations Wang Nan
2015-12-17 5:23 ` [PATCH 10/10] bpf samples: Remove old BPF helpers Wang Nan
2015-12-17 6:38 ` [PATCH 00/10] bpf samples: Uses libbpf in tools/lib to do BPF operations Daniel Wagner
2015-12-17 6:51 ` Wangnan (F)
2015-12-17 7:03 ` Daniel Wagner
2015-12-17 8:29 ` Daniel Wagner
2015-12-17 10:09 ` Wangnan (F)
2015-12-17 13:46 ` Daniel Wagner
2015-12-18 3:04 ` Wangnan (F)
2015-12-18 8:49 ` Daniel Wagner
2015-12-18 10:56 ` [PATCH] tools build: Output more data during feature detection Wang Nan
2015-12-18 11:03 ` [PATCH 00/10] bpf samples: Uses libbpf in tools/lib to do BPF operations Wangnan (F)
2015-12-18 12:55 ` Daniel Wagner
2015-12-18 14:13 ` pi3orama
[not found] ` <66E52D4A-BA1C-456A-8E6F-975E07C083EE@163.com>
2015-12-18 14:22 ` Daniel Wagner
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=20151217231138.GA34078@ast-mbp.thefacebook.com \
--to=alexei.starovoitov@gmail.com \
--cc=acme@redhat.com \
--cc=agartrell@fb.com \
--cc=ast@kernel.org \
--cc=bblanco@plumgrid.com \
--cc=daniel.wagner@bmw-carit.de \
--cc=daniel@iogearbox.net \
--cc=davem@davemloft.net \
--cc=holzheu@linux.vnet.ibm.com \
--cc=jolsa@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=pi3orama@163.com \
--cc=wangnan0@huawei.com \
--cc=xiakaixu@huawei.com \
--cc=yang.shi@linaro.org \
/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
all inboxes | Powered by JetHome®