* [GIT PULL 0/9] perf/urgent fixes
@ 2017-09-12 19:24 Arnaldo Carvalho de Melo
2017-09-12 19:24 ` [PATCH 1/9] tools include linux: Guard against redefinition of some macros Arnaldo Carvalho de Melo
` (10 more replies)
0 siblings, 11 replies; 24+ messages in thread
From: Arnaldo Carvalho de Melo @ 2017-09-12 19:24 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, linux-perf-users, Arnaldo Carvalho de Melo,
Adrian Hunter, David Ahern, Jiri Olsa, Milian Wolff,
Namhyung Kim, Peter Zijlstra, Taeung Song, Wang Nan, Yao Jin,
Arnaldo Carvalho de Melo
Hi Ingo,
So here it is the fixes in perf-core-for-mingo-4.14-20170912, as
requested, plus one last minute fix from Milian Wolff that helps with
using perf as an AppImage[1].
- Arnaldo
[1] http://appimage.org/
Test results at the end of this message, as usual.
The following changes since commit 770e96125515daf1c7bc179323f2e0d488dfe6ac:
Merge tag 'perf-core-for-mingo-4.14-20170901' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent (2017-09-05 07:14:28 +0200)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-urgent-for-mingo-4.14-20170912
for you to fetch changes up to dfc9eec7716cc0a9f7eb743c703d74cd2d6085a0:
perf stat: Wait for the correct child (2017-09-12 12:49:13 -0300)
----------------------------------------------------------------
perf/urgent fixes:
- Fix TUI progress bar when delta from new total from that of the
previous update is greater than the progress "step" (screen width
progress bar block)) (Jiri Olsa)
- Make tools/lib/api make DEBUG=1 build use -D_FORTIFY_SOURCE=2 not
to cripple debuginfo, just like tools/perf/ does (Jiri Olsa)
- Avoid leaking the 'perf.data' file to workloads started from the
'perf record' command line by using the O_CLOEXEC open flag (Jiri Olsa)
- Fix building when libunwind's 'unwind.h' file is present in the
include path, clashing with tools/perf/util/unwind.h (Milian Wolff)
- Check per .perfconfig section entry flag, not just per section (Taeung Song)
- Support running perf binaries with a dash in their name, needed to
run perf as an AppImage (Milian Wolff)
- Wait for the right child by using waitpid() when running workloads
from 'perf stat', also to fix using perf as an AppImage (Milian Wolff)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Arnaldo Carvalho de Melo (1):
tools include linux: Guard against redefinition of some macros
Jiri Olsa (4):
tools lib api: Fix make DEBUG=1 build
perf tools: Open perf.data with O_CLOEXEC flag
perf ui progress: Make sure we always define step value
perf ui progress: Fix progress update
Milian Wolff (3):
perf tests: Fix compile when libunwind's unwind.h is available
perf tools: Support running perf binaries with a dash in their name
perf stat: Wait for the correct child
Taeung Song (1):
perf config: Check not only section->from_system_config but also item's
tools/include/linux/compiler-gcc.h | 9 ++++++---
tools/lib/api/Makefile | 8 +++++++-
tools/perf/builtin-config.c | 2 +-
tools/perf/builtin-stat.c | 2 +-
tools/perf/perf.c | 14 ++++++++++----
tools/perf/tests/dwarf-unwind.c | 2 +-
tools/perf/ui/progress.c | 9 +++++++--
tools/perf/util/data.c | 13 ++++++++++++-
8 files changed, 45 insertions(+), 14 deletions(-)
Test results:
The first ones are container (docker) based builds of tools/perf with and
without libelf support, objtool where it is supported and samples/bpf/, ditto.
Where clang is available, it is also used to build perf with/without libelf.
Several are cross builds, the ones with -x-ARCH, and the android one, and those
may not have all the features built, due to lack of multi-arch devel packages,
available and being used so far on just a few, like
debian:experimental-x-{arm64,mipsel}.
The 'perf test' one will perform a variety of tests exercising
tools/perf/util/, tools/lib/{bpf,traceevent,etc}, as well as run perf
commands with a variety of command line event specifications to then
intercept the sys_perf_event syscall to check that the perf_event_attr
fields are set up as expected, among a variety of other unit tests.
The 'perf test' also runs shell scripts exercising the tools, checking
if they affect the system in certain ways, like setting up kprobes and
uprobes, request callchains for well known programs and check that they
are the expected ones, see if 'perf trace' beautifies system call
arguments correctly, etc.
Additionally, a new set of tests, script based, runs the tools in a live system,
setting probes in place that then gets used by 'perf trace', with its output
compared against expected results.
Then there is the 'make -C tools/perf build-test' ones, that build tools/perf/
with a variety of feature sets, exercising the build with an incomplete set of
features as well as with a complete one. It is planned to have it run on each
of the containers mentioned above, using some container orchestration
infrastructure. Get in contact if interested in helping having this in place.
# dm
1 alpine:3.4: Ok
2 alpine:3.5: Ok
3 alpine:3.6: Ok
4 alpine:edge: Ok
5 android-ndk:r12b-arm: Ok
6 android-ndk:r15c-arm: Ok
7 archlinux:latest: Ok
8 centos:5: Ok
9 centos:6: Ok
10 centos:7: Ok
11 debian:7: Ok
12 debian:8: Ok
13 debian:9: Ok
14 debian:experimental: Ok
15 debian:experimental-x-arm64: Ok
16 debian:experimental-x-mips: Ok
17 debian:experimental-x-mips64: Ok
18 debian:experimental-x-mipsel: Ok
19 fedora:20: Ok
20 fedora:21: Ok
21 fedora:22: Ok
22 fedora:23: Ok
23 fedora:24: Ok
24 fedora:24-x-ARC-uClibc: Ok
25 fedora:25: Ok
26 fedora:26: Ok
27 fedora:rawhide: Ok
28 mageia:5: Ok
29 opensuse:13.2: Ok
30 opensuse:42.1: Ok
31 opensuse:42.2: Ok
32 opensuse:42.3: Ok
33 opensuse:tumbleweed: Ok
34 oraclelinux:6: Ok
35 oraclelinux:7: Ok
36 ubuntu:12.04.5: Ok
37 ubuntu:14.04.4: Ok
38 ubuntu:14.04.4-x-linaro-arm64: Ok
39 ubuntu:15.10: Ok
40 ubuntu:16.04: Ok
41 ubuntu:16.04-x-arm: Ok
42 ubuntu:16.04-x-arm64: Ok
43 ubuntu:16.04-x-powerpc: Ok
44 ubuntu:16.04-x-powerpc64: Ok
45 ubuntu:16.04-x-powerpc64el: Ok
46 ubuntu:16.04-x-s390: Ok
47 ubuntu:16.10: Ok
48 ubuntu:17.04: Ok
49 ubuntu:17.10: Ok
#
# uname -a
Linux jouet 4.13.0-rc7+ #3 SMP Sat Sep 2 09:04:44 -03 2017 x86_64 x86_64 x86_64 GNU/Linux
# perf test
1: vmlinux symtab matches kallsyms : Ok
2: Detect openat syscall event : Ok
3: Detect openat syscall event on all cpus : Ok
4: Read samples using the mmap interface : Ok
5: Test data source output : Ok
6: Parse event definition strings : Ok
7: Simple expression parser : Ok
8: PERF_RECORD_* events & perf_sample fields : Ok
9: Parse perf pmu format : Ok
10: DSO data read : Ok
11: DSO data cache : Ok
12: DSO data reopen : Ok
13: Roundtrip evsel->name : Ok
14: Parse sched tracepoints fields : Ok
15: syscalls:sys_enter_openat event fields : Ok
16: Setup struct perf_event_attr : Ok
17: Match and link multiple hists : Ok
18: 'import perf' in python : Ok
19: Breakpoint overflow signal handler : Ok
20: Breakpoint overflow sampling : Ok
21: Number of exit events of a simple workload : Ok
22: Software clock events period values : Ok
23: Object code reading : Ok
24: Sample parsing : Ok
25: Use a dummy software event to keep tracking : Ok
26: Parse with no sample_id_all bit set : Ok
27: Filter hist entries : Ok
28: Lookup mmap thread : Ok
29: Share thread mg : Ok
30: Sort output of hist entries : Ok
31: Cumulate child hist entries : Ok
32: Track with sched_switch : Ok
33: Filter fds with revents mask in a fdarray : Ok
34: Add fd to a fdarray, making it autogrow : Ok
35: kmod_path__parse : Ok
36: Thread map : Ok
37: LLVM search and compile :
37.1: Basic BPF llvm compile : Ok
37.2: kbuild searching : Ok
37.3: Compile source for BPF prologue generation : Ok
37.4: Compile source for BPF relocation : Ok
38: Session topology : Ok
39: BPF filter :
39.1: Basic BPF filtering : Ok
39.2: BPF pinning : Ok
39.3: BPF prologue generation : Ok
39.4: BPF relocation checker : Ok
40: Synthesize thread map : Ok
41: Remove thread map : Ok
42: Synthesize cpu map : Ok
43: Synthesize stat config : Ok
44: Synthesize stat : Ok
45: Synthesize stat round : Ok
46: Synthesize attr update : Ok
47: Event times : Ok
48: Read backward ring buffer : Ok
49: Print cpu map : Ok
50: Probe SDT events : Ok
51: is_printable_array : Ok
52: Print bitmap : Ok
53: perf hooks : Ok
54: builtin clang support : Skip (not compiled in)
55: unit_number__scnprintf : Ok
56: x86 rdpmc : Ok
57: Convert perf time to TSC : Ok
58: DWARF unwind : Ok
59: x86 instruction decoder - new instructions : Ok
60: Intel cqm nmi context read : Skip
61: Use vfs_getname probe to get syscall args filenames : Ok
62: probe libc's inet_pton & backtrace it with ping : Ok
63: Check open filename arg using perf trace + vfs_getname: Ok
64: Add vfs_getname probe to get syscall args filenames : Ok
#
$ make -C tools/perf build-test
make: Entering directory '/home/acme/git/linux/tools/perf'
- tarpkg: ./tests/perf-targz-src-pkg .
make_util_map_o_O: make util/map.o
make_no_demangle_O: make NO_DEMANGLE=1
make_doc_O: make doc
make_no_libperl_O: make NO_LIBPERL=1
make_clean_all_O: make clean all
make_tags_O: make tags
make_util_pmu_bison_o_O: make util/pmu-bison.o
make_no_libelf_O: make NO_LIBELF=1
make_with_babeltrace_O: make LIBBABELTRACE=1
make_no_libbpf_O: make NO_LIBBPF=1
make_no_libpython_O: make NO_LIBPYTHON=1
make_no_newt_O: make NO_NEWT=1
make_debug_O: make DEBUG=1
make_no_libbionic_O: make NO_LIBBIONIC=1
make_with_clangllvm_O: make LIBCLANGLLVM=1
make_static_O: make LDFLAGS=-static
make_perf_o_O: make perf.o
make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1
make_install_O: make install
make_no_libunwind_O: make NO_LIBUNWIND=1
make_install_prefix_slash_O: make install prefix=/tmp/krava/
make_no_gtk2_O: make NO_GTK2=1
make_no_libaudit_O: make NO_LIBAUDIT=1
make_no_libnuma_O: make NO_LIBNUMA=1
make_no_backtrace_O: make NO_BACKTRACE=1
make_install_prefix_O: make install prefix=/tmp/krava
make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1
make_no_libdw_dwarf_unwind_O: make NO_LIBDW_DWARF_UNWIND=1
make_no_slang_O: make NO_SLANG=1
make_no_auxtrace_O: make NO_AUXTRACE=1
make_minimal_O: make NO_LIBPERL=1 NO_LIBPYTHON=1 NO_NEWT=1 NO_GTK2=1 NO_DEMANGLE=1 NO_LIBELF=1 NO_LIBUNWIND=1 NO_BACKTRACE=1 NO_LIBNUMA=1 NO_LIBAUDIT=1 NO_LIBBIONIC=1 NO_LIBDW_DWARF_UNWIND=1 NO_AUXTRACE=1 NO_LIBBPF=1 NO_LIBCRYPTO=1 NO_SDT=1 NO_JVMTI=1
make_pure_O: make
make_install_bin_O: make install-bin
make_help_O: make help
OK
make: Leaving directory '/home/acme/git/linux/tools/perf'
$
^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH 1/9] tools include linux: Guard against redefinition of some macros
2017-09-12 19:24 [GIT PULL 0/9] perf/urgent fixes Arnaldo Carvalho de Melo
@ 2017-09-12 19:24 ` Arnaldo Carvalho de Melo
2017-09-12 19:24 ` [PATCH 2/9] perf tests: Fix compile when libunwind's unwind.h is available Arnaldo Carvalho de Melo
` (9 subsequent siblings)
10 siblings, 0 replies; 24+ messages in thread
From: Arnaldo Carvalho de Melo @ 2017-09-12 19:24 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, linux-perf-users, Arnaldo Carvalho de Melo,
Adrian Hunter, Jiri Olsa, Namhyung Kim, Wang Nan
From: Arnaldo Carvalho de Melo <acme@redhat.com>
When cross building to android r15c (and older versions) on Fedora 26
we notice these:
/opt/android-ndk-r15c/platforms/android-24/arch-arm/usr/include/sys/cdefs.h:332:0: note: this is the location of the previous definition
For __aligned, __packed and __noreturn, so guard those with ifdefs to
avoid drowning useful warnings in these.
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-d7w3fa9c22dtmrwbedos6ie1@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/include/linux/compiler-gcc.h | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/tools/include/linux/compiler-gcc.h b/tools/include/linux/compiler-gcc.h
index bd39b2090ad1..3723b9f8f964 100644
--- a/tools/include/linux/compiler-gcc.h
+++ b/tools/include/linux/compiler-gcc.h
@@ -21,11 +21,14 @@
#define __must_be_array(a) BUILD_BUG_ON_ZERO(__same_type((a), &(a)[0]))
#define noinline __attribute__((noinline))
-
+#ifndef __packed
#define __packed __attribute__((packed))
-
+#endif
+#ifndef __noreturn
#define __noreturn __attribute__((noreturn))
-
+#endif
+#ifndef __aligned
#define __aligned(x) __attribute__((aligned(x)))
+#endif
#define __printf(a, b) __attribute__((format(printf, a, b)))
#define __scanf(a, b) __attribute__((format(scanf, a, b)))
--
2.13.5
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 2/9] perf tests: Fix compile when libunwind's unwind.h is available
2017-09-12 19:24 [GIT PULL 0/9] perf/urgent fixes Arnaldo Carvalho de Melo
2017-09-12 19:24 ` [PATCH 1/9] tools include linux: Guard against redefinition of some macros Arnaldo Carvalho de Melo
@ 2017-09-12 19:24 ` Arnaldo Carvalho de Melo
2017-09-12 19:24 ` [PATCH 3/9] tools lib api: Fix make DEBUG=1 build Arnaldo Carvalho de Melo
` (8 subsequent siblings)
10 siblings, 0 replies; 24+ messages in thread
From: Arnaldo Carvalho de Melo @ 2017-09-12 19:24 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, linux-perf-users, Milian Wolff, David Ahern,
Jiri Olsa, Namhyung Kim, Peter Zijlstra, Yao Jin,
Arnaldo Carvalho de Melo
From: Milian Wolff <milian.wolff@kdab.com>
When cross compiling perf and I want to link against a self-compiled
libunwind, I usually make the custom path where the libunwind headers
exist visible by adding the libunwind prefix to the include path when
compiling perf, i.e.:
~~~~~
$ ls $HOME/projects/compiled/other/include/
libunwind-coredump.h libunwind.h libunwind-x86_64.h
libunwind-common.h libunwind-dynamic.h libunwind-ptrace.h
unwind.h
$ make EXTRA_CFLAGS="-I$HOME/projects/compiled/other/include/
~~~~~~
Note the `unwind.h` header from libunwind which leads to compile
errors when compiling tests/dwarf-unwind.c, since it shadows perf's
util/unwind.h:
~~~~~
tests/dwarf-unwind.c:41:32: error: ‘struct unwind_entry’ declared inside parameter list will not be visible outside of this definition or declaration [-Werror]
static int unwind_entry(struct unwind_entry *entry, void *arg)
^~~~~~~~~~~~
tests/dwarf-unwind.c: In function ‘unwind_entry’:
tests/dwarf-unwind.c:44:22: error: dereferencing pointer to incomplete type ‘struct unwind_entry’
char *symbol = entry->sym ? entry->sym->name : NULL;
^~
tests/dwarf-unwind.c: In function ‘unwind_thread’:
tests/dwarf-unwind.c:92:8: error: implicit declaration of function ‘unwind__get_entries’; did you mean ‘unwind_entry’? [-Werror=implicit-function-declaration]
err = unwind__get_entries(unwind_entry, &cnt, thread,
^~~~~~~~~~~~~~~~~~~
unwind_entry
tests/dwarf-unwind.c:92:8: error: nested extern declaration of ‘unwind__get_entries’ [-Werror=nested-externs]
~~~~~~
Fix this compile error by specificing an explicit include of perf's
unwind.h in the util folder.
Signed-off-by: Milian Wolff <milian.wolff@kdab.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Yao Jin <yao.jin@linux.intel.com>
Link: http://lkml.kernel.org/r/20170906150209.12579-1-milian.wolff@kdab.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/tests/dwarf-unwind.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/perf/tests/dwarf-unwind.c b/tools/perf/tests/dwarf-unwind.c
index 2a7b9b47bbcb..9ba1d216a89f 100644
--- a/tools/perf/tests/dwarf-unwind.c
+++ b/tools/perf/tests/dwarf-unwind.c
@@ -6,7 +6,7 @@
#include "debug.h"
#include "machine.h"
#include "event.h"
-#include "unwind.h"
+#include "../util/unwind.h"
#include "perf_regs.h"
#include "map.h"
#include "thread.h"
--
2.13.5
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 3/9] tools lib api: Fix make DEBUG=1 build
2017-09-12 19:24 [GIT PULL 0/9] perf/urgent fixes Arnaldo Carvalho de Melo
2017-09-12 19:24 ` [PATCH 1/9] tools include linux: Guard against redefinition of some macros Arnaldo Carvalho de Melo
2017-09-12 19:24 ` [PATCH 2/9] perf tests: Fix compile when libunwind's unwind.h is available Arnaldo Carvalho de Melo
@ 2017-09-12 19:24 ` Arnaldo Carvalho de Melo
2017-09-12 19:24 ` [PATCH 4/9] perf tools: Open perf.data with O_CLOEXEC flag Arnaldo Carvalho de Melo
` (7 subsequent siblings)
10 siblings, 0 replies; 24+ messages in thread
From: Arnaldo Carvalho de Melo @ 2017-09-12 19:24 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, linux-perf-users, Jiri Olsa, David Ahern,
Namhyung Kim, Peter Zijlstra, Arnaldo Carvalho de Melo
From: Jiri Olsa <jolsa@kernel.org>
Do not use -D_FORTIFY_SOURCE=2 for DEBUG build as it seems to mess up
with debuginfo, which results in bad gdb experience.
We already do that for tools/perf/.
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/20170908084621.31595-1-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/lib/api/Makefile | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/tools/lib/api/Makefile b/tools/lib/api/Makefile
index 4563ba7ede6f..1e83e3c07448 100644
--- a/tools/lib/api/Makefile
+++ b/tools/lib/api/Makefile
@@ -17,13 +17,19 @@ MAKEFLAGS += --no-print-directory
LIBFILE = $(OUTPUT)libapi.a
CFLAGS := $(EXTRA_WARNINGS) $(EXTRA_CFLAGS)
-CFLAGS += -ggdb3 -Wall -Wextra -std=gnu99 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fPIC
+CFLAGS += -ggdb3 -Wall -Wextra -std=gnu99 -U_FORTIFY_SOURCE -fPIC
+ifeq ($(DEBUG),0)
ifeq ($(CC_NO_CLANG), 0)
CFLAGS += -O3
else
CFLAGS += -O6
endif
+endif
+
+ifeq ($(DEBUG),0)
+ CFLAGS += -D_FORTIFY_SOURCE
+endif
# Treat warnings as errors unless directed not to
ifneq ($(WERROR),0)
--
2.13.5
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 4/9] perf tools: Open perf.data with O_CLOEXEC flag
2017-09-12 19:24 [GIT PULL 0/9] perf/urgent fixes Arnaldo Carvalho de Melo
` (2 preceding siblings ...)
2017-09-12 19:24 ` [PATCH 3/9] tools lib api: Fix make DEBUG=1 build Arnaldo Carvalho de Melo
@ 2017-09-12 19:24 ` Arnaldo Carvalho de Melo
2017-09-12 19:24 ` [PATCH 5/9] perf ui progress: Make sure we always define step value Arnaldo Carvalho de Melo
` (6 subsequent siblings)
10 siblings, 0 replies; 24+ messages in thread
From: Arnaldo Carvalho de Melo @ 2017-09-12 19:24 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, linux-perf-users, Jiri Olsa, David Ahern,
Namhyung Kim, Peter Zijlstra, Arnaldo Carvalho de Melo
From: Jiri Olsa <jolsa@kernel.org>
Do not carry the perf.data file descriptor into the workload process and
close it when perf executes the workload.
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/20170908084621.31595-2-jolsa@kernel.org
[ Add definitions for O_CLOEXEC for older systems ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/data.c | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/tools/perf/util/data.c b/tools/perf/util/data.c
index e84bbc8ec058..263f5a906ba5 100644
--- a/tools/perf/util/data.c
+++ b/tools/perf/util/data.c
@@ -10,6 +10,16 @@
#include "util.h"
#include "debug.h"
+#ifndef O_CLOEXEC
+#ifdef __sparc__
+#define O_CLOEXEC 0x400000
+#elif defined(__alpha__) || defined(__hppa__)
+#define O_CLOEXEC 010000000
+#else
+#define O_CLOEXEC 02000000
+#endif
+#endif
+
static bool check_pipe(struct perf_data_file *file)
{
struct stat st;
@@ -96,7 +106,8 @@ static int open_file_write(struct perf_data_file *file)
if (check_backup(file))
return -1;
- fd = open(file->path, O_CREAT|O_RDWR|O_TRUNC, S_IRUSR|S_IWUSR);
+ fd = open(file->path, O_CREAT|O_RDWR|O_TRUNC|O_CLOEXEC,
+ S_IRUSR|S_IWUSR);
if (fd < 0)
pr_err("failed to open %s : %s\n", file->path,
--
2.13.5
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 5/9] perf ui progress: Make sure we always define step value
2017-09-12 19:24 [GIT PULL 0/9] perf/urgent fixes Arnaldo Carvalho de Melo
` (3 preceding siblings ...)
2017-09-12 19:24 ` [PATCH 4/9] perf tools: Open perf.data with O_CLOEXEC flag Arnaldo Carvalho de Melo
@ 2017-09-12 19:24 ` Arnaldo Carvalho de Melo
2017-09-12 19:24 ` [PATCH 6/9] perf ui progress: Fix progress update Arnaldo Carvalho de Melo
` (5 subsequent siblings)
10 siblings, 0 replies; 24+ messages in thread
From: Arnaldo Carvalho de Melo @ 2017-09-12 19:24 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, linux-perf-users, Jiri Olsa, David Ahern,
Namhyung Kim, Peter Zijlstra, Arnaldo Carvalho de Melo
From: Jiri Olsa <jolsa@kernel.org>
Unlikely, but we could have ui_progress__init being called with total <
16, which would set the next and step variables to 0. That would force
unnecessary ui_progress__ops->update calls because 'next' would never
raise.
Forcing the next and step values to be always > 0.
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/20170908120510.22515-2-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/ui/progress.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/perf/ui/progress.c b/tools/perf/ui/progress.c
index a0f24c7115c5..a9c15804b1f6 100644
--- a/tools/perf/ui/progress.c
+++ b/tools/perf/ui/progress.c
@@ -25,7 +25,7 @@ void ui_progress__update(struct ui_progress *p, u64 adv)
void ui_progress__init(struct ui_progress *p, u64 total, const char *title)
{
p->curr = 0;
- p->next = p->step = total / 16;
+ p->next = p->step = total / 16 ?: 1;
p->total = total;
p->title = title;
--
2.13.5
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 6/9] perf ui progress: Fix progress update
2017-09-12 19:24 [GIT PULL 0/9] perf/urgent fixes Arnaldo Carvalho de Melo
` (4 preceding siblings ...)
2017-09-12 19:24 ` [PATCH 5/9] perf ui progress: Make sure we always define step value Arnaldo Carvalho de Melo
@ 2017-09-12 19:24 ` Arnaldo Carvalho de Melo
2017-09-12 19:24 ` [PATCH 7/9] perf config: Check not only section->from_system_config but also item's Arnaldo Carvalho de Melo
` (4 subsequent siblings)
10 siblings, 0 replies; 24+ messages in thread
From: Arnaldo Carvalho de Melo @ 2017-09-12 19:24 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, linux-perf-users, Jiri Olsa, David Ahern,
Namhyung Kim, Peter Zijlstra, Arnaldo Carvalho de Melo
From: Jiri Olsa <jolsa@kernel.org>
We currently update the 'next' variable only with a single step value.
But it's possible the 'adv' update is bigger than single 'step' value.
This would leave 'next' value under counted and force unnecessary
ui_progress__ops->update calls.
Calculate the amount of steps we need for 'adv' update and increase the
'next' with that amounts of steps.
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/20170908120510.22515-3-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/ui/progress.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/tools/perf/ui/progress.c b/tools/perf/ui/progress.c
index a9c15804b1f6..ae91c8148edf 100644
--- a/tools/perf/ui/progress.c
+++ b/tools/perf/ui/progress.c
@@ -1,3 +1,4 @@
+#include <linux/kernel.h>
#include "../cache.h"
#include "progress.h"
@@ -14,10 +15,14 @@ struct ui_progress_ops *ui_progress__ops = &null_progress__ops;
void ui_progress__update(struct ui_progress *p, u64 adv)
{
+ u64 last = p->curr;
+
p->curr += adv;
if (p->curr >= p->next) {
- p->next += p->step;
+ u64 nr = DIV_ROUND_UP(p->curr - last, p->step);
+
+ p->next += nr * p->step;
ui_progress__ops->update(p);
}
}
--
2.13.5
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 7/9] perf config: Check not only section->from_system_config but also item's
2017-09-12 19:24 [GIT PULL 0/9] perf/urgent fixes Arnaldo Carvalho de Melo
` (5 preceding siblings ...)
2017-09-12 19:24 ` [PATCH 6/9] perf ui progress: Fix progress update Arnaldo Carvalho de Melo
@ 2017-09-12 19:24 ` Arnaldo Carvalho de Melo
2017-09-12 19:24 ` [PATCH 8/9] perf tools: Support running perf binaries with a dash in their name Arnaldo Carvalho de Melo
` (3 subsequent siblings)
10 siblings, 0 replies; 24+ messages in thread
From: Arnaldo Carvalho de Melo @ 2017-09-12 19:24 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, linux-perf-users, Taeung Song, Jiri Olsa,
Namhyung Kim, Arnaldo Carvalho de Melo
From: Taeung Song <treeze.taeung@gmail.com>
Currently section->from_system_config is being checked multiple times.
item->from_system_config should be checked instead, when iterating thru
the items in a section. Fix it.
Signed-off-by: Taeung Song <treeze.taeung@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: http://lkml.kernel.org/r/1504754325-9724-1-git-send-email-treeze.taeung@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/builtin-config.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/perf/builtin-config.c b/tools/perf/builtin-config.c
index 3ddcc6e2abeb..a1d82e33282c 100644
--- a/tools/perf/builtin-config.c
+++ b/tools/perf/builtin-config.c
@@ -59,7 +59,7 @@ static int set_config(struct perf_config_set *set, const char *file_name,
fprintf(fp, "[%s]\n", section->name);
perf_config_items__for_each_entry(§ion->items, item) {
- if (!use_system_config && section->from_system_config)
+ if (!use_system_config && item->from_system_config)
continue;
if (item->value)
fprintf(fp, "\t%s = %s\n",
--
2.13.5
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 8/9] perf tools: Support running perf binaries with a dash in their name
2017-09-12 19:24 [GIT PULL 0/9] perf/urgent fixes Arnaldo Carvalho de Melo
` (6 preceding siblings ...)
2017-09-12 19:24 ` [PATCH 7/9] perf config: Check not only section->from_system_config but also item's Arnaldo Carvalho de Melo
@ 2017-09-12 19:24 ` Arnaldo Carvalho de Melo
2017-09-12 19:24 ` [PATCH 9/9] perf stat: Wait for the correct child Arnaldo Carvalho de Melo
` (2 subsequent siblings)
10 siblings, 0 replies; 24+ messages in thread
From: Arnaldo Carvalho de Melo @ 2017-09-12 19:24 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, linux-perf-users, Milian Wolff, Namhyung Kim,
Peter Zijlstra, Yao Jin, Arnaldo Carvalho de Melo
From: Milian Wolff <milian.wolff@kdab.com>
Previously the part behind "perf-" was interpreted as an internal perf
command. If the suffix could not be handled, the execution was stopped.
This makes it impossible to launch perf binaries that got renamed to
have the `perf-` prefix. This is e.g. the case for appimages (e.g.
"perf-x86_64.AppImage"), but would also apply to all other scenarios
where users symlink or rename perf themselves:
Status quo with the broken behavior:
$ ln -s ./perf ./perf-custom-suffix
$ ./perf-custom-suffix list
cannot handle custom-suffix internally$
Also note the missing newline at the end of the error message.
With this patch applied, the above works properly:
$ ./perf-custom-suffix list
List of pre-defined events (to be used in -e):
...
Signed-off-by: Milian Wolff <milian.wolff@kdab.com>
Acked-by: David Ahern <dsahern@gmail.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Yao Jin <yao.jin@linux.intel.com>
Link: http://lkml.kernel.org/r/20170911111422.31903-1-milian.wolff@kdab.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/perf.c | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/tools/perf/perf.c b/tools/perf/perf.c
index e0279babe0c0..2f19e03c5c40 100644
--- a/tools/perf/perf.c
+++ b/tools/perf/perf.c
@@ -467,15 +467,21 @@ int main(int argc, const char **argv)
* - cannot execute it externally (since it would just do
* the same thing over again)
*
- * So we just directly call the internal command handler, and
- * die if that one cannot handle it.
+ * So we just directly call the internal command handler. If that one
+ * fails to handle this, then maybe we just run a renamed perf binary
+ * that contains a dash in its name. To handle this scenario, we just
+ * fall through and ignore the "xxxx" part of the command string.
*/
if (strstarts(cmd, "perf-")) {
cmd += 5;
argv[0] = cmd;
handle_internal_command(argc, argv);
- fprintf(stderr, "cannot handle %s internally", cmd);
- goto out;
+ /*
+ * If the command is handled, the above function does not
+ * return undo changes and fall through in such a case.
+ */
+ cmd -= 5;
+ argv[0] = cmd;
}
if (strstarts(cmd, "trace")) {
#ifdef HAVE_LIBAUDIT_SUPPORT
--
2.13.5
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 9/9] perf stat: Wait for the correct child
2017-09-12 19:24 [GIT PULL 0/9] perf/urgent fixes Arnaldo Carvalho de Melo
` (7 preceding siblings ...)
2017-09-12 19:24 ` [PATCH 8/9] perf tools: Support running perf binaries with a dash in their name Arnaldo Carvalho de Melo
@ 2017-09-12 19:24 ` Arnaldo Carvalho de Melo
2017-09-13 7:26 ` [GIT PULL 0/9] perf/urgent fixes Ingo Molnar
2017-09-13 7:38 ` [PATCH] tools/include: Sync kernel ABI headers with tooling headers Ingo Molnar
10 siblings, 0 replies; 24+ messages in thread
From: Arnaldo Carvalho de Melo @ 2017-09-12 19:24 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, linux-perf-users, Milian Wolff, David Ahern,
Namhyung Kim, Peter Zijlstra, Arnaldo Carvalho de Melo
From: Milian Wolff <milian.wolff@kdab.com>
When packaging the perf userland application into an AppImage, the
wait() call in perf stat returned too early. It turned out that some
other child process exited, but not the one perf stat launched:
$ sudo strace -e fork,execve,clone,wait4 -f ./perf-x86_64.AppImage stat sleep 1
execve("./perf-git.3a73b7f9-x86_64.AppImage", ["./perf-git.3a73b7f9-x86_64.AppIm"..., "stat", "sleep", "1"], 0x7ffec1bbf050 /* 18 vars */) = 0
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f6a6e7efe50) = 3912
strace: Process 3912 attached
[pid 3912] clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f6a6e7efe50) = 3914
strace: Process 3914 attached
[pid 3912] +++ exited with 0 +++
[pid 3911] --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=3912, si_uid=0, si_status=0, si_utime=0, si_stime=0} ---
[pid 3914] clone(strace: Process 3915 attached
child_stack=0x7f6a6d9fefb0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7f6a6d9ff9d0, tls=0x7f6a6d9ff700, child_tidptr=0x7f6a6d9ff9d0) = 3915
[pid 3911] execve("/tmp/.mount_perf-g6VYMpl/AppRun", ["./perf-git.3a73b7f9-x86_64.AppIm"..., "stat", "sleep", "1"], 0x14aab70 /* 21 vars */) = 0
[pid 3911] clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f4ae113c4d0) = 3916
strace: Process 3916 attached
[pid 3911] wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 3912
[pid 3916] execve("/usr/libexec/perf-core/sleep", ["sleep", "1"], 0x27d3650 /* 22 vars */) = -1 ENOENT (No such file or directory)
[pid 3916] execve("/tmp/./sleep", ["sleep", "1"], 0x27d3650 /* 22 vars */) = -1 ENOENT (No such file or directory)
[pid 3916] execve("/home/milian/.bin/sleep", ["sleep", "1"], 0x27d3650 /* 22 vars */) = -1 ENOENT (No such file or directory)
[pid 3916] execve("/usr/lib/icecream/libexec/icecc/bin/sleep", ["sleep", "1"], 0x27d3650 /* 22 vars */) = -1 ENOENT (No such file or directory)
[pid 3916] execve("/ssd2/milian/projects/compiled/other/bin/sleep", ["sleep", "1"], 0x27d3650 /* 22 vars */) = -1 ENOENT (No such file or directory)
[pid 3916] execve("/home/milian/.bin/kf5/sleep", ["sleep", "1"], 0x27d3650 /* 22 vars */) = -1 ENOENT (No such file or directory)
[pid 3916] execve("/ssd2/milian/projects/compiled/kf5/bin/sleep", ["sleep", "1"], 0x27d3650 /* 22 vars */) = -1 ENOENT (No such file or directory)
[pid 3916] execve("/home/milian/projects/compiled/other/bin/sleep", ["sleep", "1"], 0x27d3650 /* 22 vars */) = -1 ENOENT (No such file or directory)
[pid 3916] execve("/home/milian/projects/compiled/kf5/bin/sleep", ["sleep", "1"], 0x27d3650 /* 22 vars */) = -1 ENOENT (No such file or directory)
[pid 3916] execve("/usr/local/sbin/sleep", ["sleep", "1"], 0x27d3650 /* 22 vars */) = -1 ENOENT (No such file or directory)
[pid 3916] execve("/usr/local/bin/sleep", ["sleep", "1"], 0x27d3650 /* 22 vars */) = -1 ENOENT (No such file or directory)
[pid 3916] execve("/usr/bin/sleep", ["sleep", "1"], 0x27d3650 /* 22 vars */
Performance counter stats for 'sleep 1':
<not counted> task-clock
<not counted> context-switches
<not counted> cpu-migrations
<not counted> page-faults
<not counted> cycles
<not counted> instructions
<not counted> branches
<not counted> branch-misses
0.000047194 seconds time elapsed
[pid 3916] --- SIGTERM {si_signo=SIGTERM, si_code=SI_USER, si_pid=3911, si_uid=0} ---
[pid 3916] +++ killed by SIGTERM +++
[pid 3911] --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_KILLED, si_pid=3916, si_uid=0, si_status=SIGTERM, si_utime=0, si_stime=0} ---
[pid 3915] --- SIGPIPE {si_signo=SIGPIPE, si_code=SI_USER, si_pid=3914, si_uid=0} ---
[pid 3911] +++ exited with 0 +++
[pid 3915] --- SIGHUP {si_signo=SIGHUP, si_code=SI_USER, si_pid=3914, si_uid=0} ---
[pid 3915] +++ exited with 0 +++
+++ exited with 0 +++
This patch uses waitpid instead to ensure the call waits for the
debuggee application launched by 'perf stat'. This fixes 'perf stat'
when launched from an AppImage:
$ ./perf-x86_64.AppImage stat sleep 1
Performance counter stats for 'sleep 1':
0.357235 task-clock (msec) # 0.000 CPUs utilized
1 context-switches # 0.003 M/sec
0 cpu-migrations # 0.000 K/sec
50 page-faults # 0.140 M/sec
1269602 cycles # 3.554 GHz
654278 instructions # 0.52 insn per cycle
129963 branches # 363.803 M/sec
7082 branch-misses # 5.45% of all branches
1.000633420 seconds time elapsed
Signed-off-by: Milian Wolff <milian.wolff@kdab.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/20170912152523.4497-1-milian.wolff@kdab.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/builtin-stat.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index 85e992d9215b..69523ed55894 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -707,7 +707,7 @@ static int __run_perf_stat(int argc, const char **argv)
process_interval();
}
}
- wait(&status);
+ waitpid(child_pid, &status, 0);
if (workload_exec_errno) {
const char *emsg = str_error_r(workload_exec_errno, msg, sizeof(msg));
--
2.13.5
^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [GIT PULL 0/9] perf/urgent fixes
2017-09-12 19:24 [GIT PULL 0/9] perf/urgent fixes Arnaldo Carvalho de Melo
` (8 preceding siblings ...)
2017-09-12 19:24 ` [PATCH 9/9] perf stat: Wait for the correct child Arnaldo Carvalho de Melo
@ 2017-09-13 7:26 ` Ingo Molnar
2017-09-13 7:38 ` [PATCH] tools/include: Sync kernel ABI headers with tooling headers Ingo Molnar
10 siblings, 0 replies; 24+ messages in thread
From: Ingo Molnar @ 2017-09-13 7:26 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, linux-perf-users, Adrian Hunter, David Ahern,
Jiri Olsa, Milian Wolff, Namhyung Kim, Peter Zijlstra,
Taeung Song, Wang Nan, Yao Jin, Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Hi Ingo,
>
> So here it is the fixes in perf-core-for-mingo-4.14-20170912, as
> requested, plus one last minute fix from Milian Wolff that helps with
> using perf as an AppImage[1].
>
> - Arnaldo
>
> [1] http://appimage.org/
>
> Test results at the end of this message, as usual.
>
> The following changes since commit 770e96125515daf1c7bc179323f2e0d488dfe6ac:
>
> Merge tag 'perf-core-for-mingo-4.14-20170901' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent (2017-09-05 07:14:28 +0200)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-urgent-for-mingo-4.14-20170912
>
> for you to fetch changes up to dfc9eec7716cc0a9f7eb743c703d74cd2d6085a0:
>
> perf stat: Wait for the correct child (2017-09-12 12:49:13 -0300)
>
> ----------------------------------------------------------------
> perf/urgent fixes:
>
> - Fix TUI progress bar when delta from new total from that of the
> previous update is greater than the progress "step" (screen width
> progress bar block)) (Jiri Olsa)
>
> - Make tools/lib/api make DEBUG=1 build use -D_FORTIFY_SOURCE=2 not
> to cripple debuginfo, just like tools/perf/ does (Jiri Olsa)
>
> - Avoid leaking the 'perf.data' file to workloads started from the
> 'perf record' command line by using the O_CLOEXEC open flag (Jiri Olsa)
>
> - Fix building when libunwind's 'unwind.h' file is present in the
> include path, clashing with tools/perf/util/unwind.h (Milian Wolff)
>
> - Check per .perfconfig section entry flag, not just per section (Taeung Song)
>
> - Support running perf binaries with a dash in their name, needed to
> run perf as an AppImage (Milian Wolff)
>
> - Wait for the right child by using waitpid() when running workloads
> from 'perf stat', also to fix using perf as an AppImage (Milian Wolff)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (1):
> tools include linux: Guard against redefinition of some macros
>
> Jiri Olsa (4):
> tools lib api: Fix make DEBUG=1 build
> perf tools: Open perf.data with O_CLOEXEC flag
> perf ui progress: Make sure we always define step value
> perf ui progress: Fix progress update
>
> Milian Wolff (3):
> perf tests: Fix compile when libunwind's unwind.h is available
> perf tools: Support running perf binaries with a dash in their name
> perf stat: Wait for the correct child
>
> Taeung Song (1):
> perf config: Check not only section->from_system_config but also item's
>
> tools/include/linux/compiler-gcc.h | 9 ++++++---
> tools/lib/api/Makefile | 8 +++++++-
> tools/perf/builtin-config.c | 2 +-
> tools/perf/builtin-stat.c | 2 +-
> tools/perf/perf.c | 14 ++++++++++----
> tools/perf/tests/dwarf-unwind.c | 2 +-
> tools/perf/ui/progress.c | 9 +++++++--
> tools/perf/util/data.c | 13 ++++++++++++-
> 8 files changed, 45 insertions(+), 14 deletions(-)
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH] tools/include: Sync kernel ABI headers with tooling headers
2017-09-12 19:24 [GIT PULL 0/9] perf/urgent fixes Arnaldo Carvalho de Melo
` (9 preceding siblings ...)
2017-09-13 7:26 ` [GIT PULL 0/9] perf/urgent fixes Ingo Molnar
@ 2017-09-13 7:38 ` Ingo Molnar
2017-09-29 20:04 ` [tip:perf/urgent] tools include: " tip-bot for Ingo Molnar
10 siblings, 1 reply; 24+ messages in thread
From: Ingo Molnar @ 2017-09-13 7:38 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, linux-perf-users, Adrian Hunter, David Ahern,
Jiri Olsa, Milian Wolff, Namhyung Kim, Peter Zijlstra,
Taeung Song, Wang Nan, Yao Jin, Arnaldo Carvalho de Melo
Time for a sync with ABI/uapi headers with the upcoming v4.14 kernel.
None of the ABI changes require any source code level changes to our
existing in-kernel tooling code:
- tools/arch/s390/include/uapi/asm/kvm.h:
New KVM_S390_VM_TOD_EXT ABI, not used by in-kernel tooling.
- tools/arch/x86/include/asm/cpufeatures.h:
tools/arch/x86/include/asm/disabled-features.h:
New PCID, SME and VGIF x86 CPU feature bits defined.
- tools/include/asm-generic/hugetlb_encode.h:
tools/include/uapi/asm-generic/mman-common.h:
tools/include/uapi/linux/mman.h:
Two new madvise() flags, plus a hugetlb system call mmap flags
restructuring/extension changes.
- tools/include/uapi/drm/drm.h:
tools/include/uapi/drm/i915_drm.h:
New drm_syncobj_create flags definitions, new drm_syncobj_wait
and drm_syncobj_array ABIs. DRM_I915_PERF_* calls and a new
I915_PARAM_HAS_EXEC_FENCE_ARRAY ABI for the Intel driver.
- tools/include/uapi/linux/bpf.h:
New bpf_sock fields (::mark and ::priority), new XDP_REDIRECT
action, new kvm_ppc_smmu_info fields (::data_keys, instr_keys)
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
tools/arch/s390/include/uapi/asm/kvm.h | 6 +++
tools/arch/x86/include/asm/cpufeatures.h | 2 +
tools/arch/x86/include/asm/disabled-features.h | 4 +-
tools/include/asm-generic/hugetlb_encode.h | 34 +++++++++++++++++
tools/include/uapi/asm-generic/mman-common.h | 14 ++-----
tools/include/uapi/drm/drm.h | 22 +++++++++++
tools/include/uapi/drm/i915_drm.h | 51 +++++++++++++++++++++++++-
tools/include/uapi/linux/bpf.h | 32 ++++++++++------
tools/include/uapi/linux/kvm.h | 3 +-
tools/include/uapi/linux/mman.h | 24 +++++++++++-
10 files changed, 164 insertions(+), 28 deletions(-)
diff --git a/tools/arch/s390/include/uapi/asm/kvm.h b/tools/arch/s390/include/uapi/asm/kvm.h
index 69d09c39bbcd..cd7359e23d86 100644
--- a/tools/arch/s390/include/uapi/asm/kvm.h
+++ b/tools/arch/s390/include/uapi/asm/kvm.h
@@ -88,6 +88,12 @@ struct kvm_s390_io_adapter_req {
/* kvm attributes for KVM_S390_VM_TOD */
#define KVM_S390_VM_TOD_LOW 0
#define KVM_S390_VM_TOD_HIGH 1
+#define KVM_S390_VM_TOD_EXT 2
+
+struct kvm_s390_vm_tod_clock {
+ __u8 epoch_idx;
+ __u64 tod;
+};
/* kvm attributes for KVM_S390_VM_CPU_MODEL */
/* processor related attributes are r/w */
diff --git a/tools/arch/x86/include/asm/cpufeatures.h b/tools/arch/x86/include/asm/cpufeatures.h
index 8ea315a11fe0..2519c6c801c9 100644
--- a/tools/arch/x86/include/asm/cpufeatures.h
+++ b/tools/arch/x86/include/asm/cpufeatures.h
@@ -196,6 +196,7 @@
#define X86_FEATURE_HW_PSTATE ( 7*32+ 8) /* AMD HW-PState */
#define X86_FEATURE_PROC_FEEDBACK ( 7*32+ 9) /* AMD ProcFeedbackInterface */
+#define X86_FEATURE_SME ( 7*32+10) /* AMD Secure Memory Encryption */
#define X86_FEATURE_INTEL_PPIN ( 7*32+14) /* Intel Processor Inventory Number */
#define X86_FEATURE_INTEL_PT ( 7*32+15) /* Intel Processor Trace */
@@ -287,6 +288,7 @@
#define X86_FEATURE_PFTHRESHOLD (15*32+12) /* pause filter threshold */
#define X86_FEATURE_AVIC (15*32+13) /* Virtual Interrupt Controller */
#define X86_FEATURE_V_VMSAVE_VMLOAD (15*32+15) /* Virtual VMSAVE VMLOAD */
+#define X86_FEATURE_VGIF (15*32+16) /* Virtual GIF */
/* Intel-defined CPU features, CPUID level 0x00000007:0 (ecx), word 16 */
#define X86_FEATURE_AVX512VBMI (16*32+ 1) /* AVX512 Vector Bit Manipulation instructions*/
diff --git a/tools/arch/x86/include/asm/disabled-features.h b/tools/arch/x86/include/asm/disabled-features.h
index 5dff775af7cd..c10c9128f54e 100644
--- a/tools/arch/x86/include/asm/disabled-features.h
+++ b/tools/arch/x86/include/asm/disabled-features.h
@@ -21,11 +21,13 @@
# define DISABLE_K6_MTRR (1<<(X86_FEATURE_K6_MTRR & 31))
# define DISABLE_CYRIX_ARR (1<<(X86_FEATURE_CYRIX_ARR & 31))
# define DISABLE_CENTAUR_MCR (1<<(X86_FEATURE_CENTAUR_MCR & 31))
+# define DISABLE_PCID 0
#else
# define DISABLE_VME 0
# define DISABLE_K6_MTRR 0
# define DISABLE_CYRIX_ARR 0
# define DISABLE_CENTAUR_MCR 0
+# define DISABLE_PCID (1<<(X86_FEATURE_PCID & 31))
#endif /* CONFIG_X86_64 */
#ifdef CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS
@@ -49,7 +51,7 @@
#define DISABLED_MASK1 0
#define DISABLED_MASK2 0
#define DISABLED_MASK3 (DISABLE_CYRIX_ARR|DISABLE_CENTAUR_MCR|DISABLE_K6_MTRR)
-#define DISABLED_MASK4 0
+#define DISABLED_MASK4 (DISABLE_PCID)
#define DISABLED_MASK5 0
#define DISABLED_MASK6 0
#define DISABLED_MASK7 0
diff --git a/tools/include/asm-generic/hugetlb_encode.h b/tools/include/asm-generic/hugetlb_encode.h
new file mode 100644
index 000000000000..e4732d3c2998
--- /dev/null
+++ b/tools/include/asm-generic/hugetlb_encode.h
@@ -0,0 +1,34 @@
+#ifndef _ASM_GENERIC_HUGETLB_ENCODE_H_
+#define _ASM_GENERIC_HUGETLB_ENCODE_H_
+
+/*
+ * Several system calls take a flag to request "hugetlb" huge pages.
+ * Without further specification, these system calls will use the
+ * system's default huge page size. If a system supports multiple
+ * huge page sizes, the desired huge page size can be specified in
+ * bits [26:31] of the flag arguments. The value in these 6 bits
+ * will encode the log2 of the huge page size.
+ *
+ * The following definitions are associated with this huge page size
+ * encoding in flag arguments. System call specific header files
+ * that use this encoding should include this file. They can then
+ * provide definitions based on these with their own specific prefix.
+ * for example:
+ * #define MAP_HUGE_SHIFT HUGETLB_FLAG_ENCODE_SHIFT
+ */
+
+#define HUGETLB_FLAG_ENCODE_SHIFT 26
+#define HUGETLB_FLAG_ENCODE_MASK 0x3f
+
+#define HUGETLB_FLAG_ENCODE_64KB (16 << HUGETLB_FLAG_ENCODE_SHIFT)
+#define HUGETLB_FLAG_ENCODE_512KB (19 << HUGETLB_FLAG_ENCODE_SHIFT)
+#define HUGETLB_FLAG_ENCODE_1MB (20 << HUGETLB_FLAG_ENCODE_SHIFT)
+#define HUGETLB_FLAG_ENCODE_2MB (21 << HUGETLB_FLAG_ENCODE_SHIFT)
+#define HUGETLB_FLAG_ENCODE_8MB (23 << HUGETLB_FLAG_ENCODE_SHIFT)
+#define HUGETLB_FLAG_ENCODE_16MB (24 << HUGETLB_FLAG_ENCODE_SHIFT)
+#define HUGETLB_FLAG_ENCODE_256MB (28 << HUGETLB_FLAG_ENCODE_SHIFT)
+#define HUGETLB_FLAG_ENCODE_1GB (30 << HUGETLB_FLAG_ENCODE_SHIFT)
+#define HUGETLB_FLAG_ENCODE_2GB (31 << HUGETLB_FLAG_ENCODE_SHIFT)
+#define HUGETLB_FLAG_ENCODE_16GB (34 << HUGETLB_FLAG_ENCODE_SHIFT)
+
+#endif /* _ASM_GENERIC_HUGETLB_ENCODE_H_ */
diff --git a/tools/include/uapi/asm-generic/mman-common.h b/tools/include/uapi/asm-generic/mman-common.h
index 8c27db0c5c08..203268f9231e 100644
--- a/tools/include/uapi/asm-generic/mman-common.h
+++ b/tools/include/uapi/asm-generic/mman-common.h
@@ -58,20 +58,12 @@
overrides the coredump filter bits */
#define MADV_DODUMP 17 /* Clear the MADV_DONTDUMP flag */
+#define MADV_WIPEONFORK 18 /* Zero memory on fork, child only */
+#define MADV_KEEPONFORK 19 /* Undo MADV_WIPEONFORK */
+
/* compatibility flags */
#define MAP_FILE 0
-/*
- * When MAP_HUGETLB is set bits [26:31] encode the log2 of the huge page size.
- * This gives us 6 bits, which is enough until someone invents 128 bit address
- * spaces.
- *
- * Assume these are all power of twos.
- * When 0 use the default page size.
- */
-#define MAP_HUGE_SHIFT 26
-#define MAP_HUGE_MASK 0x3f
-
#define PKEY_DISABLE_ACCESS 0x1
#define PKEY_DISABLE_WRITE 0x2
#define PKEY_ACCESS_MASK (PKEY_DISABLE_ACCESS |\
diff --git a/tools/include/uapi/drm/drm.h b/tools/include/uapi/drm/drm.h
index 101593ab10ac..97677cd6964d 100644
--- a/tools/include/uapi/drm/drm.h
+++ b/tools/include/uapi/drm/drm.h
@@ -700,6 +700,7 @@ struct drm_prime_handle {
struct drm_syncobj_create {
__u32 handle;
+#define DRM_SYNCOBJ_CREATE_SIGNALED (1 << 0)
__u32 flags;
};
@@ -718,6 +719,24 @@ struct drm_syncobj_handle {
__u32 pad;
};
+#define DRM_SYNCOBJ_WAIT_FLAGS_WAIT_ALL (1 << 0)
+#define DRM_SYNCOBJ_WAIT_FLAGS_WAIT_FOR_SUBMIT (1 << 1)
+struct drm_syncobj_wait {
+ __u64 handles;
+ /* absolute timeout */
+ __s64 timeout_nsec;
+ __u32 count_handles;
+ __u32 flags;
+ __u32 first_signaled; /* only valid when not waiting all */
+ __u32 pad;
+};
+
+struct drm_syncobj_array {
+ __u64 handles;
+ __u32 count_handles;
+ __u32 pad;
+};
+
#if defined(__cplusplus)
}
#endif
@@ -840,6 +859,9 @@ extern "C" {
#define DRM_IOCTL_SYNCOBJ_DESTROY DRM_IOWR(0xC0, struct drm_syncobj_destroy)
#define DRM_IOCTL_SYNCOBJ_HANDLE_TO_FD DRM_IOWR(0xC1, struct drm_syncobj_handle)
#define DRM_IOCTL_SYNCOBJ_FD_TO_HANDLE DRM_IOWR(0xC2, struct drm_syncobj_handle)
+#define DRM_IOCTL_SYNCOBJ_WAIT DRM_IOWR(0xC3, struct drm_syncobj_wait)
+#define DRM_IOCTL_SYNCOBJ_RESET DRM_IOWR(0xC4, struct drm_syncobj_array)
+#define DRM_IOCTL_SYNCOBJ_SIGNAL DRM_IOWR(0xC5, struct drm_syncobj_array)
/**
* Device specific ioctls should only be in their respective headers
diff --git a/tools/include/uapi/drm/i915_drm.h b/tools/include/uapi/drm/i915_drm.h
index 7ccbd6a2bbe0..6598fb76d2c2 100644
--- a/tools/include/uapi/drm/i915_drm.h
+++ b/tools/include/uapi/drm/i915_drm.h
@@ -260,6 +260,8 @@ typedef struct _drm_i915_sarea {
#define DRM_I915_GEM_CONTEXT_GETPARAM 0x34
#define DRM_I915_GEM_CONTEXT_SETPARAM 0x35
#define DRM_I915_PERF_OPEN 0x36
+#define DRM_I915_PERF_ADD_CONFIG 0x37
+#define DRM_I915_PERF_REMOVE_CONFIG 0x38
#define DRM_IOCTL_I915_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t)
#define DRM_IOCTL_I915_FLUSH DRM_IO ( DRM_COMMAND_BASE + DRM_I915_FLUSH)
@@ -315,6 +317,8 @@ typedef struct _drm_i915_sarea {
#define DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_CONTEXT_GETPARAM, struct drm_i915_gem_context_param)
#define DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_CONTEXT_SETPARAM, struct drm_i915_gem_context_param)
#define DRM_IOCTL_I915_PERF_OPEN DRM_IOW(DRM_COMMAND_BASE + DRM_I915_PERF_OPEN, struct drm_i915_perf_open_param)
+#define DRM_IOCTL_I915_PERF_ADD_CONFIG DRM_IOW(DRM_COMMAND_BASE + DRM_I915_PERF_ADD_CONFIG, struct drm_i915_perf_oa_config)
+#define DRM_IOCTL_I915_PERF_REMOVE_CONFIG DRM_IOW(DRM_COMMAND_BASE + DRM_I915_PERF_REMOVE_CONFIG, __u64)
/* Allow drivers to submit batchbuffers directly to hardware, relying
* on the security mechanisms provided by hardware.
@@ -431,6 +435,11 @@ typedef struct drm_i915_irq_wait {
*/
#define I915_PARAM_HAS_EXEC_BATCH_FIRST 48
+/* Query whether DRM_I915_GEM_EXECBUFFER2 supports supplying an array of
+ * drm_i915_gem_exec_fence structures. See I915_EXEC_FENCE_ARRAY.
+ */
+#define I915_PARAM_HAS_EXEC_FENCE_ARRAY 49
+
typedef struct drm_i915_getparam {
__s32 param;
/*
@@ -812,6 +821,17 @@ struct drm_i915_gem_exec_object2 {
__u64 rsvd2;
};
+struct drm_i915_gem_exec_fence {
+ /**
+ * User's handle for a drm_syncobj to wait on or signal.
+ */
+ __u32 handle;
+
+#define I915_EXEC_FENCE_WAIT (1<<0)
+#define I915_EXEC_FENCE_SIGNAL (1<<1)
+ __u32 flags;
+};
+
struct drm_i915_gem_execbuffer2 {
/**
* List of gem_exec_object2 structs
@@ -826,7 +846,11 @@ struct drm_i915_gem_execbuffer2 {
__u32 DR1;
__u32 DR4;
__u32 num_cliprects;
- /** This is a struct drm_clip_rect *cliprects */
+ /**
+ * This is a struct drm_clip_rect *cliprects if I915_EXEC_FENCE_ARRAY
+ * is not set. If I915_EXEC_FENCE_ARRAY is set, then this is a
+ * struct drm_i915_gem_exec_fence *fences.
+ */
__u64 cliprects_ptr;
#define I915_EXEC_RING_MASK (7<<0)
#define I915_EXEC_DEFAULT (0<<0)
@@ -927,7 +951,14 @@ struct drm_i915_gem_execbuffer2 {
* element).
*/
#define I915_EXEC_BATCH_FIRST (1<<18)
-#define __I915_EXEC_UNKNOWN_FLAGS (-(I915_EXEC_BATCH_FIRST<<1))
+
+/* Setting I915_FENCE_ARRAY implies that num_cliprects and cliprects_ptr
+ * define an array of i915_gem_exec_fence structures which specify a set of
+ * dma fences to wait upon or signal.
+ */
+#define I915_EXEC_FENCE_ARRAY (1<<19)
+
+#define __I915_EXEC_UNKNOWN_FLAGS (-(I915_EXEC_FENCE_ARRAY<<1))
#define I915_EXEC_CONTEXT_ID_MASK (0xffffffff)
#define i915_execbuffer2_set_context_id(eb2, context) \
@@ -1467,6 +1498,22 @@ enum drm_i915_perf_record_type {
DRM_I915_PERF_RECORD_MAX /* non-ABI */
};
+/**
+ * Structure to upload perf dynamic configuration into the kernel.
+ */
+struct drm_i915_perf_oa_config {
+ /** String formatted like "%08x-%04x-%04x-%04x-%012x" */
+ char uuid[36];
+
+ __u32 n_mux_regs;
+ __u32 n_boolean_regs;
+ __u32 n_flex_regs;
+
+ __u64 __user mux_regs_ptr;
+ __u64 __user boolean_regs_ptr;
+ __u64 __user flex_regs_ptr;
+};
+
#if defined(__cplusplus)
}
#endif
diff --git a/tools/include/uapi/linux/bpf.h b/tools/include/uapi/linux/bpf.h
index 461811e57140..43ab5c402f98 100644
--- a/tools/include/uapi/linux/bpf.h
+++ b/tools/include/uapi/linux/bpf.h
@@ -143,12 +143,6 @@ enum bpf_attach_type {
#define MAX_BPF_ATTACH_TYPE __MAX_BPF_ATTACH_TYPE
-enum bpf_sockmap_flags {
- BPF_SOCKMAP_UNSPEC,
- BPF_SOCKMAP_STRPARSER,
- __MAX_BPF_SOCKMAP_FLAG
-};
-
/* If BPF_F_ALLOW_OVERRIDE flag is used in BPF_PROG_ATTACH command
* to the given target_fd cgroup the descendent cgroup will be able to
* override effective bpf program that was inherited from this cgroup
@@ -368,9 +362,20 @@ union bpf_attr {
* int bpf_redirect(ifindex, flags)
* redirect to another netdev
* @ifindex: ifindex of the net device
- * @flags: bit 0 - if set, redirect to ingress instead of egress
- * other bits - reserved
- * Return: TC_ACT_REDIRECT
+ * @flags:
+ * cls_bpf:
+ * bit 0 - if set, redirect to ingress instead of egress
+ * other bits - reserved
+ * xdp_bpf:
+ * all bits - reserved
+ * Return: cls_bpf: TC_ACT_REDIRECT on success or TC_ACT_SHOT on error
+ * xdp_bfp: XDP_REDIRECT on success or XDP_ABORT on error
+ * int bpf_redirect_map(map, key, flags)
+ * redirect to endpoint in map
+ * @map: pointer to dev map
+ * @key: index in map to lookup
+ * @flags: --
+ * Return: XDP_REDIRECT on success or XDP_ABORT on error
*
* u32 bpf_get_route_realm(skb)
* retrieve a dst's tclassid
@@ -632,7 +637,7 @@ union bpf_attr {
FN(skb_adjust_room), \
FN(redirect_map), \
FN(sk_redirect_map), \
- FN(sock_map_update),
+ FN(sock_map_update), \
/* integer value in 'imm' field of BPF_CALL instruction selects which helper
* function eBPF program intends to call
@@ -753,20 +758,23 @@ struct bpf_sock {
__u32 family;
__u32 type;
__u32 protocol;
+ __u32 mark;
+ __u32 priority;
};
#define XDP_PACKET_HEADROOM 256
/* User return codes for XDP prog type.
* A valid XDP program must return one of these defined values. All other
- * return codes are reserved for future use. Unknown return codes will result
- * in packet drop.
+ * return codes are reserved for future use. Unknown return codes will
+ * result in packet drops and a warning via bpf_warn_invalid_xdp_action().
*/
enum xdp_action {
XDP_ABORTED = 0,
XDP_DROP,
XDP_PASS,
XDP_TX,
+ XDP_REDIRECT,
};
/* user accessible metadata for XDP packet hook
diff --git a/tools/include/uapi/linux/kvm.h b/tools/include/uapi/linux/kvm.h
index 6cd63c18708a..838887587411 100644
--- a/tools/include/uapi/linux/kvm.h
+++ b/tools/include/uapi/linux/kvm.h
@@ -711,7 +711,8 @@ struct kvm_ppc_one_seg_page_size {
struct kvm_ppc_smmu_info {
__u64 flags;
__u32 slb_size;
- __u32 pad;
+ __u16 data_keys; /* # storage keys supported for data */
+ __u16 instr_keys; /* # storage keys supported for instructions */
struct kvm_ppc_one_seg_page_size sps[KVM_PPC_PAGE_SIZES_MAX_SZ];
};
diff --git a/tools/include/uapi/linux/mman.h b/tools/include/uapi/linux/mman.h
index 81d8edf11789..a937480d7cd3 100644
--- a/tools/include/uapi/linux/mman.h
+++ b/tools/include/uapi/linux/mman.h
@@ -1,7 +1,8 @@
#ifndef _UAPI_LINUX_MMAN_H
#define _UAPI_LINUX_MMAN_H
-#include <uapi/asm/mman.h>
+#include <asm/mman.h>
+#include <asm-generic/hugetlb_encode.h>
#define MREMAP_MAYMOVE 1
#define MREMAP_FIXED 2
@@ -10,4 +11,25 @@
#define OVERCOMMIT_ALWAYS 1
#define OVERCOMMIT_NEVER 2
+/*
+ * Huge page size encoding when MAP_HUGETLB is specified, and a huge page
+ * size other than the default is desired. See hugetlb_encode.h.
+ * All known huge page size encodings are provided here. It is the
+ * responsibility of the application to know which sizes are supported on
+ * the running system. See mmap(2) man page for details.
+ */
+#define MAP_HUGE_SHIFT HUGETLB_FLAG_ENCODE_SHIFT
+#define MAP_HUGE_MASK HUGETLB_FLAG_ENCODE_MASK
+
+#define MAP_HUGE_64KB HUGETLB_FLAG_ENCODE_64KB
+#define MAP_HUGE_512KB HUGETLB_FLAG_ENCODE_512KB
+#define MAP_HUGE_1MB HUGETLB_FLAG_ENCODE_1MB
+#define MAP_HUGE_2MB HUGETLB_FLAG_ENCODE_2MB
+#define MAP_HUGE_8MB HUGETLB_FLAG_ENCODE_8MB
+#define MAP_HUGE_16MB HUGETLB_FLAG_ENCODE_16MB
+#define MAP_HUGE_256MB HUGETLB_FLAG_ENCODE_256MB
+#define MAP_HUGE_1GB HUGETLB_FLAG_ENCODE_1GB
+#define MAP_HUGE_2GB HUGETLB_FLAG_ENCODE_2GB
+#define MAP_HUGE_16GB HUGETLB_FLAG_ENCODE_16GB
+
#endif /* _UAPI_LINUX_MMAN_H */
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [tip:perf/urgent] tools include: Sync kernel ABI headers with tooling headers
2017-09-13 7:38 ` [PATCH] tools/include: Sync kernel ABI headers with tooling headers Ingo Molnar
@ 2017-09-29 20:04 ` tip-bot for Ingo Molnar
0 siblings, 0 replies; 24+ messages in thread
From: tip-bot for Ingo Molnar @ 2017-09-29 20:04 UTC (permalink / raw)
To: linux-tip-commits
Cc: jolsa, linux-kernel, dsahern, milian.wolff, a.p.zijlstra,
yao.jin, acme, adrian.hunter, hpa, wangnan0, mingo,
treeze.taeung, tglx, namhyung
Commit-ID: 549a3976523c69a0245c0a310210c824a0b26e35
Gitweb: https://git.kernel.org/tip/549a3976523c69a0245c0a310210c824a0b26e35
Author: Ingo Molnar <mingo@kernel.org>
AuthorDate: Wed, 13 Sep 2017 09:38:23 +0200
Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Mon, 25 Sep 2017 10:39:44 -0300
tools include: Sync kernel ABI headers with tooling headers
Time for a sync with ABI/uapi headers with the upcoming v4.14 kernel.
None of the ABI changes require any source code level changes to our
existing in-kernel tooling code:
- tools/arch/s390/include/uapi/asm/kvm.h:
New KVM_S390_VM_TOD_EXT ABI, not used by in-kernel tooling.
- tools/arch/x86/include/asm/cpufeatures.h:
tools/arch/x86/include/asm/disabled-features.h:
New PCID, SME and VGIF x86 CPU feature bits defined.
- tools/include/asm-generic/hugetlb_encode.h:
tools/include/uapi/asm-generic/mman-common.h:
tools/include/uapi/linux/mman.h:
Two new madvise() flags, plus a hugetlb system call mmap flags
restructuring/extension changes.
- tools/include/uapi/drm/drm.h:
tools/include/uapi/drm/i915_drm.h:
New drm_syncobj_create flags definitions, new drm_syncobj_wait
and drm_syncobj_array ABIs. DRM_I915_PERF_* calls and a new
I915_PARAM_HAS_EXEC_FENCE_ARRAY ABI for the Intel driver.
- tools/include/uapi/linux/bpf.h:
New bpf_sock fields (::mark and ::priority), new XDP_REDIRECT
action, new kvm_ppc_smmu_info fields (::data_keys, instr_keys)
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Milian Wolff <milian.wolff@kdab.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Taeung Song <treeze.taeung@gmail.com>
Cc: Wang Nan <wangnan0@huawei.com>
Cc: Yao Jin <yao.jin@linux.intel.com>
Link: http://lkml.kernel.org/r/20170913073823.lxmi4c7ejqlfabjx@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/arch/s390/include/uapi/asm/kvm.h | 6 +++
tools/arch/x86/include/asm/cpufeatures.h | 2 +
tools/arch/x86/include/asm/disabled-features.h | 4 +-
.../include}/asm-generic/hugetlb_encode.h | 0
tools/include/uapi/asm-generic/mman-common.h | 14 ++----
tools/include/uapi/drm/drm.h | 22 ++++++++++
tools/include/uapi/drm/i915_drm.h | 51 +++++++++++++++++++++-
tools/include/uapi/linux/bpf.h | 32 +++++++++-----
tools/include/uapi/linux/kvm.h | 3 +-
tools/include/uapi/linux/mman.h | 24 +++++++++-
10 files changed, 130 insertions(+), 28 deletions(-)
diff --git a/tools/arch/s390/include/uapi/asm/kvm.h b/tools/arch/s390/include/uapi/asm/kvm.h
index 69d09c3..cd7359e 100644
--- a/tools/arch/s390/include/uapi/asm/kvm.h
+++ b/tools/arch/s390/include/uapi/asm/kvm.h
@@ -88,6 +88,12 @@ struct kvm_s390_io_adapter_req {
/* kvm attributes for KVM_S390_VM_TOD */
#define KVM_S390_VM_TOD_LOW 0
#define KVM_S390_VM_TOD_HIGH 1
+#define KVM_S390_VM_TOD_EXT 2
+
+struct kvm_s390_vm_tod_clock {
+ __u8 epoch_idx;
+ __u64 tod;
+};
/* kvm attributes for KVM_S390_VM_CPU_MODEL */
/* processor related attributes are r/w */
diff --git a/tools/arch/x86/include/asm/cpufeatures.h b/tools/arch/x86/include/asm/cpufeatures.h
index 8ea315a1..2519c6c 100644
--- a/tools/arch/x86/include/asm/cpufeatures.h
+++ b/tools/arch/x86/include/asm/cpufeatures.h
@@ -196,6 +196,7 @@
#define X86_FEATURE_HW_PSTATE ( 7*32+ 8) /* AMD HW-PState */
#define X86_FEATURE_PROC_FEEDBACK ( 7*32+ 9) /* AMD ProcFeedbackInterface */
+#define X86_FEATURE_SME ( 7*32+10) /* AMD Secure Memory Encryption */
#define X86_FEATURE_INTEL_PPIN ( 7*32+14) /* Intel Processor Inventory Number */
#define X86_FEATURE_INTEL_PT ( 7*32+15) /* Intel Processor Trace */
@@ -287,6 +288,7 @@
#define X86_FEATURE_PFTHRESHOLD (15*32+12) /* pause filter threshold */
#define X86_FEATURE_AVIC (15*32+13) /* Virtual Interrupt Controller */
#define X86_FEATURE_V_VMSAVE_VMLOAD (15*32+15) /* Virtual VMSAVE VMLOAD */
+#define X86_FEATURE_VGIF (15*32+16) /* Virtual GIF */
/* Intel-defined CPU features, CPUID level 0x00000007:0 (ecx), word 16 */
#define X86_FEATURE_AVX512VBMI (16*32+ 1) /* AVX512 Vector Bit Manipulation instructions*/
diff --git a/tools/arch/x86/include/asm/disabled-features.h b/tools/arch/x86/include/asm/disabled-features.h
index 5dff775..c10c912 100644
--- a/tools/arch/x86/include/asm/disabled-features.h
+++ b/tools/arch/x86/include/asm/disabled-features.h
@@ -21,11 +21,13 @@
# define DISABLE_K6_MTRR (1<<(X86_FEATURE_K6_MTRR & 31))
# define DISABLE_CYRIX_ARR (1<<(X86_FEATURE_CYRIX_ARR & 31))
# define DISABLE_CENTAUR_MCR (1<<(X86_FEATURE_CENTAUR_MCR & 31))
+# define DISABLE_PCID 0
#else
# define DISABLE_VME 0
# define DISABLE_K6_MTRR 0
# define DISABLE_CYRIX_ARR 0
# define DISABLE_CENTAUR_MCR 0
+# define DISABLE_PCID (1<<(X86_FEATURE_PCID & 31))
#endif /* CONFIG_X86_64 */
#ifdef CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS
@@ -49,7 +51,7 @@
#define DISABLED_MASK1 0
#define DISABLED_MASK2 0
#define DISABLED_MASK3 (DISABLE_CYRIX_ARR|DISABLE_CENTAUR_MCR|DISABLE_K6_MTRR)
-#define DISABLED_MASK4 0
+#define DISABLED_MASK4 (DISABLE_PCID)
#define DISABLED_MASK5 0
#define DISABLED_MASK6 0
#define DISABLED_MASK7 0
diff --git a/include/uapi/asm-generic/hugetlb_encode.h b/tools/include/asm-generic/hugetlb_encode.h
similarity index 100%
copy from include/uapi/asm-generic/hugetlb_encode.h
copy to tools/include/asm-generic/hugetlb_encode.h
diff --git a/tools/include/uapi/asm-generic/mman-common.h b/tools/include/uapi/asm-generic/mman-common.h
index 8c27db0..203268f 100644
--- a/tools/include/uapi/asm-generic/mman-common.h
+++ b/tools/include/uapi/asm-generic/mman-common.h
@@ -58,20 +58,12 @@
overrides the coredump filter bits */
#define MADV_DODUMP 17 /* Clear the MADV_DONTDUMP flag */
+#define MADV_WIPEONFORK 18 /* Zero memory on fork, child only */
+#define MADV_KEEPONFORK 19 /* Undo MADV_WIPEONFORK */
+
/* compatibility flags */
#define MAP_FILE 0
-/*
- * When MAP_HUGETLB is set bits [26:31] encode the log2 of the huge page size.
- * This gives us 6 bits, which is enough until someone invents 128 bit address
- * spaces.
- *
- * Assume these are all power of twos.
- * When 0 use the default page size.
- */
-#define MAP_HUGE_SHIFT 26
-#define MAP_HUGE_MASK 0x3f
-
#define PKEY_DISABLE_ACCESS 0x1
#define PKEY_DISABLE_WRITE 0x2
#define PKEY_ACCESS_MASK (PKEY_DISABLE_ACCESS |\
diff --git a/tools/include/uapi/drm/drm.h b/tools/include/uapi/drm/drm.h
index 101593a..97677cd 100644
--- a/tools/include/uapi/drm/drm.h
+++ b/tools/include/uapi/drm/drm.h
@@ -700,6 +700,7 @@ struct drm_prime_handle {
struct drm_syncobj_create {
__u32 handle;
+#define DRM_SYNCOBJ_CREATE_SIGNALED (1 << 0)
__u32 flags;
};
@@ -718,6 +719,24 @@ struct drm_syncobj_handle {
__u32 pad;
};
+#define DRM_SYNCOBJ_WAIT_FLAGS_WAIT_ALL (1 << 0)
+#define DRM_SYNCOBJ_WAIT_FLAGS_WAIT_FOR_SUBMIT (1 << 1)
+struct drm_syncobj_wait {
+ __u64 handles;
+ /* absolute timeout */
+ __s64 timeout_nsec;
+ __u32 count_handles;
+ __u32 flags;
+ __u32 first_signaled; /* only valid when not waiting all */
+ __u32 pad;
+};
+
+struct drm_syncobj_array {
+ __u64 handles;
+ __u32 count_handles;
+ __u32 pad;
+};
+
#if defined(__cplusplus)
}
#endif
@@ -840,6 +859,9 @@ extern "C" {
#define DRM_IOCTL_SYNCOBJ_DESTROY DRM_IOWR(0xC0, struct drm_syncobj_destroy)
#define DRM_IOCTL_SYNCOBJ_HANDLE_TO_FD DRM_IOWR(0xC1, struct drm_syncobj_handle)
#define DRM_IOCTL_SYNCOBJ_FD_TO_HANDLE DRM_IOWR(0xC2, struct drm_syncobj_handle)
+#define DRM_IOCTL_SYNCOBJ_WAIT DRM_IOWR(0xC3, struct drm_syncobj_wait)
+#define DRM_IOCTL_SYNCOBJ_RESET DRM_IOWR(0xC4, struct drm_syncobj_array)
+#define DRM_IOCTL_SYNCOBJ_SIGNAL DRM_IOWR(0xC5, struct drm_syncobj_array)
/**
* Device specific ioctls should only be in their respective headers
diff --git a/tools/include/uapi/drm/i915_drm.h b/tools/include/uapi/drm/i915_drm.h
index 7ccbd6a..6598fb7 100644
--- a/tools/include/uapi/drm/i915_drm.h
+++ b/tools/include/uapi/drm/i915_drm.h
@@ -260,6 +260,8 @@ typedef struct _drm_i915_sarea {
#define DRM_I915_GEM_CONTEXT_GETPARAM 0x34
#define DRM_I915_GEM_CONTEXT_SETPARAM 0x35
#define DRM_I915_PERF_OPEN 0x36
+#define DRM_I915_PERF_ADD_CONFIG 0x37
+#define DRM_I915_PERF_REMOVE_CONFIG 0x38
#define DRM_IOCTL_I915_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t)
#define DRM_IOCTL_I915_FLUSH DRM_IO ( DRM_COMMAND_BASE + DRM_I915_FLUSH)
@@ -315,6 +317,8 @@ typedef struct _drm_i915_sarea {
#define DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_CONTEXT_GETPARAM, struct drm_i915_gem_context_param)
#define DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_CONTEXT_SETPARAM, struct drm_i915_gem_context_param)
#define DRM_IOCTL_I915_PERF_OPEN DRM_IOW(DRM_COMMAND_BASE + DRM_I915_PERF_OPEN, struct drm_i915_perf_open_param)
+#define DRM_IOCTL_I915_PERF_ADD_CONFIG DRM_IOW(DRM_COMMAND_BASE + DRM_I915_PERF_ADD_CONFIG, struct drm_i915_perf_oa_config)
+#define DRM_IOCTL_I915_PERF_REMOVE_CONFIG DRM_IOW(DRM_COMMAND_BASE + DRM_I915_PERF_REMOVE_CONFIG, __u64)
/* Allow drivers to submit batchbuffers directly to hardware, relying
* on the security mechanisms provided by hardware.
@@ -431,6 +435,11 @@ typedef struct drm_i915_irq_wait {
*/
#define I915_PARAM_HAS_EXEC_BATCH_FIRST 48
+/* Query whether DRM_I915_GEM_EXECBUFFER2 supports supplying an array of
+ * drm_i915_gem_exec_fence structures. See I915_EXEC_FENCE_ARRAY.
+ */
+#define I915_PARAM_HAS_EXEC_FENCE_ARRAY 49
+
typedef struct drm_i915_getparam {
__s32 param;
/*
@@ -812,6 +821,17 @@ struct drm_i915_gem_exec_object2 {
__u64 rsvd2;
};
+struct drm_i915_gem_exec_fence {
+ /**
+ * User's handle for a drm_syncobj to wait on or signal.
+ */
+ __u32 handle;
+
+#define I915_EXEC_FENCE_WAIT (1<<0)
+#define I915_EXEC_FENCE_SIGNAL (1<<1)
+ __u32 flags;
+};
+
struct drm_i915_gem_execbuffer2 {
/**
* List of gem_exec_object2 structs
@@ -826,7 +846,11 @@ struct drm_i915_gem_execbuffer2 {
__u32 DR1;
__u32 DR4;
__u32 num_cliprects;
- /** This is a struct drm_clip_rect *cliprects */
+ /**
+ * This is a struct drm_clip_rect *cliprects if I915_EXEC_FENCE_ARRAY
+ * is not set. If I915_EXEC_FENCE_ARRAY is set, then this is a
+ * struct drm_i915_gem_exec_fence *fences.
+ */
__u64 cliprects_ptr;
#define I915_EXEC_RING_MASK (7<<0)
#define I915_EXEC_DEFAULT (0<<0)
@@ -927,7 +951,14 @@ struct drm_i915_gem_execbuffer2 {
* element).
*/
#define I915_EXEC_BATCH_FIRST (1<<18)
-#define __I915_EXEC_UNKNOWN_FLAGS (-(I915_EXEC_BATCH_FIRST<<1))
+
+/* Setting I915_FENCE_ARRAY implies that num_cliprects and cliprects_ptr
+ * define an array of i915_gem_exec_fence structures which specify a set of
+ * dma fences to wait upon or signal.
+ */
+#define I915_EXEC_FENCE_ARRAY (1<<19)
+
+#define __I915_EXEC_UNKNOWN_FLAGS (-(I915_EXEC_FENCE_ARRAY<<1))
#define I915_EXEC_CONTEXT_ID_MASK (0xffffffff)
#define i915_execbuffer2_set_context_id(eb2, context) \
@@ -1467,6 +1498,22 @@ enum drm_i915_perf_record_type {
DRM_I915_PERF_RECORD_MAX /* non-ABI */
};
+/**
+ * Structure to upload perf dynamic configuration into the kernel.
+ */
+struct drm_i915_perf_oa_config {
+ /** String formatted like "%08x-%04x-%04x-%04x-%012x" */
+ char uuid[36];
+
+ __u32 n_mux_regs;
+ __u32 n_boolean_regs;
+ __u32 n_flex_regs;
+
+ __u64 __user mux_regs_ptr;
+ __u64 __user boolean_regs_ptr;
+ __u64 __user flex_regs_ptr;
+};
+
#if defined(__cplusplus)
}
#endif
diff --git a/tools/include/uapi/linux/bpf.h b/tools/include/uapi/linux/bpf.h
index 461811e..43ab5c4 100644
--- a/tools/include/uapi/linux/bpf.h
+++ b/tools/include/uapi/linux/bpf.h
@@ -143,12 +143,6 @@ enum bpf_attach_type {
#define MAX_BPF_ATTACH_TYPE __MAX_BPF_ATTACH_TYPE
-enum bpf_sockmap_flags {
- BPF_SOCKMAP_UNSPEC,
- BPF_SOCKMAP_STRPARSER,
- __MAX_BPF_SOCKMAP_FLAG
-};
-
/* If BPF_F_ALLOW_OVERRIDE flag is used in BPF_PROG_ATTACH command
* to the given target_fd cgroup the descendent cgroup will be able to
* override effective bpf program that was inherited from this cgroup
@@ -368,9 +362,20 @@ union bpf_attr {
* int bpf_redirect(ifindex, flags)
* redirect to another netdev
* @ifindex: ifindex of the net device
- * @flags: bit 0 - if set, redirect to ingress instead of egress
- * other bits - reserved
- * Return: TC_ACT_REDIRECT
+ * @flags:
+ * cls_bpf:
+ * bit 0 - if set, redirect to ingress instead of egress
+ * other bits - reserved
+ * xdp_bpf:
+ * all bits - reserved
+ * Return: cls_bpf: TC_ACT_REDIRECT on success or TC_ACT_SHOT on error
+ * xdp_bfp: XDP_REDIRECT on success or XDP_ABORT on error
+ * int bpf_redirect_map(map, key, flags)
+ * redirect to endpoint in map
+ * @map: pointer to dev map
+ * @key: index in map to lookup
+ * @flags: --
+ * Return: XDP_REDIRECT on success or XDP_ABORT on error
*
* u32 bpf_get_route_realm(skb)
* retrieve a dst's tclassid
@@ -632,7 +637,7 @@ union bpf_attr {
FN(skb_adjust_room), \
FN(redirect_map), \
FN(sk_redirect_map), \
- FN(sock_map_update),
+ FN(sock_map_update), \
/* integer value in 'imm' field of BPF_CALL instruction selects which helper
* function eBPF program intends to call
@@ -753,20 +758,23 @@ struct bpf_sock {
__u32 family;
__u32 type;
__u32 protocol;
+ __u32 mark;
+ __u32 priority;
};
#define XDP_PACKET_HEADROOM 256
/* User return codes for XDP prog type.
* A valid XDP program must return one of these defined values. All other
- * return codes are reserved for future use. Unknown return codes will result
- * in packet drop.
+ * return codes are reserved for future use. Unknown return codes will
+ * result in packet drops and a warning via bpf_warn_invalid_xdp_action().
*/
enum xdp_action {
XDP_ABORTED = 0,
XDP_DROP,
XDP_PASS,
XDP_TX,
+ XDP_REDIRECT,
};
/* user accessible metadata for XDP packet hook
diff --git a/tools/include/uapi/linux/kvm.h b/tools/include/uapi/linux/kvm.h
index 6cd63c1..8388875 100644
--- a/tools/include/uapi/linux/kvm.h
+++ b/tools/include/uapi/linux/kvm.h
@@ -711,7 +711,8 @@ struct kvm_ppc_one_seg_page_size {
struct kvm_ppc_smmu_info {
__u64 flags;
__u32 slb_size;
- __u32 pad;
+ __u16 data_keys; /* # storage keys supported for data */
+ __u16 instr_keys; /* # storage keys supported for instructions */
struct kvm_ppc_one_seg_page_size sps[KVM_PPC_PAGE_SIZES_MAX_SZ];
};
diff --git a/tools/include/uapi/linux/mman.h b/tools/include/uapi/linux/mman.h
index 81d8edf..a937480 100644
--- a/tools/include/uapi/linux/mman.h
+++ b/tools/include/uapi/linux/mman.h
@@ -1,7 +1,8 @@
#ifndef _UAPI_LINUX_MMAN_H
#define _UAPI_LINUX_MMAN_H
-#include <uapi/asm/mman.h>
+#include <asm/mman.h>
+#include <asm-generic/hugetlb_encode.h>
#define MREMAP_MAYMOVE 1
#define MREMAP_FIXED 2
@@ -10,4 +11,25 @@
#define OVERCOMMIT_ALWAYS 1
#define OVERCOMMIT_NEVER 2
+/*
+ * Huge page size encoding when MAP_HUGETLB is specified, and a huge page
+ * size other than the default is desired. See hugetlb_encode.h.
+ * All known huge page size encodings are provided here. It is the
+ * responsibility of the application to know which sizes are supported on
+ * the running system. See mmap(2) man page for details.
+ */
+#define MAP_HUGE_SHIFT HUGETLB_FLAG_ENCODE_SHIFT
+#define MAP_HUGE_MASK HUGETLB_FLAG_ENCODE_MASK
+
+#define MAP_HUGE_64KB HUGETLB_FLAG_ENCODE_64KB
+#define MAP_HUGE_512KB HUGETLB_FLAG_ENCODE_512KB
+#define MAP_HUGE_1MB HUGETLB_FLAG_ENCODE_1MB
+#define MAP_HUGE_2MB HUGETLB_FLAG_ENCODE_2MB
+#define MAP_HUGE_8MB HUGETLB_FLAG_ENCODE_8MB
+#define MAP_HUGE_16MB HUGETLB_FLAG_ENCODE_16MB
+#define MAP_HUGE_256MB HUGETLB_FLAG_ENCODE_256MB
+#define MAP_HUGE_1GB HUGETLB_FLAG_ENCODE_1GB
+#define MAP_HUGE_2GB HUGETLB_FLAG_ENCODE_2GB
+#define MAP_HUGE_16GB HUGETLB_FLAG_ENCODE_16GB
+
#endif /* _UAPI_LINUX_MMAN_H */
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [GIT PULL 0/9] perf/urgent fixes
@ 2019-12-16 20:47 Arnaldo Carvalho de Melo
2019-12-17 11:28 ` Ingo Molnar
0 siblings, 1 reply; 24+ messages in thread
From: Arnaldo Carvalho de Melo @ 2019-12-16 20:47 UTC (permalink / raw)
To: Ingo Molnar, Thomas Gleixner
Cc: Jiri Olsa, Namhyung Kim, Clark Williams, linux-kernel,
linux-perf-users, Arnaldo Carvalho de Melo, Ed Maste, John Garry,
Kajol Jain, Mark Rutland, Michael Petlan, Ravi Bangoria,
Sudipm Mukherjee, Arnaldo Carvalho de Melo
Hi Ingo/Thomas,
Please consider pulling,
Best regards,
- Arnaldo
The following changes since commit 761bfc33dd7504de951aa7b9db27a3cc5df1fde6:
Merge remote-tracking branch 'torvalds/master' into perf/urgent (2019-12-11 09:58:16 -0300)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-urgent-for-mingo-5.5-20191216
for you to fetch changes up to 58b3bafff8257c6946df5d6aeb215b8ac839ed2a:
perf vendor events s390: Remove name from L1D_RO_EXCL_WRITES description (2019-12-16 13:40:26 -0300)
----------------------------------------------------------------
perf/urgent fixes:
perf top:
Arnaldo Carvalho de Melo:
- Do not bail out when perf_env__read_cpuid() returns ENOSYS, which
has been reported happening on aarch64.
perf metricgroup:
Kajol Jain:
- Fix printing event names of metric group with multiple events
vendor events:
x86:
Ravi Bangoria:
- Fix Kernel_Utilization metric.
s390:
Ed Maste:
- Fix counter long description for DTLB1_GPAGE_WRITES and L1D_RO_EXCL_WRITES.
perf header:
Michael Petlan:
- Fix false warning when there are no duplicate cache entries
libtraceevent:
Sudip Mukherjee:
- Allow custom libdir path
API headers:
Arnaldo Carvalho de Melo:
- Sync linux/kvm.h with the kernel sources.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Arnaldo Carvalho de Melo (3):
tools headers kvm: Sync linux/kvm.h with the kernel sources
perf arch: Make the default get_cpuid() return compatible error
perf top: Do not bail out when perf_env__read_cpuid() returns ENOSYS
Ed Maste (2):
perf vendor events s390: Fix counter long description for DTLB1_GPAGE_WRITES
perf vendor events s390: Remove name from L1D_RO_EXCL_WRITES description
Kajol Jain (1):
perf metricgroup: Fix printing event names of metric group with multiple events
Michael Petlan (1):
perf header: Fix false warning when there are no duplicate cache entries
Ravi Bangoria (1):
perf/x86/pmu-events: Fix Kernel_Utilization metric
Sudip Mukherjee (1):
libtraceevent: Allow custom libdir path
tools/include/uapi/linux/kvm.h | 1 +
tools/lib/traceevent/Makefile | 5 +++--
tools/lib/traceevent/plugins/Makefile | 5 +++--
tools/perf/builtin-top.c | 10 +++++++---
.../perf/pmu-events/arch/s390/cf_z13/extended.json | 2 +-
.../perf/pmu-events/arch/s390/cf_z14/extended.json | 2 +-
.../pmu-events/arch/x86/broadwell/bdw-metrics.json | 2 +-
.../arch/x86/broadwellde/bdwde-metrics.json | 2 +-
.../arch/x86/broadwellx/bdx-metrics.json | 2 +-
.../arch/x86/cascadelakex/clx-metrics.json | 2 +-
.../pmu-events/arch/x86/haswell/hsw-metrics.json | 2 +-
.../pmu-events/arch/x86/haswellx/hsx-metrics.json | 2 +-
.../pmu-events/arch/x86/ivybridge/ivb-metrics.json | 2 +-
.../pmu-events/arch/x86/ivytown/ivt-metrics.json | 2 +-
.../pmu-events/arch/x86/jaketown/jkt-metrics.json | 2 +-
.../arch/x86/sandybridge/snb-metrics.json | 2 +-
.../pmu-events/arch/x86/skylake/skl-metrics.json | 2 +-
.../pmu-events/arch/x86/skylakex/skx-metrics.json | 2 +-
tools/perf/util/header.c | 23 +++++++---------------
tools/perf/util/metricgroup.c | 7 +++++--
20 files changed, 40 insertions(+), 39 deletions(-)
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [GIT PULL 0/9] perf/urgent fixes
2019-12-16 20:47 [GIT PULL 0/9] perf/urgent fixes Arnaldo Carvalho de Melo
@ 2019-12-17 11:28 ` Ingo Molnar
0 siblings, 0 replies; 24+ messages in thread
From: Ingo Molnar @ 2019-12-17 11:28 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: Thomas Gleixner, Jiri Olsa, Namhyung Kim, Clark Williams,
linux-kernel, linux-perf-users, Ed Maste, John Garry, Kajol Jain,
Mark Rutland, Michael Petlan, Ravi Bangoria, Sudipm Mukherjee,
Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Hi Ingo/Thomas,
>
> Please consider pulling,
>
> Best regards,
>
> - Arnaldo
>
>
> The following changes since commit 761bfc33dd7504de951aa7b9db27a3cc5df1fde6:
>
> Merge remote-tracking branch 'torvalds/master' into perf/urgent (2019-12-11 09:58:16 -0300)
>
> are available in the Git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-urgent-for-mingo-5.5-20191216
>
> for you to fetch changes up to 58b3bafff8257c6946df5d6aeb215b8ac839ed2a:
>
> perf vendor events s390: Remove name from L1D_RO_EXCL_WRITES description (2019-12-16 13:40:26 -0300)
>
> ----------------------------------------------------------------
> perf/urgent fixes:
>
> perf top:
>
> Arnaldo Carvalho de Melo:
>
> - Do not bail out when perf_env__read_cpuid() returns ENOSYS, which
> has been reported happening on aarch64.
>
> perf metricgroup:
>
> Kajol Jain:
>
> - Fix printing event names of metric group with multiple events
>
> vendor events:
>
> x86:
>
> Ravi Bangoria:
>
> - Fix Kernel_Utilization metric.
>
> s390:
>
> Ed Maste:
>
> - Fix counter long description for DTLB1_GPAGE_WRITES and L1D_RO_EXCL_WRITES.
>
> perf header:
>
> Michael Petlan:
>
> - Fix false warning when there are no duplicate cache entries
>
> libtraceevent:
>
> Sudip Mukherjee:
>
> - Allow custom libdir path
>
> API headers:
>
> Arnaldo Carvalho de Melo:
>
> - Sync linux/kvm.h with the kernel sources.
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (3):
> tools headers kvm: Sync linux/kvm.h with the kernel sources
> perf arch: Make the default get_cpuid() return compatible error
> perf top: Do not bail out when perf_env__read_cpuid() returns ENOSYS
>
> Ed Maste (2):
> perf vendor events s390: Fix counter long description for DTLB1_GPAGE_WRITES
> perf vendor events s390: Remove name from L1D_RO_EXCL_WRITES description
>
> Kajol Jain (1):
> perf metricgroup: Fix printing event names of metric group with multiple events
>
> Michael Petlan (1):
> perf header: Fix false warning when there are no duplicate cache entries
>
> Ravi Bangoria (1):
> perf/x86/pmu-events: Fix Kernel_Utilization metric
>
> Sudip Mukherjee (1):
> libtraceevent: Allow custom libdir path
>
> tools/include/uapi/linux/kvm.h | 1 +
> tools/lib/traceevent/Makefile | 5 +++--
> tools/lib/traceevent/plugins/Makefile | 5 +++--
> tools/perf/builtin-top.c | 10 +++++++---
> .../perf/pmu-events/arch/s390/cf_z13/extended.json | 2 +-
> .../perf/pmu-events/arch/s390/cf_z14/extended.json | 2 +-
> .../pmu-events/arch/x86/broadwell/bdw-metrics.json | 2 +-
> .../arch/x86/broadwellde/bdwde-metrics.json | 2 +-
> .../arch/x86/broadwellx/bdx-metrics.json | 2 +-
> .../arch/x86/cascadelakex/clx-metrics.json | 2 +-
> .../pmu-events/arch/x86/haswell/hsw-metrics.json | 2 +-
> .../pmu-events/arch/x86/haswellx/hsx-metrics.json | 2 +-
> .../pmu-events/arch/x86/ivybridge/ivb-metrics.json | 2 +-
> .../pmu-events/arch/x86/ivytown/ivt-metrics.json | 2 +-
> .../pmu-events/arch/x86/jaketown/jkt-metrics.json | 2 +-
> .../arch/x86/sandybridge/snb-metrics.json | 2 +-
> .../pmu-events/arch/x86/skylake/skl-metrics.json | 2 +-
> .../pmu-events/arch/x86/skylakex/skx-metrics.json | 2 +-
> tools/perf/util/header.c | 23 +++++++---------------
> tools/perf/util/metricgroup.c | 7 +++++--
> 20 files changed, 40 insertions(+), 39 deletions(-)
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 24+ messages in thread
* [GIT PULL 0/9] perf/urgent fixes
@ 2018-03-06 17:23 Arnaldo Carvalho de Melo
2018-03-07 8:22 ` Ingo Molnar
0 siblings, 1 reply; 24+ messages in thread
From: Arnaldo Carvalho de Melo @ 2018-03-06 17:23 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, linux-perf-users, Arnaldo Carvalho de Melo,
Adrian Hunter, Alexander Shishkin, Andi Kleen, Cong Wang,
David Ahern, David Woodhouse, Ilya Pronin, Jin Yao, Jiri Olsa,
Kan Liang, Linus Torvalds, Namhyung Kim, Peter Zijlstra,
Radim Krčmář,
Sangwon Hong, stable, Taeung Song, Tom Lendacky, Wang Nan,
Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling,
- Arnaldo
Test results at the end of this message, as usual.
The following changes since commit 58bdf601c2de6071d0386a7a6fa707bd04761c47:
Merge branch 'i2c/for-current-fixed' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux (2018-03-03 14:55:20 -0800)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-urgent-for-mingo-4.16-20180306
for you to fetch changes up to 8f2c9efabe1ed212b88ce1c5cf5e768385c9222e:
perf record: Combine some auxtrace initialization into a single function (2018-03-06 12:03:39 -0300)
----------------------------------------------------------------
perf/urgent fixes:
- Be more robust when drawing arrows in the annotation TUI, avoiding a
segfault when jump instructions have as a target addresses in functions
other that the one currently being annotated. The full fix will come in
the following days, when jumping to other functions will work as call
instructions (Arnaldo Carvalho de Melo)
- Prevent auxtrace_queues__process_index() from queuing AUX area data for
decoding when the --no-itrace option has been used (Adrian Hunter)
- Sync copy of kvm UAPI headers and x86's cpufeatures.h (Arnaldo Carvalho de Melo)
- Fix 'perf stat' CVS output format for non-supported counters (Ilya Pronin)
- Fix crash in 'perf record|perf report' pipe mode (Jiri Olsa)
- Fix annoying 'perf top' overwrite fallback message on older kernels (Kan Liang)
- Fix the usage on the 'perf kallsyms' man page (Sangwon Hong)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
The following changes since commit 317660940fd9dddd3201c2f92e25c27902c753fa:
perf/x86/intel/uncore: Fix Skylake UPI event format (2018-03-04 09:59:00 +0100)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-urgent-for-mingo-4.16-20180306
for you to fetch changes up to de19e5c3c51fdb1ff20d0f61d099db902ff7494b:
perf tools: Fix trigger class trigger_on() (2018-03-06 11:31:14 -0300)
----------------------------------------------------------------
perf/urgent fixes:
- Be more robust when drawing arrows in the annotation TUI, avoiding a
segfault when jump instructions have as a target addresses in functions
other that the one currently being annotated. The full fix will come in
the following days, when jumping to other functions will work as call
instructions (Arnaldo Carvalho de Melo)
- Prevent auxtrace_queues__process_index() from queuing AUX area data for
decoding when the --no-itrace option has been used (Adrian Hunter)
- Sync copy of kvm UAPI headers and x86's cpufeatures.h (Arnaldo Carvalho de Melo)
- Fix 'perf stat' CSV output format for non-supported counters (Ilya Pronin)
- Fix crash in 'perf record|perf report' pipe mode (Jiri Olsa)
- Fix annoying 'perf top' overwrite fallback message on older kernels (Kan Liang)
- Fix the usage on the 'perf kallsyms' man page (Sangwon Hong)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Adrian Hunter (2):
perf auxtrace: Prevent decoding when --no-itrace
perf tools: Fix trigger class trigger_on()
Arnaldo Carvalho de Melo (3):
perf annotate browser: Be more robust when drawing jump arrows
tools headers: Sync copy of kvm UAPI headers
tools headers: Sync x86's cpufeatures.h
Ilya Pronin (1):
perf stat: Fix CVS output format for non-supported counters
Jiri Olsa (1):
perf record: Fix crash in pipe mode
Kan Liang (1):
perf top: Fix annoying fallback message on older kernels
Sangwon Hong (1):
perf kallsyms: Fix the usage on the man page
tools/arch/x86/include/asm/cpufeatures.h | 1 +
tools/include/uapi/linux/kvm.h | 2 ++
tools/perf/Documentation/perf-kallsyms.txt | 2 +-
tools/perf/builtin-record.c | 9 +++++++++
tools/perf/builtin-stat.c | 2 +-
tools/perf/builtin-top.c | 2 +-
tools/perf/perf.h | 1 +
tools/perf/ui/browsers/annotate.c | 25 +++++++++++++++++++++++++
tools/perf/util/auxtrace.c | 15 +++++++++------
tools/perf/util/record.c | 8 ++++++--
tools/perf/util/trigger.h | 9 +++++----
11 files changed, 61 insertions(+), 15 deletions(-)
Test results:
The first ones are container (docker) based builds of tools/perf with and
without libelf support. Where clang is available, it is also used to build
perf with/without libelf.
The objtool and samples/bpf/ builds are disabled now that I'm switching from
using the sources in a local volume to fetching them from a http server to
build it inside the container, to make it easier to build in a container cluster.
Those will come back later.
Several are cross builds, the ones with -x-ARCH and the android one, and those
may not have all the features built, due to lack of multi-arch devel packages,
available and being used so far on just a few, like
debian:experimental-x-{arm64,mipsel}.
The 'perf test' one will perform a variety of tests exercising
tools/perf/util/, tools/lib/{bpf,traceevent,etc}, as well as run perf commands
with a variety of command line event specifications to then intercept the
sys_perf_event syscall to check that the perf_event_attr fields are set up as
expected, among a variety of other unit tests.
Then there is the 'make -C tools/perf build-test' ones, that build tools/perf/
with a variety of feature sets, exercising the build with an incomplete set of
features as well as with a complete one. It is planned to have it run on each
of the containers mentioned above, using some container orchestration
infrastructure. Get in contact if interested in helping having this in place.
# dm
1 alpine:3.4 : Ok gcc (Alpine 5.3.0) 5.3.0
2 alpine:3.5 : Ok gcc (Alpine 6.2.1) 6.2.1 20160822
3 alpine:3.6 : Ok gcc (Alpine 6.3.0) 6.3.0
4 alpine:edge : Ok gcc (Alpine 6.4.0) 6.4.0
5 amazonlinux:1 : Ok gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-11)
6 amazonlinux:2 : Ok gcc (GCC) 7.2.1 20170915 (Red Hat 7.2.1-2)
7 android-ndk:r12b-arm : Ok arm-linux-androideabi-gcc (GCC) 4.9.x 20150123 (prerelease)
8 android-ndk:r15c-arm : Ok arm-linux-androideabi-gcc (GCC) 4.9.x 20150123 (prerelease)
9 centos:5 : Ok gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-55)
10 centos:6 : Ok gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18)
11 centos:7 : Ok gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16)
12 debian:7 : Ok gcc (Debian 4.7.2-5) 4.7.2
13 debian:8 : Ok gcc (Debian 4.9.2-10+deb8u1) 4.9.2
14 debian:9 : Ok gcc (Debian 6.3.0-18) 6.3.0 20170516
15 debian:experimental : Ok gcc (Debian 7.2.0-17) 7.2.1 20171205
16 debian:experimental-x-arm64 : Ok aarch64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
17 debian:experimental-x-mips : Ok mips-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
18 debian:experimental-x-mips64 : Ok mips64-linux-gnuabi64-gcc (Debian 7.2.0-11) 7.2.0
19 debian:experimental-x-mipsel : Ok mipsel-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
20 fedora:20 : Ok gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-7)
21 fedora:21 : Ok gcc (GCC) 4.9.2 20150212 (Red Hat 4.9.2-6)
22 fedora:22 : Ok gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6)
23 fedora:23 : Ok gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6)
24 fedora:24 : Ok gcc (GCC) 6.3.1 20161221 (Red Hat 6.3.1-1)
25 fedora:24-x-ARC-uClibc : Ok arc-linux-gcc (ARCompact ISA Linux uClibc toolchain 2017.09-rc2) 7.1.1 20170710
26 fedora:25 : Ok gcc (GCC) 6.4.1 20170727 (Red Hat 6.4.1-1)
27 fedora:26 : Ok gcc (GCC) 7.2.1 20170915 (Red Hat 7.2.1-2)
28 fedora:27 : Ok gcc (GCC) 7.2.1 20170915 (Red Hat 7.2.1-2)
29 fedora:rawhide : Ok gcc (GCC) 7.2.1 20170829 (Red Hat 7.2.1-1)
30 gentoo-stage3-amd64:latest : Ok gcc (Gentoo 6.4.0-r1 p1.3) 6.4.0
31 mageia:5 : Ok gcc (GCC) 4.9.2
32 mageia:6 : Ok gcc (Mageia 5.4.0-5.mga6) 5.4.0
33 opensuse:42.1 : Ok gcc (SUSE Linux) 4.8.5
34 opensuse:42.2 : Ok gcc (SUSE Linux) 4.8.5
35 opensuse:42.3 : Ok gcc (SUSE Linux) 4.8.5
36 opensuse:tumbleweed : Ok gcc (SUSE Linux) 7.3.0
37 oraclelinux:6 : Ok gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18)
38 oraclelinux:7 : Ok gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16)
39 ubuntu:12.04.5 : Ok gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
40 ubuntu:14.04.4 : Ok gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4
41 ubuntu:14.04.4-x-linaro-arm64 : Ok aarch64-linux-gnu-gcc (Linaro GCC 5.4-2017.05) 5.4.1 20170404
42 ubuntu:15.04 : Ok gcc (Ubuntu 4.9.2-10ubuntu13) 4.9.2
43 ubuntu:16.04 : Ok gcc (Ubuntu 5.4.0-6ubuntu1~16.04.5) 5.4.0 20160609
44 ubuntu:16.04-x-arm : Ok arm-linux-gnueabihf-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
45 ubuntu:16.04-x-arm64 : Ok aarch64-linux-gnu-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
46 ubuntu:16.04-x-powerpc : Ok powerpc-linux-gnu-gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
47 ubuntu:16.04-x-powerpc64 : Ok powerpc64-linux-gnu-gcc (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.1) 5.4.0 20160609
48 ubuntu:16.04-x-powerpc64el : Ok powerpc64le-linux-gnu-gcc (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
49 ubuntu:16.04-x-s390 : Ok s390x-linux-gnu-gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
50 ubuntu:16.10 : Ok gcc (Ubuntu 6.2.0-5ubuntu12) 6.2.0 20161005
51 ubuntu:17.04 : Ok gcc (Ubuntu 6.3.0-12ubuntu2) 6.3.0 20170406
52 ubuntu:17.10 : Ok gcc (Ubuntu 7.2.0-8ubuntu3) 7.2.0
53 ubuntu:18.04 : Ok gcc (Ubuntu 7.2.0-16ubuntu1) 7.2.0
# uname -a
Linux jouet 4.16.0-rc4 #1 SMP Mon Mar 5 12:18:05 -03 2018 x86_64 x86_64 x86_64 GNU/Linux
# perf test
1: vmlinux symtab matches kallsyms : Ok
2: Detect openat syscall event : Ok
3: Detect openat syscall event on all cpus : Ok
4: Read samples using the mmap interface : Ok
5: Test data source output : Ok
6: Parse event definition strings : Ok
7: Simple expression parser : Ok
8: PERF_RECORD_* events & perf_sample fields : Ok
9: Parse perf pmu format : Ok
10: DSO data read : Ok
11: DSO data cache : Ok
12: DSO data reopen : Ok
13: Roundtrip evsel->name : Ok
14: Parse sched tracepoints fields : Ok
15: syscalls:sys_enter_openat event fields : Ok
16: Setup struct perf_event_attr : Ok
17: Match and link multiple hists : Ok
18: 'import perf' in python : Ok
19: Breakpoint overflow signal handler : Ok
20: Breakpoint overflow sampling : Ok
21: Number of exit events of a simple workload : Ok
22: Software clock events period values : Ok
23: Object code reading : Ok
24: Sample parsing : Ok
25: Use a dummy software event to keep tracking : Ok
26: Parse with no sample_id_all bit set : Ok
27: Filter hist entries : Ok
28: Lookup mmap thread : Ok
29: Share thread mg : Ok
30: Sort output of hist entries : Ok
31: Cumulate child hist entries : Ok
32: Track with sched_switch : Ok
33: Filter fds with revents mask in a fdarray : Ok
34: Add fd to a fdarray, making it autogrow : Ok
35: kmod_path__parse : Ok
36: Thread map : Ok
37: LLVM search and compile :
37.1: Basic BPF llvm compile : Ok
37.2: kbuild searching : Ok
37.3: Compile source for BPF prologue generation : Ok
37.4: Compile source for BPF relocation : Ok
38: Session topology : Ok
39: BPF filter :
39.1: Basic BPF filtering : Ok
39.2: BPF pinning : Ok
39.3: BPF prologue generation : Ok
39.4: BPF relocation checker : Ok
40: Synthesize thread map : Ok
41: Remove thread map : Ok
42: Synthesize cpu map : Ok
43: Synthesize stat config : Ok
44: Synthesize stat : Ok
45: Synthesize stat round : Ok
46: Synthesize attr update : Ok
47: Event times : Ok
48: Read backward ring buffer : Ok
49: Print cpu map : Ok
50: Probe SDT events : Ok
51: is_printable_array : Ok
52: Print bitmap : Ok
53: perf hooks : Ok
54: builtin clang support : Skip (not compiled in)
55: unit_number__scnprintf : Ok
56: x86 rdpmc : Ok
57: Convert perf time to TSC : Ok
58: DWARF unwind : Ok
59: x86 instruction decoder - new instructions : Ok
60: Use vfs_getname probe to get syscall args filenames : Ok
61: probe libc's inet_pton & backtrace it with ping : Ok
62: Check open filename arg using perf trace + vfs_getname: Ok
63: probe libc's inet_pton & backtrace it with ping : Ok
64: Add vfs_getname probe to get syscall args filenames : Ok
#
$ make -C tools/perf build-test
make: Entering directory '/home/acme/git/perf/tools/perf'
- tarpkg: ./tests/perf-targz-src-pkg .
make_no_auxtrace_O: make NO_AUXTRACE=1
make_debug_O: make DEBUG=1
make_no_gtk2_O: make NO_GTK2=1
make_install_bin_O: make install-bin
make_no_slang_O: make NO_SLANG=1
make_no_newt_O: make NO_NEWT=1
make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1
make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1
make_perf_o_O: make perf.o
make_util_map_o_O: make util/map.o
make_pure_O: make
make_install_prefix_O: make install prefix=/tmp/krava
make_with_clangllvm_O: make LIBCLANGLLVM=1
make_util_pmu_bison_o_O: make util/pmu-bison.o
make_no_libpython_O: make NO_LIBPYTHON=1
make_no_libelf_O: make NO_LIBELF=1
make_install_O: make install
make_help_O: make help
make_clean_all_O: make clean all
make_no_libaudit_O: make NO_LIBAUDIT=1
make_doc_O: make doc
make_tags_O: make tags
make_no_libdw_dwarf_unwind_O: make NO_LIBDW_DWARF_UNWIND=1
make_install_prefix_slash_O: make install prefix=/tmp/krava/
make_no_backtrace_O: make NO_BACKTRACE=1
make_no_demangle_O: make NO_DEMANGLE=1
make_no_libbionic_O: make NO_LIBBIONIC=1
make_no_libnuma_O: make NO_LIBNUMA=1
make_with_babeltrace_O: make LIBBABELTRACE=1
make_no_libunwind_O: make NO_LIBUNWIND=1
make_minimal_O: make NO_LIBPERL=1 NO_LIBPYTHON=1 NO_NEWT=1 NO_GTK2=1 NO_DEMANGLE=1 NO_LIBELF=1 NO_LIBUNWIND=1 NO_BACKTRACE=1 NO_LIBNUMA=1 NO_LIBAUDIT=1 NO_LIBBIONIC=1 NO_LIBDW_DWARF_UNWIND=1 NO_AUXTRACE=1 NO_LIBBPF=1 NO_LIBCRYPTO=1 NO_SDT=1 NO_JVMTI=1
make_no_libperl_O: make NO_LIBPERL=1
make_no_libbpf_O: make NO_LIBBPF=1
make_static_O: make LDFLAGS=-static
OK
make: Leaving directory '/home/acme/git/perf/tools/perf'
$
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [GIT PULL 0/9] perf/urgent fixes
2018-03-06 17:23 Arnaldo Carvalho de Melo
@ 2018-03-07 8:22 ` Ingo Molnar
2018-03-07 14:23 ` Arnaldo Carvalho de Melo
0 siblings, 1 reply; 24+ messages in thread
From: Ingo Molnar @ 2018-03-07 8:22 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, linux-perf-users, Adrian Hunter,
Alexander Shishkin, Andi Kleen, Cong Wang, David Ahern,
David Woodhouse, Ilya Pronin, Jin Yao, Jiri Olsa, Kan Liang,
Linus Torvalds, Namhyung Kim, Peter Zijlstra,
Radim Krčmář,
Sangwon Hong, stable, Taeung Song, Tom Lendacky, Wang Nan,
Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Hi Ingo,
>
> Please consider pulling,
>
> - Arnaldo
>
> Test results at the end of this message, as usual.
>
> The following changes since commit 58bdf601c2de6071d0386a7a6fa707bd04761c47:
>
> Merge branch 'i2c/for-current-fixed' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux (2018-03-03 14:55:20 -0800)
>
> are available in the Git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-urgent-for-mingo-4.16-20180306
>
> for you to fetch changes up to 8f2c9efabe1ed212b88ce1c5cf5e768385c9222e:
>
> perf record: Combine some auxtrace initialization into a single function (2018-03-06 12:03:39 -0300)
>
> ----------------------------------------------------------------
> perf/urgent fixes:
>
> - Be more robust when drawing arrows in the annotation TUI, avoiding a
> segfault when jump instructions have as a target addresses in functions
> other that the one currently being annotated. The full fix will come in
> the following days, when jumping to other functions will work as call
> instructions (Arnaldo Carvalho de Melo)
>
> - Prevent auxtrace_queues__process_index() from queuing AUX area data for
> decoding when the --no-itrace option has been used (Adrian Hunter)
>
> - Sync copy of kvm UAPI headers and x86's cpufeatures.h (Arnaldo Carvalho de Melo)
>
> - Fix 'perf stat' CVS output format for non-supported counters (Ilya Pronin)
>
> - Fix crash in 'perf record|perf report' pipe mode (Jiri Olsa)
>
> - Fix annoying 'perf top' overwrite fallback message on older kernels (Kan Liang)
>
> - Fix the usage on the 'perf kallsyms' man page (Sangwon Hong)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> The following changes since commit 317660940fd9dddd3201c2f92e25c27902c753fa:
>
> perf/x86/intel/uncore: Fix Skylake UPI event format (2018-03-04 09:59:00 +0100)
>
> are available in the Git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-urgent-for-mingo-4.16-20180306
>
> for you to fetch changes up to de19e5c3c51fdb1ff20d0f61d099db902ff7494b:
>
> perf tools: Fix trigger class trigger_on() (2018-03-06 11:31:14 -0300)
>
> ----------------------------------------------------------------
> perf/urgent fixes:
>
> - Be more robust when drawing arrows in the annotation TUI, avoiding a
> segfault when jump instructions have as a target addresses in functions
> other that the one currently being annotated. The full fix will come in
> the following days, when jumping to other functions will work as call
> instructions (Arnaldo Carvalho de Melo)
>
> - Prevent auxtrace_queues__process_index() from queuing AUX area data for
> decoding when the --no-itrace option has been used (Adrian Hunter)
>
> - Sync copy of kvm UAPI headers and x86's cpufeatures.h (Arnaldo Carvalho de Melo)
>
> - Fix 'perf stat' CSV output format for non-supported counters (Ilya Pronin)
>
> - Fix crash in 'perf record|perf report' pipe mode (Jiri Olsa)
>
> - Fix annoying 'perf top' overwrite fallback message on older kernels (Kan Liang)
>
> - Fix the usage on the 'perf kallsyms' man page (Sangwon Hong)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Adrian Hunter (2):
> perf auxtrace: Prevent decoding when --no-itrace
> perf tools: Fix trigger class trigger_on()
>
> Arnaldo Carvalho de Melo (3):
> perf annotate browser: Be more robust when drawing jump arrows
> tools headers: Sync copy of kvm UAPI headers
> tools headers: Sync x86's cpufeatures.h
>
> Ilya Pronin (1):
> perf stat: Fix CVS output format for non-supported counters
>
> Jiri Olsa (1):
> perf record: Fix crash in pipe mode
>
> Kan Liang (1):
> perf top: Fix annoying fallback message on older kernels
>
> Sangwon Hong (1):
> perf kallsyms: Fix the usage on the man page
>
> tools/arch/x86/include/asm/cpufeatures.h | 1 +
> tools/include/uapi/linux/kvm.h | 2 ++
> tools/perf/Documentation/perf-kallsyms.txt | 2 +-
> tools/perf/builtin-record.c | 9 +++++++++
> tools/perf/builtin-stat.c | 2 +-
> tools/perf/builtin-top.c | 2 +-
> tools/perf/perf.h | 1 +
> tools/perf/ui/browsers/annotate.c | 25 +++++++++++++++++++++++++
> tools/perf/util/auxtrace.c | 15 +++++++++------
> tools/perf/util/record.c | 8 ++++++--
> tools/perf/util/trigger.h | 9 +++++----
> 11 files changed, 61 insertions(+), 15 deletions(-)
Pulled, thanks a lot Arnaldo!
Note that there's a new, minor conflict between perf/core and perf/urgent - I
resolved it and merged perf/urgent into perf/core, please double check my
resolution.
Ingo
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [GIT PULL 0/9] perf/urgent fixes
2018-03-07 8:22 ` Ingo Molnar
@ 2018-03-07 14:23 ` Arnaldo Carvalho de Melo
0 siblings, 0 replies; 24+ messages in thread
From: Arnaldo Carvalho de Melo @ 2018-03-07 14:23 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, linux-perf-users, Adrian Hunter,
Alexander Shishkin, Andi Kleen, Cong Wang, David Ahern,
David Woodhouse, Ilya Pronin, Jin Yao, Jiri Olsa, Kan Liang,
Linus Torvalds, Namhyung Kim, Peter Zijlstra,
Radim Krčmář,
Sangwon Hong, stable, Taeung Song, Tom Lendacky, Wang Nan,
Arnaldo Carvalho de Melo
Em Wed, Mar 07, 2018 at 09:22:58AM +0100, Ingo Molnar escreveu:
> Pulled, thanks a lot Arnaldo!
> Note that there's a new, minor conflict between perf/core and perf/urgent - I
> resolved it and merged perf/urgent into perf/core, please double check my
> resolution.
Thanks, everything seems well and dandy,
- Arnaldo
^ permalink raw reply [flat|nested] 24+ messages in thread
* [GIT PULL 0/9] perf/urgent fixes
@ 2015-01-21 15:01 Arnaldo Carvalho de Melo
2015-01-28 14:42 ` Ingo Molnar
0 siblings, 1 reply; 24+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-01-21 15:01 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Borislav Petkov, David Ahern, Don Zickus, Frederic Weisbecker,
Jiri Olsa, Li Zefan, Masami Hiramatsu, Mike Galbraith,
Namhyung Kim, Paul Mackerras, Peter Zijlstra, Rabin Vincent,
Stephane Eranian, Wang Nan, Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling,
- Arnaldo
The following changes since commit d01de2389c0190f5959f0a1258a2e87d2fe4ca82:
Merge tag 'perf-urgent-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent (2015-01-17 11:04:35 +0100)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-urgent-for-mingo
for you to fetch changes up to 25dd9171f51c482eb7c4dc8618766ae733756e2d:
perf probe: Fix probing kretprobes (2015-01-21 10:06:24 -0300)
----------------------------------------------------------------
perf/urgent fixes:
User visible:
- Fix probing at function return (Namhyumg Kim)
Developer stuff:
- Symbol processing changes necessary for fixing support for
kretprobes in 'perf probe' (Namhyung Kim, Arnaldo Carvalho de Melo)
- Annotation memory leaks and instruction parsing fixes (Rabin Vincent)
- Fix perl build on ARM64 (Wang Nam)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Arnaldo Carvalho de Melo (3):
perf evlist: Remove extraneous 'was' on error message
perf symbols: Introduce method to iterate symbols ordered by name
perf symbols: Introduce 'for' method to iterate over the symbols with a given name
Namhyung Kim (3):
perf symbols: Return the first entry with a given name in find_by_name method
perf probe: Do not rely on map__load() filter to find symbols
perf probe: Fix probing kretprobes
Rabin Vincent (2):
perf annotate: Handle ins parsing failures
perf annotate: Fix memory leaks in LOCK handling
Wang Nan (1):
perf scripting perl: Force to use stdbool
tools/perf/scripts/perl/Perf-Trace-Util/Context.c | 5 +++-
tools/perf/util/annotate.c | 18 +++++++++---
tools/perf/util/evlist.c | 2 +-
tools/perf/util/map.h | 16 +++++++++++
tools/perf/util/probe-event.c | 34 +++++++++++------------
tools/perf/util/symbol.c | 31 +++++++++++++++++++--
tools/perf/util/symbol.h | 1 +
7 files changed, 80 insertions(+), 27 deletions(-)
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [GIT PULL 0/9] perf/urgent fixes
2015-01-21 15:01 Arnaldo Carvalho de Melo
@ 2015-01-28 14:42 ` Ingo Molnar
0 siblings, 0 replies; 24+ messages in thread
From: Ingo Molnar @ 2015-01-28 14:42 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Adrian Hunter, Borislav Petkov, David Ahern,
Don Zickus, Frederic Weisbecker, Jiri Olsa, Li Zefan,
Masami Hiramatsu, Mike Galbraith, Namhyung Kim, Paul Mackerras,
Peter Zijlstra, Rabin Vincent, Stephane Eranian, Wang Nan,
Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Hi Ingo,
>
> Please consider pulling,
>
> - Arnaldo
>
> The following changes since commit d01de2389c0190f5959f0a1258a2e87d2fe4ca82:
>
> Merge tag 'perf-urgent-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent (2015-01-17 11:04:35 +0100)
>
> are available in the git repository at:
>
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-urgent-for-mingo
>
> for you to fetch changes up to 25dd9171f51c482eb7c4dc8618766ae733756e2d:
>
> perf probe: Fix probing kretprobes (2015-01-21 10:06:24 -0300)
>
> ----------------------------------------------------------------
> perf/urgent fixes:
>
> User visible:
>
> - Fix probing at function return (Namhyumg Kim)
>
> Developer stuff:
>
> - Symbol processing changes necessary for fixing support for
> kretprobes in 'perf probe' (Namhyung Kim, Arnaldo Carvalho de Melo)
>
> - Annotation memory leaks and instruction parsing fixes (Rabin Vincent)
>
> - Fix perl build on ARM64 (Wang Nam)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (3):
> perf evlist: Remove extraneous 'was' on error message
> perf symbols: Introduce method to iterate symbols ordered by name
> perf symbols: Introduce 'for' method to iterate over the symbols with a given name
>
> Namhyung Kim (3):
> perf symbols: Return the first entry with a given name in find_by_name method
> perf probe: Do not rely on map__load() filter to find symbols
> perf probe: Fix probing kretprobes
>
> Rabin Vincent (2):
> perf annotate: Handle ins parsing failures
> perf annotate: Fix memory leaks in LOCK handling
>
> Wang Nan (1):
> perf scripting perl: Force to use stdbool
>
> tools/perf/scripts/perl/Perf-Trace-Util/Context.c | 5 +++-
> tools/perf/util/annotate.c | 18 +++++++++---
> tools/perf/util/evlist.c | 2 +-
> tools/perf/util/map.h | 16 +++++++++++
> tools/perf/util/probe-event.c | 34 +++++++++++------------
> tools/perf/util/symbol.c | 31 +++++++++++++++++++--
> tools/perf/util/symbol.h | 1 +
> 7 files changed, 80 insertions(+), 27 deletions(-)
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 24+ messages in thread
* [GIT PULL 0/9] perf/urgent fixes
@ 2013-09-19 18:40 Arnaldo Carvalho de Melo
2013-09-20 5:15 ` Ingo Molnar
0 siblings, 1 reply; 24+ messages in thread
From: Arnaldo Carvalho de Melo @ 2013-09-19 18:40 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Ananth N Mavinakayanahalli, Borislav Petkov, David Ahern,
Frederic Weisbecker, H. Peter Anvin, Jiri Olsa, Masami Hiramatsu,
Mike Galbraith, Namhyung Kim, Paul Mackerras, Peter Zijlstra,
Prashanth Nageshappa, Srikar Dronamraju, Stephane Eranian,
Steven Rostedt, Thomas Gleixner, Vinson Lee, Vinson Lee,
yrl.pp-manager.tt, Arnaldo Carvalho de Melo
From: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
Hi Ingo,
Please consider pulling,
- Arnaldo
The following changes since commit a8e0108cac181a7b141dacaa99ea52efaf9b5f07:
perf: Fix UAPI export of PERF_EVENT_IOC_ID (2013-09-18 11:29:07 +0200)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux tags/perf-urgent-for-mingo
for you to fetch changes up to ce7eebe5c3deef8e19c177c24ee75843256e69ca:
tools lib lk: Uninclude linux/magic.h in debugfs.c (2013-09-19 15:08:53 -0300)
----------------------------------------------------------------
perf/urgent fixes:
. Check for SIGINT in more loops, allowing tools such as 'perf report' to
react faster to control+C.
. Fix objdump line parsing offset validation in the annotate code,
from Adrian Hunter.
. Fix buildid cache handling of kallsyms with kcore, from Adrian Hunter.
. Fix compile with libelf without get_phdrnum, from Adrian Hunter.
. Sharpen the libaudit dependencies test, refusing to build with older
libraries that doesn't have all the functions used by 'perf trace", fix
from Ingo Molnar.
. Fill in new definitions for madvise()/mmap() flags to fix the build in
older systems, from Ingo Molnar.
. Fix old GCC build error in older systems in the kallsyms parsing code in
trace-event-parse.c, from Ingo Molnar.
. Ignore DWARF declaration tags, allowing, for instance, that the
$ perf probe -L getname
command succeeds in showing the source code for the 'getname' kernel
function, telling in which lines probes can be inserted, fix from
Masami Hiramatsu.
. Fix linux/magic.h related build breakage in some systems, fix from
Vinson Lee.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Adrian Hunter (3):
perf annotate: Fix objdump line parsing offset validation
perf tools: Fix buildid cache handling of kallsyms with kcore
perf tools: Fix compile with libelf without get_phdrnum
Arnaldo Carvalho de Melo (1):
perf session: Check for SIGINT in more loops
Ingo Molnar (3):
perf tools: Sharpen the libaudit dependencies test
perf tools: Fill in new definitions for madvise()/mmap() flags
perf tools: Fix old GCC build error in trace-event-parse.c:parse_proc_kallsyms()
Masami Hiramatsu (1):
perf probe: Fix finder to find lines of given function
Vinson Lee (1):
tools lib lk: Uninclude linux/magic.h in debugfs.c
tools/lib/lk/debugfs.c | 1 -
tools/perf/builtin-inject.c | 2 --
tools/perf/builtin-report.c | 5 +++--
tools/perf/builtin-script.c | 2 --
tools/perf/builtin-trace.c | 17 +++++++++++++++
tools/perf/config/Makefile | 3 +++
tools/perf/config/feature-tests.mak | 10 +++++++++
tools/perf/util/annotate.c | 2 +-
tools/perf/util/dwarf-aux.c | 19 +++++++++++++++++
tools/perf/util/dwarf-aux.h | 3 +++
tools/perf/util/header.c | 41 +++++++++++++++++++++++++------------
tools/perf/util/hist.c | 2 ++
tools/perf/util/probe-finder.c | 12 +++++------
tools/perf/util/session.c | 9 ++++++--
tools/perf/util/session.h | 4 ++++
tools/perf/util/symbol-elf.c | 16 +++++++++++++++
tools/perf/util/trace-event-parse.c | 2 +-
17 files changed, 119 insertions(+), 31 deletions(-)
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [GIT PULL 0/9] perf/urgent fixes
2013-09-19 18:40 Arnaldo Carvalho de Melo
@ 2013-09-20 5:15 ` Ingo Molnar
0 siblings, 0 replies; 24+ messages in thread
From: Ingo Molnar @ 2013-09-20 5:15 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Ananth N Mavinakayanahalli, Borislav Petkov, David Ahern,
Frederic Weisbecker, H. Peter Anvin, Jiri Olsa, Masami Hiramatsu,
Mike Galbraith, Namhyung Kim, Paul Mackerras, Peter Zijlstra,
Prashanth Nageshappa, Srikar Dronamraju, Stephane Eranian,
Steven Rostedt, Thomas Gleixner, Vinson Lee, Vinson Lee,
yrl.pp-manager.tt, Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@infradead.org> wrote:
> From: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
>
> Hi Ingo,
>
> Please consider pulling,
>
> - Arnaldo
>
> The following changes since commit a8e0108cac181a7b141dacaa99ea52efaf9b5f07:
>
> perf: Fix UAPI export of PERF_EVENT_IOC_ID (2013-09-18 11:29:07 +0200)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux tags/perf-urgent-for-mingo
>
> for you to fetch changes up to ce7eebe5c3deef8e19c177c24ee75843256e69ca:
>
> tools lib lk: Uninclude linux/magic.h in debugfs.c (2013-09-19 15:08:53 -0300)
>
> ----------------------------------------------------------------
> perf/urgent fixes:
>
> . Check for SIGINT in more loops, allowing tools such as 'perf report' to
> react faster to control+C.
>
> . Fix objdump line parsing offset validation in the annotate code,
> from Adrian Hunter.
>
> . Fix buildid cache handling of kallsyms with kcore, from Adrian Hunter.
>
> . Fix compile with libelf without get_phdrnum, from Adrian Hunter.
>
> . Sharpen the libaudit dependencies test, refusing to build with older
> libraries that doesn't have all the functions used by 'perf trace", fix
> from Ingo Molnar.
>
> . Fill in new definitions for madvise()/mmap() flags to fix the build in
> older systems, from Ingo Molnar.
>
> . Fix old GCC build error in older systems in the kallsyms parsing code in
> trace-event-parse.c, from Ingo Molnar.
>
> . Ignore DWARF declaration tags, allowing, for instance, that the
>
> $ perf probe -L getname
>
> command succeeds in showing the source code for the 'getname' kernel
> function, telling in which lines probes can be inserted, fix from
> Masami Hiramatsu.
>
> . Fix linux/magic.h related build breakage in some systems, fix from
> Vinson Lee.
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Adrian Hunter (3):
> perf annotate: Fix objdump line parsing offset validation
> perf tools: Fix buildid cache handling of kallsyms with kcore
> perf tools: Fix compile with libelf without get_phdrnum
>
> Arnaldo Carvalho de Melo (1):
> perf session: Check for SIGINT in more loops
>
> Ingo Molnar (3):
> perf tools: Sharpen the libaudit dependencies test
> perf tools: Fill in new definitions for madvise()/mmap() flags
> perf tools: Fix old GCC build error in trace-event-parse.c:parse_proc_kallsyms()
>
> Masami Hiramatsu (1):
> perf probe: Fix finder to find lines of given function
>
> Vinson Lee (1):
> tools lib lk: Uninclude linux/magic.h in debugfs.c
>
> tools/lib/lk/debugfs.c | 1 -
> tools/perf/builtin-inject.c | 2 --
> tools/perf/builtin-report.c | 5 +++--
> tools/perf/builtin-script.c | 2 --
> tools/perf/builtin-trace.c | 17 +++++++++++++++
> tools/perf/config/Makefile | 3 +++
> tools/perf/config/feature-tests.mak | 10 +++++++++
> tools/perf/util/annotate.c | 2 +-
> tools/perf/util/dwarf-aux.c | 19 +++++++++++++++++
> tools/perf/util/dwarf-aux.h | 3 +++
> tools/perf/util/header.c | 41 +++++++++++++++++++++++++------------
> tools/perf/util/hist.c | 2 ++
> tools/perf/util/probe-finder.c | 12 +++++------
> tools/perf/util/session.c | 9 ++++++--
> tools/perf/util/session.h | 4 ++++
> tools/perf/util/symbol-elf.c | 16 +++++++++++++++
> tools/perf/util/trace-event-parse.c | 2 +-
> 17 files changed, 119 insertions(+), 31 deletions(-)
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 24+ messages in thread
* [GIT PULL 0/9] perf/urgent fixes
@ 2012-03-30 16:09 Arnaldo Carvalho de Melo
2012-03-31 7:31 ` Ingo Molnar
0 siblings, 1 reply; 24+ messages in thread
From: Arnaldo Carvalho de Melo @ 2012-03-30 16:09 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo,
Ananth N Mavinakayanahalli, Benjamin Herrenschmidt, David Ahern,
David S. Miller, Frederic Weisbecker, Jiri Olsa, Linus Torvalds,
Masami Hiramatsu, Mike Galbraith, Namhyung Kim, Namhyung Kim,
Paul Mackerras, Peter Zijlstra, Prashanth Nageshappa,
Sorin Dumitru, Srikar Dronamraju, Stephane Eranian,
Steven Rostedt, Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling.
But please test the bison/flex thing, it was a bit tricky to make it
work with/without O=, and also to make it work on at least RHEL6.2, Fedora 14
and Ubuntu 10.04 LTS.
I know that bison barfs on Fedora 8, but left the fix for later.
- Arnaldo
The following changes since commit b01c3a0010aabadf745f3e7fdb9cab682e0a28a2:
perf: Move mmap page data_head offset assertion out of header (2012-03-24 08:46:59 +0100)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux perf/urgent
for you to fetch changes up to 65f3e56e0c81d1f581c4bdef7646ae5a8d51f494:
perf tools: Remove auto-generated bison/flex files (2012-03-30 12:43:17 -0300)
----------------------------------------------------------------
perf/urgent Fixes
. Assorted fixes from David Miller
. Fix display of first level of callchains, from Frederic Weisbecker
. Remove auto-generated bison/flex files, from Ingo Molnar and me
. Add missing ref-cycles event back to event parser, from Namhyung Kim
. Ignore DWARF decl tags to properly resolve function name do address,
from Prashanth Nageshappa
. Fix bug in raw sample parsing bug introduced in the branch stack patches,
from Stephane Eranian
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Arnaldo Carvalho de Melo (1):
perf annotate: Fix off by one symbol hist size allocation and hit accounting
David Miller (3):
perf symbols: Do not include libgen.h
perf symbols: Handle NULL dso in dso__name_len
perf annotate: addr2line wants addresses in same format as objdump
Frederic Weisbecker (1):
perf tools: Fix display of first level of callchains
Ingo Molnar (1):
perf tools: Remove auto-generated bison/flex files
Namhyung Kim (1):
perf tools: Add missing ref-cycles event back to event parser
Prashanth Nageshappa (1):
perf probe: Finder fails to resolve function name to address
Stephane Eranian (1):
perf tools: Fix bug in raw sample parsing
tools/perf/Makefile | 47 +-
tools/perf/util/annotate.c | 8 +-
tools/perf/util/evsel.c | 2 +
tools/perf/util/hist.c | 157 ++-
tools/perf/util/parse-events-bison.c | 1917 ----------------------------
tools/perf/util/parse-events-bison.h | 81 --
tools/perf/util/parse-events-flex.c | 2272 ----------------------------------
tools/perf/util/parse-events-flex.h | 316 -----
tools/perf/util/parse-events.l | 1 +
tools/perf/util/pmu-bison.c | 1663 -------------------------
tools/perf/util/pmu-bison.h | 73 --
tools/perf/util/pmu-flex.c | 1821 ---------------------------
tools/perf/util/pmu-flex.h | 316 -----
tools/perf/util/probe-finder.c | 4 +-
tools/perf/util/symbol.c | 3 +-
15 files changed, 135 insertions(+), 8546 deletions(-)
delete mode 100644 tools/perf/util/parse-events-bison.c
delete mode 100644 tools/perf/util/parse-events-bison.h
delete mode 100644 tools/perf/util/parse-events-flex.c
delete mode 100644 tools/perf/util/parse-events-flex.h
delete mode 100644 tools/perf/util/pmu-bison.c
delete mode 100644 tools/perf/util/pmu-bison.h
delete mode 100644 tools/perf/util/pmu-flex.c
delete mode 100644 tools/perf/util/pmu-flex.h
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [GIT PULL 0/9] perf/urgent fixes
2012-03-30 16:09 Arnaldo Carvalho de Melo
@ 2012-03-31 7:31 ` Ingo Molnar
0 siblings, 0 replies; 24+ messages in thread
From: Ingo Molnar @ 2012-03-31 7:31 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Ananth N Mavinakayanahalli, Benjamin Herrenschmidt,
David Ahern, David S. Miller, Frederic Weisbecker, Jiri Olsa,
Linus Torvalds, Masami Hiramatsu, Mike Galbraith, Namhyung Kim,
Namhyung Kim, Paul Mackerras, Peter Zijlstra,
Prashanth Nageshappa, Sorin Dumitru, Srikar Dronamraju,
Stephane Eranian, Steven Rostedt, Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@infradead.org> wrote:
> Hi Ingo,
>
> Please consider pulling.
>
> But please test the bison/flex thing, it was a bit tricky to make it
> work with/without O=, and also to make it work on at least RHEL6.2, Fedora 14
> and Ubuntu 10.04 LTS.
>
> I know that bison barfs on Fedora 8, but left the fix for later.
>
> - Arnaldo
>
> The following changes since commit b01c3a0010aabadf745f3e7fdb9cab682e0a28a2:
>
> perf: Move mmap page data_head offset assertion out of header (2012-03-24 08:46:59 +0100)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux perf/urgent
>
> for you to fetch changes up to 65f3e56e0c81d1f581c4bdef7646ae5a8d51f494:
>
> perf tools: Remove auto-generated bison/flex files (2012-03-30 12:43:17 -0300)
>
> ----------------------------------------------------------------
> perf/urgent Fixes
>
> . Assorted fixes from David Miller
>
> . Fix display of first level of callchains, from Frederic Weisbecker
>
> . Remove auto-generated bison/flex files, from Ingo Molnar and me
>
> . Add missing ref-cycles event back to event parser, from Namhyung Kim
>
> . Ignore DWARF decl tags to properly resolve function name do address,
> from Prashanth Nageshappa
>
> . Fix bug in raw sample parsing bug introduced in the branch stack patches,
> from Stephane Eranian
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (1):
> perf annotate: Fix off by one symbol hist size allocation and hit accounting
>
> David Miller (3):
> perf symbols: Do not include libgen.h
> perf symbols: Handle NULL dso in dso__name_len
> perf annotate: addr2line wants addresses in same format as objdump
>
> Frederic Weisbecker (1):
> perf tools: Fix display of first level of callchains
>
> Ingo Molnar (1):
> perf tools: Remove auto-generated bison/flex files
>
> Namhyung Kim (1):
> perf tools: Add missing ref-cycles event back to event parser
>
> Prashanth Nageshappa (1):
> perf probe: Finder fails to resolve function name to address
>
> Stephane Eranian (1):
> perf tools: Fix bug in raw sample parsing
>
> tools/perf/Makefile | 47 +-
> tools/perf/util/annotate.c | 8 +-
> tools/perf/util/evsel.c | 2 +
> tools/perf/util/hist.c | 157 ++-
> tools/perf/util/parse-events-bison.c | 1917 ----------------------------
> tools/perf/util/parse-events-bison.h | 81 --
> tools/perf/util/parse-events-flex.c | 2272 ----------------------------------
> tools/perf/util/parse-events-flex.h | 316 -----
> tools/perf/util/parse-events.l | 1 +
> tools/perf/util/pmu-bison.c | 1663 -------------------------
> tools/perf/util/pmu-bison.h | 73 --
> tools/perf/util/pmu-flex.c | 1821 ---------------------------
> tools/perf/util/pmu-flex.h | 316 -----
> tools/perf/util/probe-finder.c | 4 +-
> tools/perf/util/symbol.c | 3 +-
> 15 files changed, 135 insertions(+), 8546 deletions(-)
> delete mode 100644 tools/perf/util/parse-events-bison.c
> delete mode 100644 tools/perf/util/parse-events-bison.h
> delete mode 100644 tools/perf/util/parse-events-flex.c
> delete mode 100644 tools/perf/util/parse-events-flex.h
> delete mode 100644 tools/perf/util/pmu-bison.c
> delete mode 100644 tools/perf/util/pmu-bison.h
> delete mode 100644 tools/perf/util/pmu-flex.c
> delete mode 100644 tools/perf/util/pmu-flex.h
Pulled, thanks a lot Arnaldo!
It's working fine on all my test-boxes.
Thanks,
Ingo
^ permalink raw reply [flat|nested] 24+ messages in thread
end of thread, other threads:[~2019-12-17 11:28 UTC | newest]
Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-09-12 19:24 [GIT PULL 0/9] perf/urgent fixes Arnaldo Carvalho de Melo
2017-09-12 19:24 ` [PATCH 1/9] tools include linux: Guard against redefinition of some macros Arnaldo Carvalho de Melo
2017-09-12 19:24 ` [PATCH 2/9] perf tests: Fix compile when libunwind's unwind.h is available Arnaldo Carvalho de Melo
2017-09-12 19:24 ` [PATCH 3/9] tools lib api: Fix make DEBUG=1 build Arnaldo Carvalho de Melo
2017-09-12 19:24 ` [PATCH 4/9] perf tools: Open perf.data with O_CLOEXEC flag Arnaldo Carvalho de Melo
2017-09-12 19:24 ` [PATCH 5/9] perf ui progress: Make sure we always define step value Arnaldo Carvalho de Melo
2017-09-12 19:24 ` [PATCH 6/9] perf ui progress: Fix progress update Arnaldo Carvalho de Melo
2017-09-12 19:24 ` [PATCH 7/9] perf config: Check not only section->from_system_config but also item's Arnaldo Carvalho de Melo
2017-09-12 19:24 ` [PATCH 8/9] perf tools: Support running perf binaries with a dash in their name Arnaldo Carvalho de Melo
2017-09-12 19:24 ` [PATCH 9/9] perf stat: Wait for the correct child Arnaldo Carvalho de Melo
2017-09-13 7:26 ` [GIT PULL 0/9] perf/urgent fixes Ingo Molnar
2017-09-13 7:38 ` [PATCH] tools/include: Sync kernel ABI headers with tooling headers Ingo Molnar
2017-09-29 20:04 ` [tip:perf/urgent] tools include: " tip-bot for Ingo Molnar
-- strict thread matches above, loose matches on Subject: below --
2019-12-16 20:47 [GIT PULL 0/9] perf/urgent fixes Arnaldo Carvalho de Melo
2019-12-17 11:28 ` Ingo Molnar
2018-03-06 17:23 Arnaldo Carvalho de Melo
2018-03-07 8:22 ` Ingo Molnar
2018-03-07 14:23 ` Arnaldo Carvalho de Melo
2015-01-21 15:01 Arnaldo Carvalho de Melo
2015-01-28 14:42 ` Ingo Molnar
2013-09-19 18:40 Arnaldo Carvalho de Melo
2013-09-20 5:15 ` Ingo Molnar
2012-03-30 16:09 Arnaldo Carvalho de Melo
2012-03-31 7:31 ` Ingo Molnar
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).