Messages in this thread Patch in this message | | | Date | Thu, 15 Oct 2015 19:58:38 +0800 | From | "Wangnan (F)" <> | Subject | Re: [PATCH 10/31] perf test: Enforce LLVM test for BPF test |
| |
On 2015/10/14 23:48, Namhyung Kim wrote: > On Wed, Oct 14, 2015 at 12:41:21PM +0000, Wang Nan wrote: >> This patch replaces the original toy BPF program with previous introduced >> bpf-script-example.c. Dynamically embedded it into 'llvm-src.c'. >> >> The newly introduced BPF program attaches a BPF program at >> 'sys_epoll_pwait()', and collect half samples from it. perf itself never >> use that syscall, so further test can verify their result with it. >> >> Since BPF program require LINUX_VERSION_CODE of runtime kernel, this >> patch computes that code from uname. >> >> Since the resuling BPF object is useful for further testcases, this patch >> introduces 'prepare' and 'cleanup' method to tests, and makes test__llvm() >> create a MAP_SHARED memory array to hold the resulting object. >> >> Signed-off-by: He Kuang <hekuang@huawei.com> >> Signed-off-by: Wang Nan <wangnan0@huawei.com> >> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> >> Cc: Alexei Starovoitov <ast@plumgrid.com> >> Cc: Brendan Gregg <brendan.d.gregg@gmail.com> >> Cc: Daniel Borkmann <daniel@iogearbox.net> >> Cc: David Ahern <dsahern@gmail.com> >> Cc: Jiri Olsa <jolsa@kernel.org> >> Cc: Kaixu Xia <xiakaixu@huawei.com> >> Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> >> Cc: Namhyung Kim <namhyung@kernel.org> >> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> >> Cc: Zefan Li <lizefan@huawei.com> >> Cc: pi3orama@163.com >> Link: http://lkml.kernel.org/n/ebpf-6yw9eg0ej3l4jnqhinngkw86@git.kernel.org >> --- > [SNIP] > >> +void test__llvm_prepare(void) >> +{ >> + p_test_llvm__bpf_result = mmap(NULL, SHARED_BUF_INIT_SIZE, >> + PROT_READ | PROT_WRITE, >> + MAP_SHARED | MAP_ANONYMOUS, -1, 0); >> + if (!p_test_llvm__bpf_result) > It should check MAP_FAILED instead. >
Fixed by this way:
diff --git a/tools/perf/tests/llvm.c b/tools/perf/tests/llvm.c index e722e8a..25ddeaf 100644 --- a/tools/perf/tests/llvm.c +++ b/tools/perf/tests/llvm.c @@ -199,12 +199,15 @@ void test__llvm_prepare(void)
for (i = 0; llvm_testcases[i].source; i++) { struct test_llvm__bpf_result *result; + void *p;
- result = mmap(NULL, SHARED_BUF_INIT_SIZE, - PROT_READ | PROT_WRITE, - MAP_SHARED | MAP_ANONYMOUS, -1, 0); - if (!result) + p = mmap(NULL, SHARED_BUF_INIT_SIZE, + PROT_READ | PROT_WRITE, + MAP_SHARED | MAP_ANONYMOUS, -1, 0); + if (p == MAP_FAILED) return; + + result = p; memset((void *)result, '\0', SHARED_BUF_INIT_SIZE);
llvm_testcases[i].result = result; Thank you.
| |