lkml.org 
[lkml]   [2015]   [Oct]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [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.



    \
     
     \ /
      Last update: 2015-10-15 14:21    [W:4.382 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site