Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1202778 > unrolled thread
| Started by | Arnaldo Carvalho de Melo <acme@kernel.org> |
|---|---|
| First post | 2015-08-07 17:00 +0200 |
| Last post | 2015-08-08 10:10 +0200 |
| Articles | 3 on this page of 23 — 2 participants |
Back to article view | Back to linux.kernel
[GIT PULL 00/24] perf/ebpf lib + llvm/clang building infrastructure Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-08-07 17:00 +0200
[PATCH 05/24] bpf tools: Check endianness and make libbpf fail early Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-08-07 17:00 +0200
[PATCH 01/24] bpf tools: Introduce 'bpf' library and add bpf feature check Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-08-07 17:00 +0200
[PATCH 11/24] bpf tools: Collect relocation sections from SHT_REL sections Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-08-07 17:00 +0200
[PATCH 13/24] bpf tools: Add bpf.c/h for common bpf operations Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-08-07 17:00 +0200
[PATCH 18/24] bpf tools: Introduce accessors for struct bpf_program Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-08-07 17:00 +0200
[PATCH 03/24] bpf tools: Open eBPF object file and do basic validation Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-08-07 17:00 +0200
[PATCH 21/24] perf tools: Call clang to compile C source to object code Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-08-07 17:00 +0200
[PATCH 04/24] bpf tools: Read eBPF object from buffer Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-08-07 17:00 +0200
[PATCH 08/24] bpf tools: Collect map definitions from 'maps' section Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-08-07 17:00 +0200
[PATCH 22/24] perf tools: Auto detecting kernel build directory Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-08-07 17:00 +0200
[PATCH 19/24] bpf tools: Link all bpf objects onto a list Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-08-07 17:00 +0200
[PATCH 15/24] bpf tools: Relocate eBPF programs Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-08-07 17:00 +0200
[PATCH 12/24] bpf tools: Record map accessing instructions for each program Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-08-07 17:00 +0200
[PATCH 06/24] bpf tools: Iterate over ELF sections to collect information Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-08-07 17:00 +0200
[PATCH 24/24] perf tests: Add LLVM test for eBPF on-the-fly compiling Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-08-07 17:00 +0200
[PATCH 17/24] bpf tools: Load eBPF programs in object files into kernel Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-08-07 17:00 +0200
[PATCH 23/24] perf tools: Auto detecting kernel include options Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-08-07 17:00 +0200
[PATCH 10/24] bpf tools: Collect eBPF programs from their own sections Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-08-07 17:00 +0200
[PATCH 16/24] bpf tools: Introduce bpf_load_program() to bpf.c Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-08-07 17:00 +0200
[PATCH 02/24] bpf tools: Allow caller to set printing function Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-08-07 17:00 +0200
[PATCH 20/24] perf tools: Introduce llvm config options Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-08-07 17:00 +0200
Re: [GIT PULL 00/24] perf/ebpf lib + llvm/clang building infrastructure Ingo Molnar <mingo@kernel.org> - 2015-08-08 10:10 +0200
Page 2 of 2 — ← Prev page 1 [2]
| From | Arnaldo Carvalho de Melo <acme@kernel.org> |
|---|---|
| Date | 2015-08-07 17:00 +0200 |
| Subject | [PATCH 02/24] bpf tools: Allow caller to set printing function |
| Message-ID | <pURhP-2CP-83@gated-at.bofh.it> |
| In reply to | #1202778 |
From: Wang Nan <wangnan0@huawei.com>
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: Wang Nan <wangnan0@huawei.com>
Acked-by: 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: 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.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/lib/bpf/libbpf.c | 40 ++++++++++++++++++++++++++++++++++++++++
tools/lib/bpf/libbpf.h | 12 ++++++++++++
2 files changed, 52 insertions(+)
diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c
index c08d6bca1c22..6f0c13a1fb3c 100644
--- a/tools/lib/bpf/libbpf.c
+++ b/tools/lib/bpf/libbpf.c
@@ -7,8 +7,48 @@
*/
#include <stdlib.h>
+#include <stdio.h>
+#include <stdarg.h>
+#include <string.h>
#include <unistd.h>
#include <asm/unistd.h>
#include <linux/bpf.h>
#include "libbpf.h"
+
+#define __printf(a, b) __attribute__((format(printf, a, b)))
+
+__printf(1, 2)
+static int __base_pr(const char *format, ...)
+{
+ va_list args;
+ int err;
+
+ va_start(args, format);
+ err = vfprintf(stderr, format, args);
+ va_end(args);
+ return err;
+}
+
+static __printf(1, 2) libbpf_print_fn_t __pr_warning = __base_pr;
+static __printf(1, 2) libbpf_print_fn_t __pr_info = __base_pr;
+static __printf(1, 2) libbpf_print_fn_t __pr_debug;
+
+#define __pr(func, fmt, ...) \
+do { \
+ if ((func)) \
+ (func)("libbpf: " fmt, ##__VA_ARGS__); \
+} while (0)
+
+#define pr_warning(fmt, ...) __pr(__pr_warning, fmt, ##__VA_ARGS__)
+#define pr_info(fmt, ...) __pr(__pr_info, fmt, ##__VA_ARGS__)
+#define pr_debug(fmt, ...) __pr(__pr_debug, fmt, ##__VA_ARGS__)
+
+void libbpf_set_print(libbpf_print_fn_t warn,
+ libbpf_print_fn_t info,
+ libbpf_print_fn_t debug)
+{
+ __pr_warning = warn;
+ __pr_info = info;
+ __pr_debug = debug;
+}
diff --git a/tools/lib/bpf/libbpf.h b/tools/lib/bpf/libbpf.h
index a6f46d908097..8d1eebafa958 100644
--- a/tools/lib/bpf/libbpf.h
+++ b/tools/lib/bpf/libbpf.h
@@ -8,4 +8,16 @@
#ifndef __BPF_LIBBPF_H
#define __BPF_LIBBPF_H
+/*
+ * In include/linux/compiler-gcc.h, __printf is defined. However
+ * it should be better if libbpf.h doesn't depend on Linux header file.
+ * So instead of __printf, here we use gcc attribute directly.
+ */
+typedef int (*libbpf_print_fn_t)(const char *, ...)
+ __attribute__((format(printf, 1, 2)));
+
+void libbpf_set_print(libbpf_print_fn_t warn,
+ libbpf_print_fn_t info,
+ libbpf_print_fn_t debug);
+
#endif
--
2.1.0
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Arnaldo Carvalho de Melo <acme@kernel.org> |
|---|---|
| Date | 2015-08-07 17:00 +0200 |
| Subject | [PATCH 20/24] perf tools: Introduce llvm config options |
| Message-ID | <pURhP-2CP-87@gated-at.bofh.it> |
| In reply to | #1202778 |
From: Wang Nan <wangnan0@huawei.com>
This patch introduces [llvm] config section with 5 options. Following
patches will use then to config llvm dynamica compiling.
'llvm-utils.[ch]' is introduced in this patch for holding all
llvm/clang related stuffs.
Example:
[llvm]
# Path to clang. If omit, search it from $PATH.
clang-path = "/path/to/clang"
# Cmdline template. Following line shows its default value.
# Environment variable is used to passing options.
#
# *NOTE*: -D__KERNEL__ MUST appears before $CLANG_OPTIONS,
# so user have a chance to use -U__KERNEL__ in $CLANG_OPTIONS
# to cancel it.
clang-bpf-cmd-template = "$CLANG_EXEC -D__KERNEL__ $CLANG_OPTIONS \
$KERNEL_INC_OPTIONS -Wno-unused-value \
-Wno-pointer-sign -working-directory \
$WORKING_DIR -c $CLANG_SOURCE -target \
bpf -O2 -o -"
# Options passed to clang, will be passed to cmdline by
# $CLANG_OPTIONS.
clang-opt = "-Wno-unused-value -Wno-pointer-sign"
# kbuild directory. If not set, use /lib/modules/`uname -r`/build.
# If set to "" deliberately, skip kernel header auto-detector.
kbuild-dir = "/path/to/kernel/build"
# Options passed to 'make' when detecting kernel header options.
kbuild-opts = "ARCH=x86_64"
Signed-off-by: Wang Nan <wangnan0@huawei.com>
Acked-by: 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: 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/1437477214-149684-1-git-send-email-wangnan0@huawei.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/Build | 1 +
tools/perf/util/config.c | 4 ++++
tools/perf/util/llvm-utils.c | 45 ++++++++++++++++++++++++++++++++++++++++++++
tools/perf/util/llvm-utils.h | 36 +++++++++++++++++++++++++++++++++++
4 files changed, 86 insertions(+)
create mode 100644 tools/perf/util/llvm-utils.c
create mode 100644 tools/perf/util/llvm-utils.h
diff --git a/tools/perf/util/Build b/tools/perf/util/Build
index a1e5168dc1fb..2ee81d74cf45 100644
--- a/tools/perf/util/Build
+++ b/tools/perf/util/Build
@@ -14,6 +14,7 @@ libperf-y += find_next_bit.o
libperf-y += help.o
libperf-y += kallsyms.o
libperf-y += levenshtein.o
+libperf-y += llvm-utils.o
libperf-y += parse-options.o
libperf-y += parse-events.o
libperf-y += path.o
diff --git a/tools/perf/util/config.c b/tools/perf/util/config.c
index e18f653cd7db..2e452ac1353d 100644
--- a/tools/perf/util/config.c
+++ b/tools/perf/util/config.c
@@ -12,6 +12,7 @@
#include "cache.h"
#include "exec_cmd.h"
#include "util/hist.h" /* perf_hist_config */
+#include "util/llvm-utils.h" /* perf_llvm_config */
#define MAXNAME (256)
@@ -408,6 +409,9 @@ int perf_default_config(const char *var, const char *value,
if (!prefixcmp(var, "call-graph."))
return perf_callchain_config(var, value);
+ if (!prefixcmp(var, "llvm."))
+ return perf_llvm_config(var, value);
+
/* Add other config variables here. */
return 0;
}
diff --git a/tools/perf/util/llvm-utils.c b/tools/perf/util/llvm-utils.c
new file mode 100644
index 000000000000..472e8cd69361
--- /dev/null
+++ b/tools/perf/util/llvm-utils.c
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2015, Wang Nan <wangnan0@huawei.com>
+ * Copyright (C) 2015, Huawei Inc.
+ */
+
+#include <stdio.h>
+#include "util.h"
+#include "debug.h"
+#include "llvm-utils.h"
+#include "cache.h"
+
+#define CLANG_BPF_CMD_DEFAULT_TEMPLATE \
+ "$CLANG_EXEC -D__KERNEL__ $CLANG_OPTIONS " \
+ "$KERNEL_INC_OPTIONS -Wno-unused-value " \
+ "-Wno-pointer-sign -working-directory " \
+ "$WORKING_DIR -c \"$CLANG_SOURCE\" -target bpf -O2 -o -"
+
+struct llvm_param llvm_param = {
+ .clang_path = "clang",
+ .clang_bpf_cmd_template = CLANG_BPF_CMD_DEFAULT_TEMPLATE,
+ .clang_opt = NULL,
+ .kbuild_dir = NULL,
+ .kbuild_opts = NULL,
+};
+
+int perf_llvm_config(const char *var, const char *value)
+{
+ if (prefixcmp(var, "llvm."))
+ return 0;
+ var += sizeof("llvm.") - 1;
+
+ if (!strcmp(var, "clang-path"))
+ llvm_param.clang_path = strdup(value);
+ else if (!strcmp(var, "clang-bpf-cmd-template"))
+ llvm_param.clang_bpf_cmd_template = strdup(value);
+ else if (!strcmp(var, "clang-opt"))
+ llvm_param.clang_opt = strdup(value);
+ else if (!strcmp(var, "kbuild-dir"))
+ llvm_param.kbuild_dir = strdup(value);
+ else if (!strcmp(var, "kbuild-opts"))
+ llvm_param.kbuild_opts = strdup(value);
+ else
+ return -1;
+ return 0;
+}
diff --git a/tools/perf/util/llvm-utils.h b/tools/perf/util/llvm-utils.h
new file mode 100644
index 000000000000..504b799687fb
--- /dev/null
+++ b/tools/perf/util/llvm-utils.h
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2015, Wang Nan <wangnan0@huawei.com>
+ * Copyright (C) 2015, Huawei Inc.
+ */
+#ifndef __LLVM_UTILS_H
+#define __LLVM_UTILS_H
+
+#include "debug.h"
+
+struct llvm_param {
+ /* Path of clang executable */
+ const char *clang_path;
+ /*
+ * Template of clang bpf compiling. 5 env variables
+ * can be used:
+ * $CLANG_EXEC: Path to clang.
+ * $CLANG_OPTIONS: Extra options to clang.
+ * $KERNEL_INC_OPTIONS: Kernel include directories.
+ * $WORKING_DIR: Kernel source directory.
+ * $CLANG_SOURCE: Source file to be compiled.
+ */
+ const char *clang_bpf_cmd_template;
+ /* Will be filled in $CLANG_OPTIONS */
+ const char *clang_opt;
+ /* Where to find kbuild system */
+ const char *kbuild_dir;
+ /*
+ * Arguments passed to make, like 'ARCH=arm' if doing cross
+ * compiling. Should not be used for dynamic compiling.
+ */
+ const char *kbuild_opts;
+};
+
+extern struct llvm_param llvm_param;
+extern int perf_llvm_config(const char *var, const char *value);
+#endif
--
2.1.0
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Ingo Molnar <mingo@kernel.org> |
|---|---|
| Date | 2015-08-08 10:10 +0200 |
| Subject | Re: [GIT PULL 00/24] perf/ebpf lib + llvm/clang building infrastructure |
| Message-ID | <pV7mx-1iN-3@gated-at.bofh.it> |
| In reply to | #1202778 |
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote: > Hi Ingo, > > This is up to a test that checks that the infrastructure for getting > a C source file and build it to a form that can then be used to upload it to > the kernel is working. > > Wang has a tree where we go all the way to passing a .c file as an > --event, but I thought about breaking the patchkit up to what is settled and > the "perf test -v LLVM" point looks like a good cutoff point for demoing/testing > what is in this patchkit. Fair enough! > It shouldn't affect people without the environment needed, as well it > should check the environment for sanity and provide info about how to get it > working, be it in the changeset logs, the docs and on tool output messages.o > > If you find anything in it that needs fixing, please let us know if you > think we should fix it before merging it to this point or if something can be > fixed in follow up patches. > > Wang's repo, rebased, almost builds, he should be refreshing this soon, > fixing those trailing whitespace issues, that is stopping the rebase here: > > [acme@zoo linux]$ git remote -v | grep wang | head -1 > wangnan.github https://github.com/WangNan0/linux.git (fetch) > [acme@zoo linux]$ git checkout -b ebpf-test wangnan.github/ebpf > Branch ebpf-test set up to track remote branch ebpf from wangnan.github. > Switched to a new branch 'ebpf-test' > [acme@zoo linux]$ git rebase perf/ebpf > First, rewinding head to replay your work on top of it... > Applying: perf tests: Add LLVM test for eBPF on-the-fly compiling > Using index info to reconstruct a base tree... > M tools/perf/tests/Build > M tools/perf/tests/builtin-test.c > M tools/perf/tests/tests.h > M tools/perf/util/llvm-utils.c > M tools/perf/util/llvm-utils.h > Falling back to patching base and 3-way merge... > No changes -- Patch already applied. > Applying: perf tools: Make perf depend on libbpf > Using index info to reconstruct a base tree... > M tools/perf/MANIFEST > Falling back to patching base and 3-way merge... > Auto-merging tools/perf/MANIFEST > Applying: perf ebpf: Add the libbpf glue > Applying: perf tools: Enable passing bpf object file to --event > Applying: perf tools: Parse probe points of eBPF programs during preparation > Applying: perf probe: Attach trace_probe_event with perf_probe_event > Applying: perf record: Probe at kprobe points > Applying: perf record: Load all eBPF object into kernel > Applying: perf tools: Add bpf_fd field to evsel and config it > Applying: perf tools: Attach eBPF program to perf event > Applying: perf tools: Suppress probing messages when probing by BPF loading > Applying: perf record: Add clang options for compiling BPF scripts > Applying: perf tools: Infrastructure for compiling scriptlets when passing '.c' to --event > Applying: perf tests: Enforce LLVM test for BPF test > Applying: perf test: Enable 'perf test' run as test targets > tools/perf/tests/builtin-test.c:279: trailing whitespace. > + /* > [acme@zoo linux]$ > > After that whitespace thing is fixed, you'll get to a point where 'perf > test -v BPF' will show you all the steps involved in, from a .c file do all the > build process and loading, attaching to a kprobe, etc that we discussed, but > those extra patches need more working before I can submit to you. > > Otherwise, please consider pulling, > > - Arnaldo > > The following changes since commit 1354ac6ad84395660f551d0614a6ca39e5bfe8e3: > > Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-08-07 09:11:30 +0200) > > are available in the git repository at: > > git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-ebpf-for-mingo > > for you to fetch changes up to 9bc898c7019383b6aa2ae6cb2928c4ca926449f0: > > perf tests: Add LLVM test for eBPF on-the-fly compiling (2015-08-07 10:57:24 -0300) > > ---------------------------------------------------------------- > perf/ebpf library + llvm/clang infrastructure > > Infrastructure: > > - library for interfacing with the kernel eBPF infrastructure, with > tools/perf/ targeted as a first user (Wang Nan) > > - llvm/clang infrastructure for building BPF object files from C source > code (Wang Nan) > > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> > > ---------------------------------------------------------------- > Wang Nan (24): > bpf tools: Introduce 'bpf' library and add bpf feature check > bpf tools: Allow caller to set printing function > bpf tools: Open eBPF object file and do basic validation > bpf tools: Read eBPF object from buffer > bpf tools: Check endianness and make libbpf fail early > bpf tools: Iterate over ELF sections to collect information > bpf tools: Collect version and license from ELF sections > bpf tools: Collect map definitions from 'maps' section > bpf tools: Collect symbol table from SHT_SYMTAB section > bpf tools: Collect eBPF programs from their own sections > bpf tools: Collect relocation sections from SHT_REL sections > bpf tools: Record map accessing instructions for each program > bpf tools: Add bpf.c/h for common bpf operations > bpf tools: Create eBPF maps defined in an object file > bpf tools: Relocate eBPF programs > bpf tools: Introduce bpf_load_program() to bpf.c > bpf tools: Load eBPF programs in object files into kernel > bpf tools: Introduce accessors for struct bpf_program > bpf tools: Link all bpf objects onto a list > perf tools: Introduce llvm config options > perf tools: Call clang to compile C source to object code > perf tools: Auto detecting kernel build directory > perf tools: Auto detecting kernel include options > perf tests: Add LLVM test for eBPF on-the-fly compiling > > tools/build/feature/Makefile | 6 +- > tools/build/feature/test-bpf.c | 18 + > tools/lib/bpf/.gitignore | 2 + > tools/lib/bpf/Build | 1 + > tools/lib/bpf/Makefile | 195 ++++++++ > tools/lib/bpf/bpf.c | 85 ++++ > tools/lib/bpf/bpf.h | 23 + > tools/lib/bpf/libbpf.c | 1037 +++++++++++++++++++++++++++++++++++++++ > tools/lib/bpf/libbpf.h | 81 +++ > tools/perf/MANIFEST | 1 + > tools/perf/tests/Build | 1 + > tools/perf/tests/builtin-test.c | 4 + > tools/perf/tests/llvm.c | 98 ++++ > tools/perf/tests/tests.h | 1 + > tools/perf/util/Build | 1 + > tools/perf/util/config.c | 4 + > tools/perf/util/llvm-utils.c | 408 +++++++++++++++ > tools/perf/util/llvm-utils.h | 49 ++ > 18 files changed, 2014 insertions(+), 1 deletion(-) > create mode 100644 tools/build/feature/test-bpf.c > create mode 100644 tools/lib/bpf/.gitignore > create mode 100644 tools/lib/bpf/Build > create mode 100644 tools/lib/bpf/Makefile > create mode 100644 tools/lib/bpf/bpf.c > create mode 100644 tools/lib/bpf/bpf.h > create mode 100644 tools/lib/bpf/libbpf.c > create mode 100644 tools/lib/bpf/libbpf.h > create mode 100644 tools/perf/tests/llvm.c > create mode 100644 tools/perf/util/llvm-utils.c > create mode 100644 tools/perf/util/llvm-utils.h Pulled, thanks a lot Arnaldo! Ingo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [standalone]
Page 2 of 2 — ← Prev page 1 [2]
Back to top | Article view | linux.kernel
csiph-web