1. 07 8月, 2015 2 次提交
    • W
      bpf tools: Allow caller to set printing function · b3f59d66
      Wang Nan 提交于
      By libbpf_set_print(), users of libbpf are allowed to register he/she
      own debug, info and warning printing functions. Libbpf will use those
      functions to print messages. If not provided, default info and warning
      printing functions are fprintf(stderr, ...); default debug printing
      is NULL.
      
      This API is designed to be used by perf, enables it to register its own
      logging functions to make all logs uniform, instead of separated
      logging level control.
      Signed-off-by: NWang Nan <wangnan0@huawei.com>
      Acked-by: NAlexei 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/1435716878-189507-5-git-send-email-wangnan0@huawei.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      b3f59d66
    • W
      bpf tools: Introduce 'bpf' library and add bpf feature check · 1b76c13e
      Wang Nan 提交于
      This is the first patch of libbpf. The goal of libbpf is to create a
      standard way for accessing eBPF object files. This patch creates
      'Makefile' and 'Build' for it, allows 'make' to build libbpf.a and
      libbpf.so, 'make install' to put them into proper directories.
      Most part of Makefile is borrowed from traceevent.
      
      Before building, it checks the existence of libelf in Makefile, and deny
      to build if not found. Instead of throwing an error if libelf not found,
      the error raises in a phony target "elfdep". This design is to ensure
      'make clean' still workable even if libelf is not found.
      
      Because libbpf requires 'kern_version' field set for 'union bpf_attr'
      (bpfdep" is used for that dependency), Kernel BPF API is also checked
      by intruducing a new feature check 'bpf' into tools/build/feature,
      which checks the existence and version of linux/bpf.h. When building
      libbpf, it searches that file from include/uapi/linux in kernel source
      tree (controlled by FEATURE_CHECK_CFLAGS-bpf). Since it searches kernel
      source tree it reside, installing of newest kernel headers is not
      required, except we are trying to port these files to an old kernel.
      
      To avoid checking that file when perf building, the newly introduced
      'bpf' feature check doesn't added into FEATURE_TESTS and
      FEATURE_DISPLAY by default in tools/build/Makefile.feature, but added
      into libbpf's specific.
      Signed-off-by: NWang Nan <wangnan0@huawei.com>
      Acked-by: NAlexei 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>
      Bcc: pi3orama@163.com
      Link: http://lkml.kernel.org/r/1435716878-189507-4-git-send-email-wangnan0@huawei.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      1b76c13e