• Wang Nan's avatar
    perf tools: Compile scriptlets to BPF objects when passing '.c' to --event · d509db04
    Wang Nan authored
    This patch provides infrastructure for passing source files to --event
    directly using:
    
     # perf record --event bpf-file.c command
    
    This patch does following works:
    
     1) Allow passing '.c' file to '--event'. parse_events_load_bpf() is
        expanded to allow caller tell it whether the passed file is source
        file or object.
    
     2) llvm__compile_bpf() is called to compile the '.c' file, the result
        is saved into memory. Use bpf_object__open_buffer() to load the
        in-memory object.
    
    Introduces a bpf-script-example.c so we can manually test it:
    
     # perf record --clang-opt "-DLINUX_VERSION_CODE=0x40200" --event ./bpf-script-example.c sleep 1
    
    Note that '--clang-opt' must put before '--event'.
    
    Futher patches will merge it into a testcase so can be tested automatically.
    Signed-off-by: default avatarWang Nan <wangnan0@huawei.com>
    Acked-by: default avatarAlexei 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: He Kuang <hekuang@huawei.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/r/1444826502-49291-10-git-send-email-wangnan0@huawei.comSigned-off-by: default avatarHe Kuang <hekuang@huawei.com>
    Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    d509db04
parse-events.c 47.9 KB