Re: [PATCH 18/31] perf test: Add 'perf test BPF'

From: Namhyung Kim
Date: Wed Sep 02 2015 - 08:48:44 EST


On Sat, Aug 29, 2015 at 04:21:52AM +0000, Wang Nan wrote:
> This patch adds BPF testcase for testing BPF event filtering.
>
> By utilizing the result of 'perf test LLVM', this patch compiles the
> eBPF sample program then test it ability. The BPF script in 'perf test
> LLVM' collects half of execution of epoll_pwait(). This patch runs 111
> times of it, so the resule should contains 56 samples.
>
> Signed-off-by: Wang Nan <wangnan0@xxxxxxxxxx>
> Cc: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
> Cc: Alexei Starovoitov <ast@xxxxxxxxxxxx>
> Cc: Brendan Gregg <brendan.d.gregg@xxxxxxxxx>
> Cc: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
> Cc: David Ahern <dsahern@xxxxxxxxx>
> Cc: He Kuang <hekuang@xxxxxxxxxx>
> Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
> Cc: Kaixu Xia <xiakaixu@xxxxxxxxxx>
> Cc: Masami Hiramatsu <masami.hiramatsu.pt@xxxxxxxxxxx>
> Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
> Cc: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
> Cc: Zefan Li <lizefan@xxxxxxxxxx>
> Cc: pi3orama@xxxxxxx
> Link: http://lkml.kernel.org/n/1440151770-129878-16-git-send-email-wangnan0@xxxxxxxxxx
> ---

[SNIP]

> +static int prepare_bpf(void *obj_buf, size_t obj_buf_sz)
> +{
> + int err;
> + char errbuf[BUFSIZ];
> +
> + err = bpf__prepare_load_buffer(obj_buf, obj_buf_sz, NULL);
> + if (err) {
> + bpf__strerror_prepare_load("[buffer]", false, err, errbuf,
> + sizeof(errbuf));
> + fprintf(stderr, " (%s)", errbuf);
> + return TEST_FAIL;
> + }
> +
> + err = bpf__probe();
> + if (err) {
> + bpf__strerror_load(err, errbuf, sizeof(errbuf));
> + fprintf(stderr, " (%s)", errbuf);
> + if (getuid() != 0)

geteuid() ?

Thanks,
Namhyung


> + fprintf(stderr, " (try run as root)");
> + return TEST_FAIL;
> + }
> +
> + err = bpf__load();
> + if (err) {
> + bpf__strerror_load(err, errbuf, sizeof(errbuf));
> + fprintf(stderr, " (%s)", errbuf);
> + return TEST_FAIL;
> + }
> +
> + return 0;
> +}
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/