All of lore.kernel.org
 help / color / mirror / Atom feed
* [GIT PULL 00/11] perf/core improvements and fixes
@ 2016-06-06 21:04 Arnaldo Carvalho de Melo
  2016-06-06 21:04 ` [PATCH 01/11] perf evsel: Provide way to extract integer value from format_field Arnaldo Carvalho de Melo
                   ` (11 more replies)
  0 siblings, 12 replies; 70+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-06-06 21:04 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
	Alexander Shishkin, Andi Kleen, David Ahern, He Kuang, Jiri Olsa,
	kernel, Lucas Stach, Masami Hiramatsu, Milian Wolff,
	Namhyung Kim, Peter Zijlstra, pi3orama, Taeung Song, Wang Nan,
	Zefan Li, Arnaldo Carvalho de Melo

Hi Ingo,

	Please consider pulling,

- Arnaldo

The following changes since commit 030ba6cd105c68ce919c5e239853b567490cd059:

  perf/x86/intel: Use new topology_max_smt_threads() in HT leak workaround (2016-06-03 09:41:25 +0200)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-20160606

for you to fetch changes up to 7db91f251056f90fec4121f028680ab3153a0f3c:

  perf config: Handle the error when config set is NULL at collect_config() (2016-06-06 17:43:19 -0300)

----------------------------------------------------------------
perf/core improvements and fixes:

User visible:

- Tooling support for TopDown counters, recently added to the kernel (Andi Kleen)

- Show call graphs in 'perf script' when 1st event doesn't have it but some other has (He Kuang)

- Fix terminal cleanup when handling invalid .perfconfig files in 'perf top' (Taeung Song)

Build fixes:

- Respect CROSS_COMPILE for the linker in libapi (Lucas Stach)

Infrastructure:

- Fix perf_evlist__alloc_mmap() failure path (Wang Nan)

- Provide way to extract integer value from format_field (Arnaldo Carvalho de Melo)

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

----------------------------------------------------------------
Andi Kleen (5):
      perf test: Ignore .scale and other special files
      perf stat: Basic support for TopDown in perf stat
      perf stat: Add computation of TopDown formulas
      perf stat: Print topology/time headers with --metric-only
      perf stat: Add missing aggregation headers for --metric-only CSV

Arnaldo Carvalho de Melo (1):
      perf evsel: Provide way to extract integer value from format_field

He Kuang (1):
      perf script: Show call graphs when 1st event doesn't have it but some other has

Lucas Stach (1):
      tools lib api: Respect CROSS_COMPILE for the linker

Taeung Song (2):
      perf config: Fix abnormal termination at perf_parse_file()
      perf config: Handle the error when config set is NULL at collect_config()

Wang Nan (1):
      perf evlist: Fix alloc_mmap() failure path

 tools/lib/api/Makefile                 |   1 +
 tools/perf/Documentation/perf-stat.txt |  32 +++++++
 tools/perf/arch/x86/util/Build         |   1 +
 tools/perf/arch/x86/util/group.c       |  27 ++++++
 tools/perf/builtin-script.c            |  23 +++--
 tools/perf/builtin-stat.c              | 165 ++++++++++++++++++++++++++++++---
 tools/perf/tests/parse-events.c        |   4 +-
 tools/perf/util/config.c               |  22 +++--
 tools/perf/util/evlist.c               |   5 +-
 tools/perf/util/evsel.c                |  25 +++--
 tools/perf/util/evsel.h                |   2 +
 tools/perf/util/group.h                |   7 ++
 tools/perf/util/parse-events.l         |   1 +
 tools/perf/util/stat-shadow.c          | 162 ++++++++++++++++++++++++++++++++
 tools/perf/util/stat.c                 |   5 +
 tools/perf/util/stat.h                 |   5 +
 16 files changed, 441 insertions(+), 46 deletions(-)
 create mode 100644 tools/perf/arch/x86/util/group.c
 create mode 100644 tools/perf/util/group.h

^ permalink raw reply	[flat|nested] 70+ messages in thread

* [PATCH 01/11] perf evsel: Provide way to extract integer value from format_field
  2016-06-06 21:04 [GIT PULL 00/11] perf/core improvements and fixes Arnaldo Carvalho de Melo
@ 2016-06-06 21:04 ` Arnaldo Carvalho de Melo
  2016-06-06 21:04 ` [PATCH 02/11] perf evlist: Fix alloc_mmap() failure path Arnaldo Carvalho de Melo
                   ` (10 subsequent siblings)
  11 siblings, 0 replies; 70+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-06-06 21:04 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
	David Ahern, Jiri Olsa, Milian Wolff, Namhyung Kim, Wang Nan

From: Arnaldo Carvalho de Melo <acme@redhat.com>

Out of perf_evsel__intval(), that requires passing the variable name,
that will then be searched in the list of tracepoint variables for the
given evsel.

In cases such as syscall file descriptor ("fd") tracking, this is
wasteful, we need just to use perf_evsel__field() and cache the
format_field.

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Milian Wolff <milian.wolff@kdab.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-r6f89jx9j5nkx037d0naviqy@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/util/evsel.c | 25 +++++++++++++++----------
 tools/perf/util/evsel.h |  2 ++
 2 files changed, 17 insertions(+), 10 deletions(-)

diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
index 8d30cbda51b6..f4f01b2e9dcc 100644
--- a/tools/perf/util/evsel.c
+++ b/tools/perf/util/evsel.c
@@ -2251,17 +2251,11 @@ void *perf_evsel__rawptr(struct perf_evsel *evsel, struct perf_sample *sample,
 	return sample->raw_data + offset;
 }
 
-u64 perf_evsel__intval(struct perf_evsel *evsel, struct perf_sample *sample,
-		       const char *name)
+u64 format_field__intval(struct format_field *field, struct perf_sample *sample,
+			 bool needs_swap)
 {
-	struct format_field *field = perf_evsel__field(evsel, name);
-	void *ptr;
 	u64 value;
-
-	if (!field)
-		return 0;
-
-	ptr = sample->raw_data + field->offset;
+	void *ptr = sample->raw_data + field->offset;
 
 	switch (field->size) {
 	case 1:
@@ -2279,7 +2273,7 @@ u64 perf_evsel__intval(struct perf_evsel *evsel, struct perf_sample *sample,
 		return 0;
 	}
 
-	if (!evsel->needs_swap)
+	if (!needs_swap)
 		return value;
 
 	switch (field->size) {
@@ -2296,6 +2290,17 @@ u64 perf_evsel__intval(struct perf_evsel *evsel, struct perf_sample *sample,
 	return 0;
 }
 
+u64 perf_evsel__intval(struct perf_evsel *evsel, struct perf_sample *sample,
+		       const char *name)
+{
+	struct format_field *field = perf_evsel__field(evsel, name);
+
+	if (!field)
+		return 0;
+
+	return field ? format_field__intval(field, sample, evsel->needs_swap) : 0;
+}
+
 bool perf_evsel__fallback(struct perf_evsel *evsel, int err,
 			  char *msg, size_t msgsize)
 {
diff --git a/tools/perf/util/evsel.h b/tools/perf/util/evsel.h
index 028412b32d5a..828ddd1c8947 100644
--- a/tools/perf/util/evsel.h
+++ b/tools/perf/util/evsel.h
@@ -261,6 +261,8 @@ static inline char *perf_evsel__strval(struct perf_evsel *evsel,
 
 struct format_field;
 
+u64 format_field__intval(struct format_field *field, struct perf_sample *sample, bool needs_swap);
+
 struct format_field *perf_evsel__field(struct perf_evsel *evsel, const char *name);
 
 #define perf_evsel__match(evsel, t, c)		\
-- 
2.5.5

^ permalink raw reply related	[flat|nested] 70+ messages in thread

* [PATCH 02/11] perf evlist: Fix alloc_mmap() failure path
  2016-06-06 21:04 [GIT PULL 00/11] perf/core improvements and fixes Arnaldo Carvalho de Melo
  2016-06-06 21:04 ` [PATCH 01/11] perf evsel: Provide way to extract integer value from format_field Arnaldo Carvalho de Melo
@ 2016-06-06 21:04 ` Arnaldo Carvalho de Melo
  2016-06-06 21:04 ` [PATCH 03/11] tools lib api: Respect CROSS_COMPILE for the linker Arnaldo Carvalho de Melo
                   ` (9 subsequent siblings)
  11 siblings, 0 replies; 70+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-06-06 21:04 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Wang Nan, He Kuang, Jiri Olsa, Namhyung Kim,
	Zefan Li, pi3orama, Arnaldo Carvalho de Melo

From: Wang Nan <wangnan0@huawei.com>

If zalloc fail, setting evlist->mmap[i].fd is unsafe and
perf_evlist__alloc_mmap() should bail out right after that.

Signed-off-by: Wang Nan <wangnan0@huawei.com>
Acked-by: Masami Hiramatsu <mhiramat@kernel.org>
Cc: He Kuang <hekuang@huawei.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Zefan Li <lizefan@huawei.com>
Cc: pi3orama@163.com
Fixes: d4c6fb36ac2c ("perf evsel: Record fd into perf_mmap")
Link: http://lkml.kernel.org/r/1464699975-230440-1-git-send-email-wangnan0@huawei.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/util/evlist.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c
index e0f30946ed1a..1b918aa075d6 100644
--- a/tools/perf/util/evlist.c
+++ b/tools/perf/util/evlist.c
@@ -946,9 +946,12 @@ static int perf_evlist__alloc_mmap(struct perf_evlist *evlist)
 	if (cpu_map__empty(evlist->cpus))
 		evlist->nr_mmaps = thread_map__nr(evlist->threads);
 	evlist->mmap = zalloc(evlist->nr_mmaps * sizeof(struct perf_mmap));
+	if (!evlist->mmap)
+		return -ENOMEM;
+
 	for (i = 0; i < evlist->nr_mmaps; i++)
 		evlist->mmap[i].fd = -1;
-	return evlist->mmap != NULL ? 0 : -ENOMEM;
+	return 0;
 }
 
 struct mmap_params {
-- 
2.5.5

^ permalink raw reply related	[flat|nested] 70+ messages in thread

* [PATCH 03/11] tools lib api: Respect CROSS_COMPILE for the linker
  2016-06-06 21:04 [GIT PULL 00/11] perf/core improvements and fixes Arnaldo Carvalho de Melo
  2016-06-06 21:04 ` [PATCH 01/11] perf evsel: Provide way to extract integer value from format_field Arnaldo Carvalho de Melo
  2016-06-06 21:04 ` [PATCH 02/11] perf evlist: Fix alloc_mmap() failure path Arnaldo Carvalho de Melo
@ 2016-06-06 21:04 ` Arnaldo Carvalho de Melo
  2016-06-06 21:04 ` [PATCH 04/11] perf script: Show call graphs when 1st event doesn't have it but some other has Arnaldo Carvalho de Melo
                   ` (8 subsequent siblings)
  11 siblings, 0 replies; 70+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-06-06 21:04 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Lucas Stach, Jiri Olsa, kernel, patchwork-lst,
	Arnaldo Carvalho de Melo

From: Lucas Stach <l.stach@pengutronix.de>

This fixes cross compilation of libapi.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: kernel@pengutronix.de
Cc: patchwork-lst@pengutronix.de
Link: http://lkml.kernel.org/r/1458235670-27341-1-git-send-email-l.stach@pengutronix.de
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/lib/api/Makefile | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tools/lib/api/Makefile b/tools/lib/api/Makefile
index 316f308a63ea..67ff93ec1515 100644
--- a/tools/lib/api/Makefile
+++ b/tools/lib/api/Makefile
@@ -10,6 +10,7 @@ endif
 
 CC = $(CROSS_COMPILE)gcc
 AR = $(CROSS_COMPILE)ar
+LD = $(CROSS_COMPILE)ld
 
 MAKEFLAGS += --no-print-directory
 
-- 
2.5.5

^ permalink raw reply related	[flat|nested] 70+ messages in thread

* [PATCH 04/11] perf script: Show call graphs when 1st event doesn't have it but some other has
  2016-06-06 21:04 [GIT PULL 00/11] perf/core improvements and fixes Arnaldo Carvalho de Melo
                   ` (2 preceding siblings ...)
  2016-06-06 21:04 ` [PATCH 03/11] tools lib api: Respect CROSS_COMPILE for the linker Arnaldo Carvalho de Melo
@ 2016-06-06 21:04 ` Arnaldo Carvalho de Melo
  2016-06-06 21:04 ` [PATCH 05/11] perf test: Ignore .scale and other special files Arnaldo Carvalho de Melo
                   ` (7 subsequent siblings)
  11 siblings, 0 replies; 70+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-06-06 21:04 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, He Kuang, Alexander Shishkin, Ingo Molnar,
	Peter Zijlstra, Wang Nan, Arnaldo Carvalho de Melo

From: He Kuang <hekuang@huawei.com>

There's a display inconsistency when there are multiple tracepoint
events, some of which have the 'call-graph' config option set but the
first one hasn't, i.e. the whole logic for call graph processing is
enabled only if the first tracepoint event has call-graph set.

For instance, if we record signal_deliver with call-graph and
signal_generate without:

  $ perf record -g -a -e signal:signal_deliver -e signal:signal_generate/call-graph=no/

  [ perf record: Captured and wrote 0.017 MB perf.data (2 samples) ]

  $ perf script

  kworker/u2:1    13 [000]  6563.875949: signal:signal_generate: sig=2 errno=0 code=128 comm=perf pid=1313 grp=1 res=0 ff61cc __send_signal+0x3ec ([kernel.kallsyms])
  perf  1313 [000]  6563.877584:  signal:signal_deliver: sig=2 errno=0 code=128 sa_handler=43115e sa_flags=14000000
              7ffff314 get_signal+0x80007f0023a4 ([kernel.kallsyms])
              7fffe358 do_signal+0x80007f002028 ([kernel.kallsyms])
              7fffa5e8 exit_to_usermode_loop+0x80007f002053 ([kernel.kallsyms])
              ...

Then we exchange the order of these two events in commandline, and keep
signal_generate without call-graph.

  $ perf record -g -a -e signal:signal_generate/call-graph=no/ -e signal:signal_deliver

  [ perf record: Captured and wrote 0.017 MB perf.data (2 samples) ]

  $ perf script

    kworker/u2:2  1314 [000]  6933.353060: signal:signal_generate: sig=2 errno=0 code=128 comm=perf pid=1321 grp=1 res=0
            perf  1321 [000]  6933.353872:  signal:signal_deliver: sig=2 errno=0 code=128 sa_handler=43115e sa_flags=14000000

This time, the callchain of the event signal_deliver disappeared. The
problem is caused by that perf only checks for the first evsel in evlist
and decides if callchain should be printed.

This patch traverses all evsels in evlist to see if any of them have
callchains, and shows the right result:

  $ perf script

  kworker/u2:2  1314 [000]  6933.353060: signal:signal_generate: sig=2 errno=0 code=128 comm=perf pid=1321 grp=1 res=0 ff61cc __send_signal+0x3ec ([kernel.kallsyms])
  perf  1321 [000]  6933.353872:  signal:signal_deliver: sig=2 errno=0 code=128 sa_handler=43115e sa_flags=14000000
              7ffff314 get_signal+0x80007f0023a4 ([kernel.kallsyms])
              7fffe358 do_signal+0x80007f002028 ([kernel.kallsyms])
              7fffa5e8 exit_to_usermode_loop+0x80007f002053 ([kernel.kallsyms])
              ...

Signed-off-by: He Kuang <hekuang@huawei.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/r/1463374279-97209-1-git-send-email-hekuang@huawei.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/builtin-script.c | 23 +++++++++++++----------
 1 file changed, 13 insertions(+), 10 deletions(-)

diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c
index e3ce2f34d3ad..46011235af5d 100644
--- a/tools/perf/builtin-script.c
+++ b/tools/perf/builtin-script.c
@@ -339,7 +339,7 @@ static void set_print_ip_opts(struct perf_event_attr *attr)
  */
 static int perf_session__check_output_opt(struct perf_session *session)
 {
-	int j;
+	unsigned int j;
 	struct perf_evsel *evsel;
 
 	for (j = 0; j < PERF_TYPE_MAX; ++j) {
@@ -388,17 +388,20 @@ static int perf_session__check_output_opt(struct perf_session *session)
 		struct perf_event_attr *attr;
 
 		j = PERF_TYPE_TRACEPOINT;
-		evsel = perf_session__find_first_evtype(session, j);
-		if (evsel == NULL)
-			goto out;
 
-		attr = &evsel->attr;
+		evlist__for_each(session->evlist, evsel) {
+			if (evsel->attr.type != j)
+				continue;
+
+			attr = &evsel->attr;
 
-		if (attr->sample_type & PERF_SAMPLE_CALLCHAIN) {
-			output[j].fields |= PERF_OUTPUT_IP;
-			output[j].fields |= PERF_OUTPUT_SYM;
-			output[j].fields |= PERF_OUTPUT_DSO;
-			set_print_ip_opts(attr);
+			if (attr->sample_type & PERF_SAMPLE_CALLCHAIN) {
+				output[j].fields |= PERF_OUTPUT_IP;
+				output[j].fields |= PERF_OUTPUT_SYM;
+				output[j].fields |= PERF_OUTPUT_DSO;
+				set_print_ip_opts(attr);
+				goto out;
+			}
 		}
 	}
 
-- 
2.5.5

^ permalink raw reply related	[flat|nested] 70+ messages in thread

* [PATCH 05/11] perf test: Ignore .scale and other special files
  2016-06-06 21:04 [GIT PULL 00/11] perf/core improvements and fixes Arnaldo Carvalho de Melo
                   ` (3 preceding siblings ...)
  2016-06-06 21:04 ` [PATCH 04/11] perf script: Show call graphs when 1st event doesn't have it but some other has Arnaldo Carvalho de Melo
@ 2016-06-06 21:04 ` Arnaldo Carvalho de Melo
  2016-06-06 21:04 ` [PATCH 06/11] perf stat: Basic support for TopDown in perf stat Arnaldo Carvalho de Melo
                   ` (6 subsequent siblings)
  11 siblings, 0 replies; 70+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-06-06 21:04 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: linux-kernel, Andi Kleen, Jiri Olsa, Arnaldo Carvalho de Melo

From: Andi Kleen <ak@linux.intel.com>

'perf test' tries to parse all entries in /sys/devices/cpu/events/.
Ignore the special entries like '.scale', which cannot be directly
parsed as an event. This patch assumes all files containing a '.' are
special and can be ignored.

Reported-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Andi Kleen <ak@linux.intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Link: http://lkml.kernel.org/r/1465223766-29902-1-git-send-email-andi@firstfloor.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/tests/parse-events.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/perf/tests/parse-events.c b/tools/perf/tests/parse-events.c
index 7865f68dc0d8..b2a2c74136a5 100644
--- a/tools/perf/tests/parse-events.c
+++ b/tools/perf/tests/parse-events.c
@@ -1783,8 +1783,8 @@ static int test_pmu_events(void)
 		struct evlist_test e;
 		char name[MAX_NAME];
 
-		if (!strcmp(ent->d_name, ".") ||
-		    !strcmp(ent->d_name, ".."))
+		/* Names containing . are special and cannot be used directly */
+		if (strchr(ent->d_name, '.'))
 			continue;
 
 		snprintf(name, MAX_NAME, "cpu/event=%s/u", ent->d_name);
-- 
2.5.5

^ permalink raw reply related	[flat|nested] 70+ messages in thread

* [PATCH 06/11] perf stat: Basic support for TopDown in perf stat
  2016-06-06 21:04 [GIT PULL 00/11] perf/core improvements and fixes Arnaldo Carvalho de Melo
                   ` (4 preceding siblings ...)
  2016-06-06 21:04 ` [PATCH 05/11] perf test: Ignore .scale and other special files Arnaldo Carvalho de Melo
@ 2016-06-06 21:04 ` Arnaldo Carvalho de Melo
  2016-06-06 21:04 ` [PATCH 07/11] perf stat: Add computation of TopDown formulas Arnaldo Carvalho de Melo
                   ` (5 subsequent siblings)
  11 siblings, 0 replies; 70+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-06-06 21:04 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: linux-kernel, Andi Kleen, Arnaldo Carvalho de Melo

From: Andi Kleen <ak@linux.intel.com>

Add basic plumbing for TopDown in perf stat

TopDown is intended to replace the frontend cycles idle/ backend cycles
idle metrics in standard perf stat output.  These metrics are not
reliable in many workloads, due to out of order effects.

This implements a new --topdown mode in perf stat (similar to
--transaction) that measures the pipe line bottlenecks using
standardized formulas. The measurement can be all done with 5 counters
(one fixed counter)

The result are four metrics:

FrontendBound, BackendBound, BadSpeculation, Retiring

that describe the CPU pipeline behavior on a high level.

The full top down methology has many hierarchical metrics.  This
implementation only supports level 1 which can be collected without
multiplexing. A full implementation of top down on top of perf is
available in pmu-tools toplev.  (http://github.com/andikleen/pmu-tools)

The current version works on Intel Core CPUs starting with Sandy Bridge,
and Atom CPUs starting with Silvermont.  In principle the generic
metrics should be also implementable on other out of order CPUs.

TopDown level 1 uses a set of abstracted metrics which are generic to
out of order CPU cores (although some CPUs may not implement all of
them):

  topdown-total-slots       Available slots in the pipeline
  topdown-slots-issued      Slots issued into the pipeline
  topdown-slots-retired     Slots successfully retired
  topdown-fetch-bubbles     Pipeline gaps in the frontend
  topdown-recovery-bubbles  Pipeline gaps during recovery
                            from misspeculation

These metrics then allow to compute four useful metrics:

FrontendBound, BackendBound, Retiring, BadSpeculation.

Add a new --topdown options to enable events.  When --topdown is
specified set up events for all topdown events supported by the kernel.
Add topdown-* as a special case to the event parser, as is needed for
all events containing -.

The actual code to compute the metrics is in follow-on patches.

v2: Use standard sysctl read function.
v3: Move x86 specific code to arch/
v4: Enable --metric-only implicitly for topdown.
v5: Add --single-thread option to not force per core mode
v6: Fix output order of topdown metrics
v7: Allow combining with -d
v8: Remove --single-thread again
v9: Rename functions, adding arch_ and topdown_.
v10: Expand man page and describe TopDown better
Paste intro into commit description.
Print error when malloc fails.

Signed-off-by: Andi Kleen <ak@linux.intel.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Link: http://lkml.kernel.org/r/1464119559-17203-1-git-send-email-andi@firstfloor.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/Documentation/perf-stat.txt |  32 +++++++++
 tools/perf/arch/x86/util/Build         |   1 +
 tools/perf/arch/x86/util/group.c       |  27 ++++++++
 tools/perf/builtin-stat.c              | 119 ++++++++++++++++++++++++++++++++-
 tools/perf/util/group.h                |   7 ++
 tools/perf/util/parse-events.l         |   1 +
 6 files changed, 184 insertions(+), 3 deletions(-)
 create mode 100644 tools/perf/arch/x86/util/group.c
 create mode 100644 tools/perf/util/group.h

diff --git a/tools/perf/Documentation/perf-stat.txt b/tools/perf/Documentation/perf-stat.txt
index 04f23b404bbc..d96ccd4844df 100644
--- a/tools/perf/Documentation/perf-stat.txt
+++ b/tools/perf/Documentation/perf-stat.txt
@@ -204,6 +204,38 @@ Aggregate counts per physical processor for system-wide mode measurements.
 --no-aggr::
 Do not aggregate counts across all monitored CPUs.
 
+--topdown::
+Print top down level 1 metrics if supported by the CPU. This allows to
+determine bottle necks in the CPU pipeline for CPU bound workloads,
+by breaking the cycles consumed down into frontend bound, backend bound,
+bad speculation and retiring.
+
+Frontend bound means that the CPU cannot fetch and decode instructions fast
+enough. Backend bound means that computation or memory access is the bottle
+neck. Bad Speculation means that the CPU wasted cycles due to branch
+mispredictions and similar issues. Retiring means that the CPU computed without
+an apparently bottleneck. The bottleneck is only the real bottleneck
+if the workload is actually bound by the CPU and not by something else.
+
+For best results it is usually a good idea to use it with interval
+mode like -I 1000, as the bottleneck of workloads can change often.
+
+The top down metrics are collected per core instead of per
+CPU thread. Per core mode is automatically enabled
+and -a (global monitoring) is needed, requiring root rights or
+perf.perf_event_paranoid=-1.
+
+Topdown uses the full Performance Monitoring Unit, and needs
+disabling of the NMI watchdog (as root):
+echo 0 > /proc/sys/kernel/nmi_watchdog
+for best results. Otherwise the bottlenecks may be inconsistent
+on workload with changing phases.
+
+This enables --metric-only, unless overriden with --no-metric-only.
+
+To interpret the results it is usually needed to know on which
+CPUs the workload runs on. If needed the CPUs can be forced using
+taskset.
 
 EXAMPLES
 --------
diff --git a/tools/perf/arch/x86/util/Build b/tools/perf/arch/x86/util/Build
index 465970370f3e..4cd8a16b1b7b 100644
--- a/tools/perf/arch/x86/util/Build
+++ b/tools/perf/arch/x86/util/Build
@@ -3,6 +3,7 @@ libperf-y += tsc.o
 libperf-y += pmu.o
 libperf-y += kvm-stat.o
 libperf-y += perf_regs.o
+libperf-y += group.o
 
 libperf-$(CONFIG_DWARF) += dwarf-regs.o
 libperf-$(CONFIG_BPF_PROLOGUE) += dwarf-regs.o
diff --git a/tools/perf/arch/x86/util/group.c b/tools/perf/arch/x86/util/group.c
new file mode 100644
index 000000000000..37f92aa39a5d
--- /dev/null
+++ b/tools/perf/arch/x86/util/group.c
@@ -0,0 +1,27 @@
+#include <stdio.h>
+#include "api/fs/fs.h"
+#include "util/group.h"
+
+/*
+ * Check whether we can use a group for top down.
+ * Without a group may get bad results due to multiplexing.
+ */
+bool arch_topdown_check_group(bool *warn)
+{
+	int n;
+
+	if (sysctl__read_int("kernel/nmi_watchdog", &n) < 0)
+		return false;
+	if (n > 0) {
+		*warn = true;
+		return false;
+	}
+	return true;
+}
+
+void arch_topdown_group_warn(void)
+{
+	fprintf(stderr,
+		"nmi_watchdog enabled with topdown. May give wrong results.\n"
+		"Disable with echo 0 > /proc/sys/kernel/nmi_watchdog\n");
+}
diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index ee7ada78d86f..fd76bb0b18d1 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -59,10 +59,13 @@
 #include "util/thread.h"
 #include "util/thread_map.h"
 #include "util/counts.h"
+#include "util/group.h"
 #include "util/session.h"
 #include "util/tool.h"
+#include "util/group.h"
 #include "asm/bug.h"
 
+#include <api/fs/fs.h>
 #include <stdlib.h>
 #include <sys/prctl.h>
 #include <locale.h>
@@ -98,6 +101,15 @@ static const char * transaction_limited_attrs = {
 	"}"
 };
 
+static const char * topdown_attrs[] = {
+	"topdown-total-slots",
+	"topdown-slots-retired",
+	"topdown-recovery-bubbles",
+	"topdown-fetch-bubbles",
+	"topdown-slots-issued",
+	NULL,
+};
+
 static struct perf_evlist	*evsel_list;
 
 static struct target target = {
@@ -112,6 +124,7 @@ static volatile pid_t		child_pid			= -1;
 static bool			null_run			=  false;
 static int			detailed_run			=  0;
 static bool			transaction_run;
+static bool			topdown_run			= false;
 static bool			big_num				=  true;
 static int			big_num_opt			=  -1;
 static const char		*csv_sep			= NULL;
@@ -124,6 +137,7 @@ static unsigned int		initial_delay			= 0;
 static unsigned int		unit_width			= 4; /* strlen("unit") */
 static bool			forever				= false;
 static bool			metric_only			= false;
+static bool			force_metric_only		= false;
 static struct timespec		ref_time;
 static struct cpu_map		*aggr_map;
 static aggr_get_id_t		aggr_get_id;
@@ -1520,6 +1534,14 @@ static int stat__set_big_num(const struct option *opt __maybe_unused,
 	return 0;
 }
 
+static int enable_metric_only(const struct option *opt __maybe_unused,
+			      const char *s __maybe_unused, int unset)
+{
+	force_metric_only = true;
+	metric_only = !unset;
+	return 0;
+}
+
 static const struct option stat_options[] = {
 	OPT_BOOLEAN('T', "transaction", &transaction_run,
 		    "hardware transaction statistics"),
@@ -1578,8 +1600,10 @@ static const struct option stat_options[] = {
 		     "aggregate counts per thread", AGGR_THREAD),
 	OPT_UINTEGER('D', "delay", &initial_delay,
 		     "ms to wait before starting measurement after program start"),
-	OPT_BOOLEAN(0, "metric-only", &metric_only,
-			"Only print computed metrics. No raw values"),
+	OPT_CALLBACK_NOOPT(0, "metric-only", &metric_only, NULL,
+			"Only print computed metrics. No raw values", enable_metric_only),
+	OPT_BOOLEAN(0, "topdown", &topdown_run,
+			"measure topdown level 1 statistics"),
 	OPT_END()
 };
 
@@ -1772,12 +1796,62 @@ static int perf_stat_init_aggr_mode_file(struct perf_stat *st)
 	return 0;
 }
 
+static int topdown_filter_events(const char **attr, char **str, bool use_group)
+{
+	int off = 0;
+	int i;
+	int len = 0;
+	char *s;
+
+	for (i = 0; attr[i]; i++) {
+		if (pmu_have_event("cpu", attr[i])) {
+			len += strlen(attr[i]) + 1;
+			attr[i - off] = attr[i];
+		} else
+			off++;
+	}
+	attr[i - off] = NULL;
+
+	*str = malloc(len + 1 + 2);
+	if (!*str)
+		return -1;
+	s = *str;
+	if (i - off == 0) {
+		*s = 0;
+		return 0;
+	}
+	if (use_group)
+		*s++ = '{';
+	for (i = 0; attr[i]; i++) {
+		strcpy(s, attr[i]);
+		s += strlen(s);
+		*s++ = ',';
+	}
+	if (use_group) {
+		s[-1] = '}';
+		*s = 0;
+	} else
+		s[-1] = 0;
+	return 0;
+}
+
+__weak bool arch_topdown_check_group(bool *warn)
+{
+	*warn = false;
+	return false;
+}
+
+__weak void arch_topdown_group_warn(void)
+{
+}
+
 /*
  * Add default attributes, if there were no attributes specified or
  * if -d/--detailed, -d -d or -d -d -d is used:
  */
 static int add_default_attributes(void)
 {
+	int err;
 	struct perf_event_attr default_attrs0[] = {
 
   { .type = PERF_TYPE_SOFTWARE, .config = PERF_COUNT_SW_TASK_CLOCK		},
@@ -1896,7 +1970,6 @@ static int add_default_attributes(void)
 		return 0;
 
 	if (transaction_run) {
-		int err;
 		if (pmu_have_event("cpu", "cycles-ct") &&
 		    pmu_have_event("cpu", "el-start"))
 			err = parse_events(evsel_list, transaction_attrs, NULL);
@@ -1909,6 +1982,46 @@ static int add_default_attributes(void)
 		return 0;
 	}
 
+	if (topdown_run) {
+		char *str = NULL;
+		bool warn = false;
+
+		if (stat_config.aggr_mode != AGGR_GLOBAL &&
+		    stat_config.aggr_mode != AGGR_CORE) {
+			pr_err("top down event configuration requires --per-core mode\n");
+			return -1;
+		}
+		stat_config.aggr_mode = AGGR_CORE;
+		if (nr_cgroups || !target__has_cpu(&target)) {
+			pr_err("top down event configuration requires system-wide mode (-a)\n");
+			return -1;
+		}
+
+		if (!force_metric_only)
+			metric_only = true;
+		if (topdown_filter_events(topdown_attrs, &str,
+				arch_topdown_check_group(&warn)) < 0) {
+			pr_err("Out of memory\n");
+			return -1;
+		}
+		if (topdown_attrs[0] && str) {
+			if (warn)
+				arch_topdown_group_warn();
+			err = parse_events(evsel_list, str, NULL);
+			if (err) {
+				fprintf(stderr,
+					"Cannot set up top down events %s: %d\n",
+					str, err);
+				free(str);
+				return -1;
+			}
+		} else {
+			fprintf(stderr, "System does not support topdown\n");
+			return -1;
+		}
+		free(str);
+	}
+
 	if (!evsel_list->nr_entries) {
 		if (target__has_cpu(&target))
 			default_attrs0[0].config = PERF_COUNT_SW_CPU_CLOCK;
diff --git a/tools/perf/util/group.h b/tools/perf/util/group.h
new file mode 100644
index 000000000000..116debe7a995
--- /dev/null
+++ b/tools/perf/util/group.h
@@ -0,0 +1,7 @@
+#ifndef GROUP_H
+#define GROUP_H 1
+
+bool arch_topdown_check_group(bool *warn);
+void arch_topdown_group_warn(void);
+
+#endif
diff --git a/tools/perf/util/parse-events.l b/tools/perf/util/parse-events.l
index 01af1ee90a27..3c15b33b2e84 100644
--- a/tools/perf/util/parse-events.l
+++ b/tools/perf/util/parse-events.l
@@ -260,6 +260,7 @@ cycles-ct					{ return str(yyscanner, PE_KERNEL_PMU_EVENT); }
 cycles-t					{ return str(yyscanner, PE_KERNEL_PMU_EVENT); }
 mem-loads					{ return str(yyscanner, PE_KERNEL_PMU_EVENT); }
 mem-stores					{ return str(yyscanner, PE_KERNEL_PMU_EVENT); }
+topdown-[a-z-]+					{ return str(yyscanner, PE_KERNEL_PMU_EVENT); }
 
 L1-dcache|l1-d|l1d|L1-data		|
 L1-icache|l1-i|l1i|L1-instruction	|
-- 
2.5.5

^ permalink raw reply related	[flat|nested] 70+ messages in thread

* [PATCH 07/11] perf stat: Add computation of TopDown formulas
  2016-06-06 21:04 [GIT PULL 00/11] perf/core improvements and fixes Arnaldo Carvalho de Melo
                   ` (5 preceding siblings ...)
  2016-06-06 21:04 ` [PATCH 06/11] perf stat: Basic support for TopDown in perf stat Arnaldo Carvalho de Melo
@ 2016-06-06 21:04 ` Arnaldo Carvalho de Melo
  2016-06-06 21:04 ` [PATCH 08/11] perf stat: Print topology/time headers with --metric-only Arnaldo Carvalho de Melo
                   ` (4 subsequent siblings)
  11 siblings, 0 replies; 70+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-06-06 21:04 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: linux-kernel, Andi Kleen, Arnaldo Carvalho de Melo

From: Andi Kleen <ak@linux.intel.com>

Implement the TopDown formulas in 'perf stat'. The topdown basic metrics
reported by the kernel are collected, and the formulas are computed and
output as normal metrics.

See the kernel commit exporting the events for details on the used
metrics.

Committer note:

Output example:

  # perf stat --topdown -a usleep 1

   Performance counter stats for 'system wide':

             retiring     bad speculation   frontend bound   backend bound
  S0-C0    2     23.8%       11.6%            28.3%           36.3%
  S0-C1    2     16.2%       15.7%            36.5%           31.6%

         0.000579956 seconds time elapsed
  #

v2: Always print all metrics, only use thresholds for coloring.
v3: Mark retiring over threshold green, not red.
v4: Only print one decimal digit
    Fix color printing of one metric
v5: Avoid printing -0.0
v6: Remove extra frontend event lookup

Signed-off-by: Andi Kleen <ak@linux.intel.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Link: http://lkml.kernel.org/r/1464119559-17203-2-git-send-email-andi@firstfloor.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/util/stat-shadow.c | 162 ++++++++++++++++++++++++++++++++++++++++++
 tools/perf/util/stat.c        |   5 ++
 tools/perf/util/stat.h        |   5 ++
 3 files changed, 172 insertions(+)

diff --git a/tools/perf/util/stat-shadow.c b/tools/perf/util/stat-shadow.c
index aa9efe08762b..8a2bbd2a4d82 100644
--- a/tools/perf/util/stat-shadow.c
+++ b/tools/perf/util/stat-shadow.c
@@ -36,6 +36,11 @@ static struct stats runtime_dtlb_cache_stats[NUM_CTX][MAX_NR_CPUS];
 static struct stats runtime_cycles_in_tx_stats[NUM_CTX][MAX_NR_CPUS];
 static struct stats runtime_transaction_stats[NUM_CTX][MAX_NR_CPUS];
 static struct stats runtime_elision_stats[NUM_CTX][MAX_NR_CPUS];
+static struct stats runtime_topdown_total_slots[NUM_CTX][MAX_NR_CPUS];
+static struct stats runtime_topdown_slots_issued[NUM_CTX][MAX_NR_CPUS];
+static struct stats runtime_topdown_slots_retired[NUM_CTX][MAX_NR_CPUS];
+static struct stats runtime_topdown_fetch_bubbles[NUM_CTX][MAX_NR_CPUS];
+static struct stats runtime_topdown_recovery_bubbles[NUM_CTX][MAX_NR_CPUS];
 static bool have_frontend_stalled;
 
 struct stats walltime_nsecs_stats;
@@ -82,6 +87,11 @@ void perf_stat__reset_shadow_stats(void)
 		sizeof(runtime_transaction_stats));
 	memset(runtime_elision_stats, 0, sizeof(runtime_elision_stats));
 	memset(&walltime_nsecs_stats, 0, sizeof(walltime_nsecs_stats));
+	memset(runtime_topdown_total_slots, 0, sizeof(runtime_topdown_total_slots));
+	memset(runtime_topdown_slots_retired, 0, sizeof(runtime_topdown_slots_retired));
+	memset(runtime_topdown_slots_issued, 0, sizeof(runtime_topdown_slots_issued));
+	memset(runtime_topdown_fetch_bubbles, 0, sizeof(runtime_topdown_fetch_bubbles));
+	memset(runtime_topdown_recovery_bubbles, 0, sizeof(runtime_topdown_recovery_bubbles));
 }
 
 /*
@@ -105,6 +115,16 @@ void perf_stat__update_shadow_stats(struct perf_evsel *counter, u64 *count,
 		update_stats(&runtime_transaction_stats[ctx][cpu], count[0]);
 	else if (perf_stat_evsel__is(counter, ELISION_START))
 		update_stats(&runtime_elision_stats[ctx][cpu], count[0]);
+	else if (perf_stat_evsel__is(counter, TOPDOWN_TOTAL_SLOTS))
+		update_stats(&runtime_topdown_total_slots[ctx][cpu], count[0]);
+	else if (perf_stat_evsel__is(counter, TOPDOWN_SLOTS_ISSUED))
+		update_stats(&runtime_topdown_slots_issued[ctx][cpu], count[0]);
+	else if (perf_stat_evsel__is(counter, TOPDOWN_SLOTS_RETIRED))
+		update_stats(&runtime_topdown_slots_retired[ctx][cpu], count[0]);
+	else if (perf_stat_evsel__is(counter, TOPDOWN_FETCH_BUBBLES))
+		update_stats(&runtime_topdown_fetch_bubbles[ctx][cpu],count[0]);
+	else if (perf_stat_evsel__is(counter, TOPDOWN_RECOVERY_BUBBLES))
+		update_stats(&runtime_topdown_recovery_bubbles[ctx][cpu], count[0]);
 	else if (perf_evsel__match(counter, HARDWARE, HW_STALLED_CYCLES_FRONTEND))
 		update_stats(&runtime_stalled_cycles_front_stats[ctx][cpu], count[0]);
 	else if (perf_evsel__match(counter, HARDWARE, HW_STALLED_CYCLES_BACKEND))
@@ -302,6 +322,107 @@ static void print_ll_cache_misses(int cpu,
 	out->print_metric(out->ctx, color, "%7.2f%%", "of all LL-cache hits", ratio);
 }
 
+/*
+ * High level "TopDown" CPU core pipe line bottleneck break down.
+ *
+ * Basic concept following
+ * Yasin, A Top Down Method for Performance analysis and Counter architecture
+ * ISPASS14
+ *
+ * The CPU pipeline is divided into 4 areas that can be bottlenecks:
+ *
+ * Frontend -> Backend -> Retiring
+ * BadSpeculation in addition means out of order execution that is thrown away
+ * (for example branch mispredictions)
+ * Frontend is instruction decoding.
+ * Backend is execution, like computation and accessing data in memory
+ * Retiring is good execution that is not directly bottlenecked
+ *
+ * The formulas are computed in slots.
+ * A slot is an entry in the pipeline each for the pipeline width
+ * (for example a 4-wide pipeline has 4 slots for each cycle)
+ *
+ * Formulas:
+ * BadSpeculation = ((SlotsIssued - SlotsRetired) + RecoveryBubbles) /
+ *			TotalSlots
+ * Retiring = SlotsRetired / TotalSlots
+ * FrontendBound = FetchBubbles / TotalSlots
+ * BackendBound = 1.0 - BadSpeculation - Retiring - FrontendBound
+ *
+ * The kernel provides the mapping to the low level CPU events and any scaling
+ * needed for the CPU pipeline width, for example:
+ *
+ * TotalSlots = Cycles * 4
+ *
+ * The scaling factor is communicated in the sysfs unit.
+ *
+ * In some cases the CPU may not be able to measure all the formulas due to
+ * missing events. In this case multiple formulas are combined, as possible.
+ *
+ * Full TopDown supports more levels to sub-divide each area: for example
+ * BackendBound into computing bound and memory bound. For now we only
+ * support Level 1 TopDown.
+ */
+
+static double sanitize_val(double x)
+{
+	if (x < 0 && x >= -0.02)
+		return 0.0;
+	return x;
+}
+
+static double td_total_slots(int ctx, int cpu)
+{
+	return avg_stats(&runtime_topdown_total_slots[ctx][cpu]);
+}
+
+static double td_bad_spec(int ctx, int cpu)
+{
+	double bad_spec = 0;
+	double total_slots;
+	double total;
+
+	total = avg_stats(&runtime_topdown_slots_issued[ctx][cpu]) -
+		avg_stats(&runtime_topdown_slots_retired[ctx][cpu]) +
+		avg_stats(&runtime_topdown_recovery_bubbles[ctx][cpu]);
+	total_slots = td_total_slots(ctx, cpu);
+	if (total_slots)
+		bad_spec = total / total_slots;
+	return sanitize_val(bad_spec);
+}
+
+static double td_retiring(int ctx, int cpu)
+{
+	double retiring = 0;
+	double total_slots = td_total_slots(ctx, cpu);
+	double ret_slots = avg_stats(&runtime_topdown_slots_retired[ctx][cpu]);
+
+	if (total_slots)
+		retiring = ret_slots / total_slots;
+	return retiring;
+}
+
+static double td_fe_bound(int ctx, int cpu)
+{
+	double fe_bound = 0;
+	double total_slots = td_total_slots(ctx, cpu);
+	double fetch_bub = avg_stats(&runtime_topdown_fetch_bubbles[ctx][cpu]);
+
+	if (total_slots)
+		fe_bound = fetch_bub / total_slots;
+	return fe_bound;
+}
+
+static double td_be_bound(int ctx, int cpu)
+{
+	double sum = (td_fe_bound(ctx, cpu) +
+		      td_bad_spec(ctx, cpu) +
+		      td_retiring(ctx, cpu));
+	if (sum == 0)
+		return 0;
+	return sanitize_val(1.0 - sum);
+}
+
 void perf_stat__print_shadow_stats(struct perf_evsel *evsel,
 				   double avg, int cpu,
 				   struct perf_stat_output_ctx *out)
@@ -309,6 +430,7 @@ void perf_stat__print_shadow_stats(struct perf_evsel *evsel,
 	void *ctxp = out->ctx;
 	print_metric_t print_metric = out->print_metric;
 	double total, ratio = 0.0, total2;
+	const char *color = NULL;
 	int ctx = evsel_context(evsel);
 
 	if (perf_evsel__match(evsel, HARDWARE, HW_INSTRUCTIONS)) {
@@ -452,6 +574,46 @@ void perf_stat__print_shadow_stats(struct perf_evsel *evsel,
 				     avg / ratio);
 		else
 			print_metric(ctxp, NULL, NULL, "CPUs utilized", 0);
+	} else if (perf_stat_evsel__is(evsel, TOPDOWN_FETCH_BUBBLES)) {
+		double fe_bound = td_fe_bound(ctx, cpu);
+
+		if (fe_bound > 0.2)
+			color = PERF_COLOR_RED;
+		print_metric(ctxp, color, "%8.1f%%", "frontend bound",
+				fe_bound * 100.);
+	} else if (perf_stat_evsel__is(evsel, TOPDOWN_SLOTS_RETIRED)) {
+		double retiring = td_retiring(ctx, cpu);
+
+		if (retiring > 0.7)
+			color = PERF_COLOR_GREEN;
+		print_metric(ctxp, color, "%8.1f%%", "retiring",
+				retiring * 100.);
+	} else if (perf_stat_evsel__is(evsel, TOPDOWN_RECOVERY_BUBBLES)) {
+		double bad_spec = td_bad_spec(ctx, cpu);
+
+		if (bad_spec > 0.1)
+			color = PERF_COLOR_RED;
+		print_metric(ctxp, color, "%8.1f%%", "bad speculation",
+				bad_spec * 100.);
+	} else if (perf_stat_evsel__is(evsel, TOPDOWN_SLOTS_ISSUED)) {
+		double be_bound = td_be_bound(ctx, cpu);
+		const char *name = "backend bound";
+		static int have_recovery_bubbles = -1;
+
+		/* In case the CPU does not support topdown-recovery-bubbles */
+		if (have_recovery_bubbles < 0)
+			have_recovery_bubbles = pmu_have_event("cpu",
+					"topdown-recovery-bubbles");
+		if (!have_recovery_bubbles)
+			name = "backend bound/bad spec";
+
+		if (be_bound > 0.2)
+			color = PERF_COLOR_RED;
+		if (td_total_slots(ctx, cpu) > 0)
+			print_metric(ctxp, color, "%8.1f%%", name,
+					be_bound * 100.);
+		else
+			print_metric(ctxp, NULL, NULL, name, 0);
 	} else if (runtime_nsecs_stats[cpu].n != 0) {
 		char unit = 'M';
 		char unit_buf[10];
diff --git a/tools/perf/util/stat.c b/tools/perf/util/stat.c
index ffa1d0653861..c1ba255f2abe 100644
--- a/tools/perf/util/stat.c
+++ b/tools/perf/util/stat.c
@@ -79,6 +79,11 @@ static const char *id_str[PERF_STAT_EVSEL_ID__MAX] = {
 	ID(TRANSACTION_START,	cpu/tx-start/),
 	ID(ELISION_START,	cpu/el-start/),
 	ID(CYCLES_IN_TX_CP,	cpu/cycles-ct/),
+	ID(TOPDOWN_TOTAL_SLOTS, topdown-total-slots),
+	ID(TOPDOWN_SLOTS_ISSUED, topdown-slots-issued),
+	ID(TOPDOWN_SLOTS_RETIRED, topdown-slots-retired),
+	ID(TOPDOWN_FETCH_BUBBLES, topdown-fetch-bubbles),
+	ID(TOPDOWN_RECOVERY_BUBBLES, topdown-recovery-bubbles),
 };
 #undef ID
 
diff --git a/tools/perf/util/stat.h b/tools/perf/util/stat.h
index 0150e786ccc7..c29bb94c48a4 100644
--- a/tools/perf/util/stat.h
+++ b/tools/perf/util/stat.h
@@ -17,6 +17,11 @@ enum perf_stat_evsel_id {
 	PERF_STAT_EVSEL_ID__TRANSACTION_START,
 	PERF_STAT_EVSEL_ID__ELISION_START,
 	PERF_STAT_EVSEL_ID__CYCLES_IN_TX_CP,
+	PERF_STAT_EVSEL_ID__TOPDOWN_TOTAL_SLOTS,
+	PERF_STAT_EVSEL_ID__TOPDOWN_SLOTS_ISSUED,
+	PERF_STAT_EVSEL_ID__TOPDOWN_SLOTS_RETIRED,
+	PERF_STAT_EVSEL_ID__TOPDOWN_FETCH_BUBBLES,
+	PERF_STAT_EVSEL_ID__TOPDOWN_RECOVERY_BUBBLES,
 	PERF_STAT_EVSEL_ID__MAX,
 };
 
-- 
2.5.5

^ permalink raw reply related	[flat|nested] 70+ messages in thread

* [PATCH 08/11] perf stat: Print topology/time headers with --metric-only
  2016-06-06 21:04 [GIT PULL 00/11] perf/core improvements and fixes Arnaldo Carvalho de Melo
                   ` (6 preceding siblings ...)
  2016-06-06 21:04 ` [PATCH 07/11] perf stat: Add computation of TopDown formulas Arnaldo Carvalho de Melo
@ 2016-06-06 21:04 ` Arnaldo Carvalho de Melo
  2016-06-06 21:04 ` [PATCH 09/11] perf stat: Add missing aggregation headers for --metric-only CSV Arnaldo Carvalho de Melo
                   ` (3 subsequent siblings)
  11 siblings, 0 replies; 70+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-06-06 21:04 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: linux-kernel, Andi Kleen, Arnaldo Carvalho de Melo

From: Andi Kleen <ak@linux.intel.com>

When --metric-only is enabled there were no headers for the topology in
interval mode.  Also when headers were printed they were on a separate
line.

Before:

  $ perf stat  --metric-only  -A -I 1000 -a
    1.001038376     frontend cycles idle insn per cycle  stalled cycles per insn branch-misses of all branches
    1.001038376 CPU0   123.54%               0.23           5.29                    7.61%
    1.001038376 CPU1   137.78%               0.24           5.13                   10.07%
    1.001038376 CPU2    64.48%               0.22           5.50                    6.84%

After:

  $ perf stat  --metric-only  -A -I 1000 -a
    1.001111114 CPU0    82.46%               0.32           2.60                    7.64%
    1.001111114 CPU1   126.63%               0.02          42.83                    0.15%
    1.001111114 CPU2   193.54%               0.32           2.59                    6.92%

v2: Move all headers on a single line

Reported-by: Jiri Olsa <jolsa@kernel.org>
Signed-off-by: Andi Kleen <ak@linux.intel.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Link: http://lkml.kernel.org/r/1464119559-17203-3-git-send-email-andi@firstfloor.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/builtin-stat.c | 32 ++++++++++++++++++++++----------
 1 file changed, 22 insertions(+), 10 deletions(-)

diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index fd76bb0b18d1..a168e726756b 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -1316,7 +1316,7 @@ static int aggr_header_lens[] = {
 	[AGGR_GLOBAL] = 0,
 };
 
-static void print_metric_headers(char *prefix)
+static void print_metric_headers(const char *prefix, bool no_indent)
 {
 	struct perf_stat_output_ctx out;
 	struct perf_evsel *counter;
@@ -1327,7 +1327,7 @@ static void print_metric_headers(char *prefix)
 	if (prefix)
 		fprintf(stat_config.output, "%s", prefix);
 
-	if (!csv_output)
+	if (!csv_output && !no_indent)
 		fprintf(stat_config.output, "%*s",
 			aggr_header_lens[stat_config.aggr_mode], "");
 
@@ -1352,28 +1352,40 @@ static void print_interval(char *prefix, struct timespec *ts)
 
 	sprintf(prefix, "%6lu.%09lu%s", ts->tv_sec, ts->tv_nsec, csv_sep);
 
-	if (num_print_interval == 0 && !csv_output && !metric_only) {
+	if (num_print_interval == 0 && !csv_output) {
 		switch (stat_config.aggr_mode) {
 		case AGGR_SOCKET:
-			fprintf(output, "#           time socket cpus             counts %*s events\n", unit_width, "unit");
+			fprintf(output, "#           time socket cpus");
+			if (!metric_only)
+				fprintf(output, "             counts %*s events\n", unit_width, "unit");
 			break;
 		case AGGR_CORE:
-			fprintf(output, "#           time core         cpus             counts %*s events\n", unit_width, "unit");
+			fprintf(output, "#           time core         cpus");
+			if (!metric_only)
+				fprintf(output, "             counts %*s events\n", unit_width, "unit");
 			break;
 		case AGGR_NONE:
-			fprintf(output, "#           time CPU                counts %*s events\n", unit_width, "unit");
+			fprintf(output, "#           time CPU");
+			if (!metric_only)
+				fprintf(output, "                counts %*s events\n", unit_width, "unit");
 			break;
 		case AGGR_THREAD:
-			fprintf(output, "#           time             comm-pid                  counts %*s events\n", unit_width, "unit");
+			fprintf(output, "#           time             comm-pid");
+			if (!metric_only)
+				fprintf(output, "                  counts %*s events\n", unit_width, "unit");
 			break;
 		case AGGR_GLOBAL:
 		default:
-			fprintf(output, "#           time             counts %*s events\n", unit_width, "unit");
+			fprintf(output, "#           time");
+			if (!metric_only)
+				fprintf(output, "             counts %*s events\n", unit_width, "unit");
 		case AGGR_UNSET:
 			break;
 		}
 	}
 
+	if (num_print_interval == 0 && metric_only)
+		print_metric_headers(" ", true);
 	if (++num_print_interval == 25)
 		num_print_interval = 0;
 }
@@ -1442,8 +1454,8 @@ static void print_counters(struct timespec *ts, int argc, const char **argv)
 	if (metric_only) {
 		static int num_print_iv;
 
-		if (num_print_iv == 0)
-			print_metric_headers(prefix);
+		if (num_print_iv == 0 && !interval)
+			print_metric_headers(prefix, false);
 		if (num_print_iv++ == 25)
 			num_print_iv = 0;
 		if (stat_config.aggr_mode == AGGR_GLOBAL && prefix)
-- 
2.5.5

^ permalink raw reply related	[flat|nested] 70+ messages in thread

* [PATCH 09/11] perf stat: Add missing aggregation headers for --metric-only CSV
  2016-06-06 21:04 [GIT PULL 00/11] perf/core improvements and fixes Arnaldo Carvalho de Melo
                   ` (7 preceding siblings ...)
  2016-06-06 21:04 ` [PATCH 08/11] perf stat: Print topology/time headers with --metric-only Arnaldo Carvalho de Melo
@ 2016-06-06 21:04 ` Arnaldo Carvalho de Melo
  2016-06-06 21:04 ` [PATCH 10/11] perf config: Fix abnormal termination at perf_parse_file() Arnaldo Carvalho de Melo
                   ` (2 subsequent siblings)
  11 siblings, 0 replies; 70+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-06-06 21:04 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: linux-kernel, Andi Kleen, Arnaldo Carvalho de Melo

From: Andi Kleen <ak@linux.intel.com>

When in CSV mode --metric-only outputs an header, unlike the other
modes. Previously it did not properly print headers for the aggregation
columns, so the headers were actually shifted against the real values.

Fix this here by outputting the correct headers for CSV.

v2: Indent array.

Signed-off-by: Andi Kleen <ak@linux.intel.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Link: http://lkml.kernel.org/r/1464119559-17203-4-git-send-email-andi@firstfloor.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/builtin-stat.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index a168e726756b..dff63733dfb7 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -1316,6 +1316,14 @@ static int aggr_header_lens[] = {
 	[AGGR_GLOBAL] = 0,
 };
 
+static const char *aggr_header_csv[] = {
+	[AGGR_CORE] 	= 	"core,cpus,",
+	[AGGR_SOCKET] 	= 	"socket,cpus",
+	[AGGR_NONE] 	= 	"cpu,",
+	[AGGR_THREAD] 	= 	"comm-pid,",
+	[AGGR_GLOBAL] 	=	""
+};
+
 static void print_metric_headers(const char *prefix, bool no_indent)
 {
 	struct perf_stat_output_ctx out;
@@ -1330,6 +1338,12 @@ static void print_metric_headers(const char *prefix, bool no_indent)
 	if (!csv_output && !no_indent)
 		fprintf(stat_config.output, "%*s",
 			aggr_header_lens[stat_config.aggr_mode], "");
+	if (csv_output) {
+		if (stat_config.interval)
+			fputs("time,", stat_config.output);
+		fputs(aggr_header_csv[stat_config.aggr_mode],
+			stat_config.output);
+	}
 
 	/* Print metrics headers only */
 	evlist__for_each(evsel_list, counter) {
-- 
2.5.5

^ permalink raw reply related	[flat|nested] 70+ messages in thread

* [PATCH 10/11] perf config: Fix abnormal termination at perf_parse_file()
  2016-06-06 21:04 [GIT PULL 00/11] perf/core improvements and fixes Arnaldo Carvalho de Melo
                   ` (8 preceding siblings ...)
  2016-06-06 21:04 ` [PATCH 09/11] perf stat: Add missing aggregation headers for --metric-only CSV Arnaldo Carvalho de Melo
@ 2016-06-06 21:04 ` Arnaldo Carvalho de Melo
  2016-06-06 21:04 ` [PATCH 11/11] perf config: Handle the error when config set is NULL at collect_config() Arnaldo Carvalho de Melo
  2016-06-08  7:32 ` [GIT PULL 00/11] perf/core improvements and fixes Ingo Molnar
  11 siblings, 0 replies; 70+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-06-06 21:04 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Taeung Song, Alexander Shishkin, Jiri Olsa,
	Masami Hiramatsu, Namhyung Kim, Peter Zijlstra,
	Arnaldo Carvalho de Melo

From: Taeung Song <treeze.taeung@gmail.com>

If a config file has wrong key-value pairs, the perf process will be
forcibly terminated by die() at perf_parse_file() called by
perf_config() so terminal settings can be crushed because of unusual
termination.

For example:

If user config file has a wrong value 'red;default' instead of a normal
value like 'red, default' for a key 'colors.top',

    # cat ~/.perfconfig
    [colors]
        medium = red;default # wrong value

and if running sub-command 'top',

    # perf top

perf process is dead by force and terminal setting is broken
with a messge like below.

    Fatal: bad config file line 2 in /root/.perfconfig

So fix it.
If perf_config() can return on failure without calling die()
at perf_parse_file(), this problem can be solved.
And if a config file has wrong values, show the error message
and then use default config values instead of wrong config values.

Signed-off-by: Taeung Song <treeze.taeung@gmail.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/1465210380-26749-2-git-send-email-treeze.taeung@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/util/config.c | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

diff --git a/tools/perf/util/config.c b/tools/perf/util/config.c
index dad7d8272168..b50073741b80 100644
--- a/tools/perf/util/config.c
+++ b/tools/perf/util/config.c
@@ -275,7 +275,8 @@ static int perf_parse_file(config_fn_t fn, void *data)
 			break;
 		}
 	}
-	die("bad config file line %d in %s", config_linenr, config_file_name);
+	pr_err("bad config file line %d in %s\n", config_linenr, config_file_name);
+	return -1;
 }
 
 static int parse_unit_factor(const char *end, unsigned long *val)
@@ -479,16 +480,15 @@ static int perf_config_global(void)
 
 int perf_config(config_fn_t fn, void *data)
 {
-	int ret = 0, found = 0;
+	int ret = -1;
 	const char *home = NULL;
 
 	/* Setting $PERF_CONFIG makes perf read _only_ the given config file. */
 	if (config_exclusive_filename)
 		return perf_config_from_file(fn, config_exclusive_filename, data);
 	if (perf_config_system() && !access(perf_etc_perfconfig(), R_OK)) {
-		ret += perf_config_from_file(fn, perf_etc_perfconfig(),
-					    data);
-		found += 1;
+		if (perf_config_from_file(fn, perf_etc_perfconfig(), data) < 0)
+			goto out;
 	}
 
 	home = getenv("HOME");
@@ -514,14 +514,12 @@ int perf_config(config_fn_t fn, void *data)
 		if (!st.st_size)
 			goto out_free;
 
-		ret += perf_config_from_file(fn, user_config, data);
-		found += 1;
+		ret = perf_config_from_file(fn, user_config, data);
+
 out_free:
 		free(user_config);
 	}
 out:
-	if (found == 0)
-		return -1;
 	return ret;
 }
 
-- 
2.5.5

^ permalink raw reply related	[flat|nested] 70+ messages in thread

* [PATCH 11/11] perf config: Handle the error when config set is NULL at collect_config()
  2016-06-06 21:04 [GIT PULL 00/11] perf/core improvements and fixes Arnaldo Carvalho de Melo
                   ` (9 preceding siblings ...)
  2016-06-06 21:04 ` [PATCH 10/11] perf config: Fix abnormal termination at perf_parse_file() Arnaldo Carvalho de Melo
@ 2016-06-06 21:04 ` Arnaldo Carvalho de Melo
  2016-06-08  7:32 ` [GIT PULL 00/11] perf/core improvements and fixes Ingo Molnar
  11 siblings, 0 replies; 70+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-06-06 21:04 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Taeung Song, Alexander Shishkin, Jiri Olsa,
	Masami Hiramatsu, Namhyung Kim, Peter Zijlstra,
	Arnaldo Carvalho de Melo

From: Taeung Song <treeze.taeung@gmail.com>

collect_config() collect all config key-value pairs from config files
and put each config info in config set.  But if config set (i.e. 'set'
variable at collect_config()) is NULL, this is wrong so handle it.

Signed-off-by: Taeung Song <treeze.taeung@gmail.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/1465210380-26749-4-git-send-email-treeze.taeung@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/util/config.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/tools/perf/util/config.c b/tools/perf/util/config.c
index b50073741b80..c73f1c4d1ca9 100644
--- a/tools/perf/util/config.c
+++ b/tools/perf/util/config.c
@@ -607,8 +607,12 @@ static int collect_config(const char *var, const char *value,
 	struct perf_config_section *section = NULL;
 	struct perf_config_item *item = NULL;
 	struct perf_config_set *set = perf_config_set;
-	struct list_head *sections = &set->sections;
+	struct list_head *sections;
 
+	if (set == NULL)
+		return -1;
+
+	sections = &set->sections;
 	key = ptr = strdup(var);
 	if (!key) {
 		pr_debug("%s: strdup failed\n", __func__);
-- 
2.5.5

^ permalink raw reply related	[flat|nested] 70+ messages in thread

* Re: [GIT PULL 00/11] perf/core improvements and fixes
  2016-06-06 21:04 [GIT PULL 00/11] perf/core improvements and fixes Arnaldo Carvalho de Melo
                   ` (10 preceding siblings ...)
  2016-06-06 21:04 ` [PATCH 11/11] perf config: Handle the error when config set is NULL at collect_config() Arnaldo Carvalho de Melo
@ 2016-06-08  7:32 ` Ingo Molnar
  11 siblings, 0 replies; 70+ messages in thread
From: Ingo Molnar @ 2016-06-08  7:32 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Adrian Hunter, Alexander Shishkin, Andi Kleen,
	David Ahern, He Kuang, Jiri Olsa, kernel, Lucas Stach,
	Masami Hiramatsu, Milian Wolff, Namhyung Kim, Peter Zijlstra,
	pi3orama, Taeung Song, Wang Nan, Zefan Li,
	Arnaldo Carvalho de Melo


* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:

> Hi Ingo,
> 
> 	Please consider pulling,
> 
> - Arnaldo
> 
> The following changes since commit 030ba6cd105c68ce919c5e239853b567490cd059:
> 
>   perf/x86/intel: Use new topology_max_smt_threads() in HT leak workaround (2016-06-03 09:41:25 +0200)
> 
> are available in the git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-20160606
> 
> for you to fetch changes up to 7db91f251056f90fec4121f028680ab3153a0f3c:
> 
>   perf config: Handle the error when config set is NULL at collect_config() (2016-06-06 17:43:19 -0300)
> 
> ----------------------------------------------------------------
> perf/core improvements and fixes:
> 
> User visible:
> 
> - Tooling support for TopDown counters, recently added to the kernel (Andi Kleen)
> 
> - Show call graphs in 'perf script' when 1st event doesn't have it but some other has (He Kuang)
> 
> - Fix terminal cleanup when handling invalid .perfconfig files in 'perf top' (Taeung Song)
> 
> Build fixes:
> 
> - Respect CROSS_COMPILE for the linker in libapi (Lucas Stach)
> 
> Infrastructure:
> 
> - Fix perf_evlist__alloc_mmap() failure path (Wang Nan)
> 
> - Provide way to extract integer value from format_field (Arnaldo Carvalho de Melo)
> 
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> ----------------------------------------------------------------
> Andi Kleen (5):
>       perf test: Ignore .scale and other special files
>       perf stat: Basic support for TopDown in perf stat
>       perf stat: Add computation of TopDown formulas
>       perf stat: Print topology/time headers with --metric-only
>       perf stat: Add missing aggregation headers for --metric-only CSV
> 
> Arnaldo Carvalho de Melo (1):
>       perf evsel: Provide way to extract integer value from format_field
> 
> He Kuang (1):
>       perf script: Show call graphs when 1st event doesn't have it but some other has
> 
> Lucas Stach (1):
>       tools lib api: Respect CROSS_COMPILE for the linker
> 
> Taeung Song (2):
>       perf config: Fix abnormal termination at perf_parse_file()
>       perf config: Handle the error when config set is NULL at collect_config()
> 
> Wang Nan (1):
>       perf evlist: Fix alloc_mmap() failure path
> 
>  tools/lib/api/Makefile                 |   1 +
>  tools/perf/Documentation/perf-stat.txt |  32 +++++++
>  tools/perf/arch/x86/util/Build         |   1 +
>  tools/perf/arch/x86/util/group.c       |  27 ++++++
>  tools/perf/builtin-script.c            |  23 +++--
>  tools/perf/builtin-stat.c              | 165 ++++++++++++++++++++++++++++++---
>  tools/perf/tests/parse-events.c        |   4 +-
>  tools/perf/util/config.c               |  22 +++--
>  tools/perf/util/evlist.c               |   5 +-
>  tools/perf/util/evsel.c                |  25 +++--
>  tools/perf/util/evsel.h                |   2 +
>  tools/perf/util/group.h                |   7 ++
>  tools/perf/util/parse-events.l         |   1 +
>  tools/perf/util/stat-shadow.c          | 162 ++++++++++++++++++++++++++++++++
>  tools/perf/util/stat.c                 |   5 +
>  tools/perf/util/stat.h                 |   5 +
>  16 files changed, 441 insertions(+), 46 deletions(-)
>  create mode 100644 tools/perf/arch/x86/util/group.c
>  create mode 100644 tools/perf/util/group.h

Pulled, thanks a lot Arnaldo!

	Ingo

^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [GIT PULL 00/11] perf/core improvements and fixes
  2018-05-16 14:48 ` Arnaldo Carvalho de Melo
  (?)
@ 2018-05-16 15:58   ` Ingo Molnar
  -1 siblings, 0 replies; 70+ messages in thread
From: Ingo Molnar @ 2018-05-16 15:58 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Clark Williams, linux-kernel, linux-perf-users, Adrian Hunter,
	Agustin Vega-Frias, Alexander Shishkin, Andi Kleen,
	Andy Lutomirski, Daniel Borkmann, Dave Hansen, David Ahern,
	Ganapatrao Kulkarni, H . Peter Anvin, Jin Yao, Jiri Olsa,
	Joerg Roedel, Kan Liang, Masami Hiramatsu, Namhyung Kim, netdev,
	Peter Zijlstra, Ravi Bangoria, Shaokun Zhang, Thomas Gleixner,
	Wang Nan, Will Deacon, x86, YueHaibing, Arnaldo Carvalho de Melo


* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:

> Hi Ingo,
> 
> 	Please consider pulling, more to come as I go thru Adrian's x86
> PTI series and the C++ support improvements to 'perf probe', from
> Holger,
> 
> Best Regards,
> 
> - Arnaldo
> 
> Test results at the end of this message, as usual.
>   
> The following changes since commit 291c161f6c65530092903fbea58eb07a62b220ba:
> 
>   Merge remote-tracking branch 'tip/perf/urgent' into perf/core (2018-05-15 10:30:17 -0300)
> 
> are available in the Git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-4.18-20180516
> 
> for you to fetch changes up to 7a36a287de9fbb1ba906e70573d3f2315f7fd609:
> 
>   perf bpf: Fix NULL return handling in bpf__prepare_load() (2018-05-16 10:01:55 -0300)
> 
> ----------------------------------------------------------------
> perf/core improvements and fixes:
> 
> - Add '-e intel_pt//u' test to the 'parse-events' 'perf test' entry,
>   to help avoiding regressions in the events parser such as one
>   that caused a revert in v4.17-rc (Arnaldo Carvalho de Melo)
> 
> - Fix NULL return handling in bpf__prepare_load() (YueHaibing)
> 
> - Warn about 'perf buildid-cache --purge-all' failures (Ravi Bangoria)
> 
> - Add infrastructure to help in writing eBPF C programs to be used
>   with '-e name.c' type events in tools such as 'record' and 'trace',
>   with headers for common constructs and an examples directory that
>   will get populated as we add more such helpers and the 'perf bpf'
>   branch that Jiri Olsa has been working on (Arnaldo Carvalho de Melo)
> 
> - Handle uncore event aliases in small groups properly (Kan Liang)
> 
> - Use the "_stest" symbol to identify the kernel map when loading kcore (Adrian Hunter)
> 
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> ----------------------------------------------------------------
> Adrian Hunter (1):
>       perf tools: Use the "_stest" symbol to identify the kernel map when loading kcore
> 
> Arnaldo Carvalho de Melo (7):
>       perf tests parse-events: Add intel_pt parse test
>       perf llvm-utils: Add bpf include path to clang command line
>       perf bpf: Add 'examples' directories
>       perf bpf: Add bpf.h to be used in eBPF proggies
>       perf bpf: Add kprobe example to catch 5s naps
>       perf bpf: Add license(NAME) helper
>       perf bpf: Add probe() helper to reduce kprobes boilerplate
> 
> Kan Liang (1):
>       perf parse-events: Handle uncore event aliases in small groups properly
> 
> Ravi Bangoria (1):
>       perf buildid-cache: Warn --purge-all failures
> 
> YueHaibing (1):
>       perf bpf: Fix NULL return handling in bpf__prepare_load()
> 
>  tools/perf/Makefile.config         |  14 ++++
>  tools/perf/Makefile.perf           |   8 +++
>  tools/perf/builtin-buildid-cache.c |   8 ++-
>  tools/perf/examples/bpf/5sec.c     |  49 ++++++++++++++
>  tools/perf/examples/bpf/empty.c    |   3 +
>  tools/perf/include/bpf/bpf.h       |  13 ++++
>  tools/perf/tests/parse-events.c    |  13 ++++
>  tools/perf/util/Build              |   2 +
>  tools/perf/util/bpf-loader.c       |   6 +-
>  tools/perf/util/evsel.h            |   1 +
>  tools/perf/util/llvm-utils.c       |  19 ++++--
>  tools/perf/util/parse-events.c     | 130 ++++++++++++++++++++++++++++++++++++-
>  tools/perf/util/parse-events.h     |   7 +-
>  tools/perf/util/parse-events.y     |   8 +--
>  tools/perf/util/symbol.c           |  16 ++---
>  15 files changed, 270 insertions(+), 27 deletions(-)
>  create mode 100644 tools/perf/examples/bpf/5sec.c
>  create mode 100644 tools/perf/examples/bpf/empty.c
>  create mode 100644 tools/perf/include/bpf/bpf.h

Pulled, thanks a lot Arnaldo!

	Ingo

^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [GIT PULL 00/11] perf/core improvements and fixes
@ 2018-05-16 15:58   ` Ingo Molnar
  0 siblings, 0 replies; 70+ messages in thread
From: Ingo Molnar @ 2018-05-16 15:58 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Clark Williams, linux-kernel, linux-perf-users, Adrian Hunter,
	Agustin Vega-Frias, Alexander Shishkin, Andi Kleen,
	Andy Lutomirski, Daniel Borkmann, Dave Hansen, David Ahern,
	Ganapatrao Kulkarni, H . Peter Anvin, Jin Yao, Jiri Olsa,
	Joerg Roedel, Kan Liang, Masami Hiramatsu, Namhyung Kim, netdev,
	Peter


* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:

> Hi Ingo,
> 
> 	Please consider pulling, more to come as I go thru Adrian's x86
> PTI series and the C++ support improvements to 'perf probe', from
> Holger,
> 
> Best Regards,
> 
> - Arnaldo
> 
> Test results at the end of this message, as usual.
>   
> The following changes since commit 291c161f6c65530092903fbea58eb07a62b220ba:
> 
>   Merge remote-tracking branch 'tip/perf/urgent' into perf/core (2018-05-15 10:30:17 -0300)
> 
> are available in the Git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-4.18-20180516
> 
> for you to fetch changes up to 7a36a287de9fbb1ba906e70573d3f2315f7fd609:
> 
>   perf bpf: Fix NULL return handling in bpf__prepare_load() (2018-05-16 10:01:55 -0300)
> 
> ----------------------------------------------------------------
> perf/core improvements and fixes:
> 
> - Add '-e intel_pt//u' test to the 'parse-events' 'perf test' entry,
>   to help avoiding regressions in the events parser such as one
>   that caused a revert in v4.17-rc (Arnaldo Carvalho de Melo)
> 
> - Fix NULL return handling in bpf__prepare_load() (YueHaibing)
> 
> - Warn about 'perf buildid-cache --purge-all' failures (Ravi Bangoria)
> 
> - Add infrastructure to help in writing eBPF C programs to be used
>   with '-e name.c' type events in tools such as 'record' and 'trace',
>   with headers for common constructs and an examples directory that
>   will get populated as we add more such helpers and the 'perf bpf'
>   branch that Jiri Olsa has been working on (Arnaldo Carvalho de Melo)
> 
> - Handle uncore event aliases in small groups properly (Kan Liang)
> 
> - Use the "_stest" symbol to identify the kernel map when loading kcore (Adrian Hunter)
> 
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> ----------------------------------------------------------------
> Adrian Hunter (1):
>       perf tools: Use the "_stest" symbol to identify the kernel map when loading kcore
> 
> Arnaldo Carvalho de Melo (7):
>       perf tests parse-events: Add intel_pt parse test
>       perf llvm-utils: Add bpf include path to clang command line
>       perf bpf: Add 'examples' directories
>       perf bpf: Add bpf.h to be used in eBPF proggies
>       perf bpf: Add kprobe example to catch 5s naps
>       perf bpf: Add license(NAME) helper
>       perf bpf: Add probe() helper to reduce kprobes boilerplate
> 
> Kan Liang (1):
>       perf parse-events: Handle uncore event aliases in small groups properly
> 
> Ravi Bangoria (1):
>       perf buildid-cache: Warn --purge-all failures
> 
> YueHaibing (1):
>       perf bpf: Fix NULL return handling in bpf__prepare_load()
> 
>  tools/perf/Makefile.config         |  14 ++++
>  tools/perf/Makefile.perf           |   8 +++
>  tools/perf/builtin-buildid-cache.c |   8 ++-
>  tools/perf/examples/bpf/5sec.c     |  49 ++++++++++++++
>  tools/perf/examples/bpf/empty.c    |   3 +
>  tools/perf/include/bpf/bpf.h       |  13 ++++
>  tools/perf/tests/parse-events.c    |  13 ++++
>  tools/perf/util/Build              |   2 +
>  tools/perf/util/bpf-loader.c       |   6 +-
>  tools/perf/util/evsel.h            |   1 +
>  tools/perf/util/llvm-utils.c       |  19 ++++--
>  tools/perf/util/parse-events.c     | 130 ++++++++++++++++++++++++++++++++++++-
>  tools/perf/util/parse-events.h     |   7 +-
>  tools/perf/util/parse-events.y     |   8 +--
>  tools/perf/util/symbol.c           |  16 ++---
>  15 files changed, 270 insertions(+), 27 deletions(-)
>  create mode 100644 tools/perf/examples/bpf/5sec.c
>  create mode 100644 tools/perf/examples/bpf/empty.c
>  create mode 100644 tools/perf/include/bpf/bpf.h

Pulled, thanks a lot Arnaldo!

	Ingo

^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [GIT PULL 00/11] perf/core improvements and fixes
@ 2018-05-16 15:58   ` Ingo Molnar
  0 siblings, 0 replies; 70+ messages in thread
From: Ingo Molnar @ 2018-05-16 15:58 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Clark Williams, linux-kernel, linux-perf-users, Adrian Hunter,
	Agustin Vega-Frias, Alexander Shishkin, Andi Kleen,
	Andy Lutomirski, Daniel Borkmann, Dave Hansen, David Ahern,
	Ganapatrao Kulkarni, H . Peter Anvin, Jin Yao, Jiri Olsa,
	Joerg Roedel, Kan Liang, Masami Hiramatsu, Namhyung Kim, netdev


* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:

> Hi Ingo,
> 
> 	Please consider pulling, more to come as I go thru Adrian's x86
> PTI series and the C++ support improvements to 'perf probe', from
> Holger,
> 
> Best Regards,
> 
> - Arnaldo
> 
> Test results at the end of this message, as usual.
>   
> The following changes since commit 291c161f6c65530092903fbea58eb07a62b220ba:
> 
>   Merge remote-tracking branch 'tip/perf/urgent' into perf/core (2018-05-15 10:30:17 -0300)
> 
> are available in the Git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-4.18-20180516
> 
> for you to fetch changes up to 7a36a287de9fbb1ba906e70573d3f2315f7fd609:
> 
>   perf bpf: Fix NULL return handling in bpf__prepare_load() (2018-05-16 10:01:55 -0300)
> 
> ----------------------------------------------------------------
> perf/core improvements and fixes:
> 
> - Add '-e intel_pt//u' test to the 'parse-events' 'perf test' entry,
>   to help avoiding regressions in the events parser such as one
>   that caused a revert in v4.17-rc (Arnaldo Carvalho de Melo)
> 
> - Fix NULL return handling in bpf__prepare_load() (YueHaibing)
> 
> - Warn about 'perf buildid-cache --purge-all' failures (Ravi Bangoria)
> 
> - Add infrastructure to help in writing eBPF C programs to be used
>   with '-e name.c' type events in tools such as 'record' and 'trace',
>   with headers for common constructs and an examples directory that
>   will get populated as we add more such helpers and the 'perf bpf'
>   branch that Jiri Olsa has been working on (Arnaldo Carvalho de Melo)
> 
> - Handle uncore event aliases in small groups properly (Kan Liang)
> 
> - Use the "_stest" symbol to identify the kernel map when loading kcore (Adrian Hunter)
> 
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> ----------------------------------------------------------------
> Adrian Hunter (1):
>       perf tools: Use the "_stest" symbol to identify the kernel map when loading kcore
> 
> Arnaldo Carvalho de Melo (7):
>       perf tests parse-events: Add intel_pt parse test
>       perf llvm-utils: Add bpf include path to clang command line
>       perf bpf: Add 'examples' directories
>       perf bpf: Add bpf.h to be used in eBPF proggies
>       perf bpf: Add kprobe example to catch 5s naps
>       perf bpf: Add license(NAME) helper
>       perf bpf: Add probe() helper to reduce kprobes boilerplate
> 
> Kan Liang (1):
>       perf parse-events: Handle uncore event aliases in small groups properly
> 
> Ravi Bangoria (1):
>       perf buildid-cache: Warn --purge-all failures
> 
> YueHaibing (1):
>       perf bpf: Fix NULL return handling in bpf__prepare_load()
> 
>  tools/perf/Makefile.config         |  14 ++++
>  tools/perf/Makefile.perf           |   8 +++
>  tools/perf/builtin-buildid-cache.c |   8 ++-
>  tools/perf/examples/bpf/5sec.c     |  49 ++++++++++++++
>  tools/perf/examples/bpf/empty.c    |   3 +
>  tools/perf/include/bpf/bpf.h       |  13 ++++
>  tools/perf/tests/parse-events.c    |  13 ++++
>  tools/perf/util/Build              |   2 +
>  tools/perf/util/bpf-loader.c       |   6 +-
>  tools/perf/util/evsel.h            |   1 +
>  tools/perf/util/llvm-utils.c       |  19 ++++--
>  tools/perf/util/parse-events.c     | 130 ++++++++++++++++++++++++++++++++++++-
>  tools/perf/util/parse-events.h     |   7 +-
>  tools/perf/util/parse-events.y     |   8 +--
>  tools/perf/util/symbol.c           |  16 ++---
>  15 files changed, 270 insertions(+), 27 deletions(-)
>  create mode 100644 tools/perf/examples/bpf/5sec.c
>  create mode 100644 tools/perf/examples/bpf/empty.c
>  create mode 100644 tools/perf/include/bpf/bpf.h

Pulled, thanks a lot Arnaldo!

	Ingo

^ permalink raw reply	[flat|nested] 70+ messages in thread

* [GIT PULL 00/11] perf/core improvements and fixes
@ 2018-05-16 14:48 ` Arnaldo Carvalho de Melo
  0 siblings, 0 replies; 70+ messages in thread
From: Arnaldo Carvalho de Melo @ 2018-05-16 14:48 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Clark Williams, linux-kernel, linux-perf-users,
	Arnaldo Carvalho de Melo, Adrian Hunter, Agustin Vega-Frias,
	Alexander Shishkin, Andi Kleen, Andy Lutomirski, Daniel Borkmann,
	Dave Hansen, David Ahern, Ganapatrao Kulkarni, H . Peter Anvin,
	Jin Yao, Jiri Olsa, Joerg Roedel, Kan Liang, Masami Hiramatsu,
	Namhyung Kim, netdev, Peter Zijlstra, Ravi Bangoria,
	Shaokun Zhang, Thomas Gleixner, Wang Nan, Will Deacon, x86,
	YueHaibing, Arnaldo Carvalho de Melo

Hi Ingo,

	Please consider pulling, more to come as I go thru Adrian's x86
PTI series and the C++ support improvements to 'perf probe', from
Holger,

Best Regards,

- Arnaldo

Test results at the end of this message, as usual.
  
The following changes since commit 291c161f6c65530092903fbea58eb07a62b220ba:

  Merge remote-tracking branch 'tip/perf/urgent' into perf/core (2018-05-15 10:30:17 -0300)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-4.18-20180516

for you to fetch changes up to 7a36a287de9fbb1ba906e70573d3f2315f7fd609:

  perf bpf: Fix NULL return handling in bpf__prepare_load() (2018-05-16 10:01:55 -0300)

----------------------------------------------------------------
perf/core improvements and fixes:

- Add '-e intel_pt//u' test to the 'parse-events' 'perf test' entry,
  to help avoiding regressions in the events parser such as one
  that caused a revert in v4.17-rc (Arnaldo Carvalho de Melo)

- Fix NULL return handling in bpf__prepare_load() (YueHaibing)

- Warn about 'perf buildid-cache --purge-all' failures (Ravi Bangoria)

- Add infrastructure to help in writing eBPF C programs to be used
  with '-e name.c' type events in tools such as 'record' and 'trace',
  with headers for common constructs and an examples directory that
  will get populated as we add more such helpers and the 'perf bpf'
  branch that Jiri Olsa has been working on (Arnaldo Carvalho de Melo)

- Handle uncore event aliases in small groups properly (Kan Liang)

- Use the "_stest" symbol to identify the kernel map when loading kcore (Adrian Hunter)

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

----------------------------------------------------------------
Adrian Hunter (1):
      perf tools: Use the "_stest" symbol to identify the kernel map when loading kcore

Arnaldo Carvalho de Melo (7):
      perf tests parse-events: Add intel_pt parse test
      perf llvm-utils: Add bpf include path to clang command line
      perf bpf: Add 'examples' directories
      perf bpf: Add bpf.h to be used in eBPF proggies
      perf bpf: Add kprobe example to catch 5s naps
      perf bpf: Add license(NAME) helper
      perf bpf: Add probe() helper to reduce kprobes boilerplate

Kan Liang (1):
      perf parse-events: Handle uncore event aliases in small groups properly

Ravi Bangoria (1):
      perf buildid-cache: Warn --purge-all failures

YueHaibing (1):
      perf bpf: Fix NULL return handling in bpf__prepare_load()

 tools/perf/Makefile.config         |  14 ++++
 tools/perf/Makefile.perf           |   8 +++
 tools/perf/builtin-buildid-cache.c |   8 ++-
 tools/perf/examples/bpf/5sec.c     |  49 ++++++++++++++
 tools/perf/examples/bpf/empty.c    |   3 +
 tools/perf/include/bpf/bpf.h       |  13 ++++
 tools/perf/tests/parse-events.c    |  13 ++++
 tools/perf/util/Build              |   2 +
 tools/perf/util/bpf-loader.c       |   6 +-
 tools/perf/util/evsel.h            |   1 +
 tools/perf/util/llvm-utils.c       |  19 ++++--
 tools/perf/util/parse-events.c     | 130 ++++++++++++++++++++++++++++++++++++-
 tools/perf/util/parse-events.h     |   7 +-
 tools/perf/util/parse-events.y     |   8 +--
 tools/perf/util/symbol.c           |  16 ++---
 15 files changed, 270 insertions(+), 27 deletions(-)
 create mode 100644 tools/perf/examples/bpf/5sec.c
 create mode 100644 tools/perf/examples/bpf/empty.c
 create mode 100644 tools/perf/include/bpf/bpf.h

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, and building with LIBCLANGLLVM=1
(built-in clang) with gcc and clang when clang and its devel libraries
are installed.

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:3.7                    : Ok   gcc (Alpine 6.4.0) 6.4.0
   5 alpine:edge                   : Ok   gcc (Alpine 6.4.0) 6.4.0
   6 amazonlinux:1                 : Ok   gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28)
   7 amazonlinux:2                 : Ok   gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5)
   8 android-ndk:r12b-arm          : Ok   arm-linux-androideabi-gcc (GCC) 4.9.x 20150123 (prerelease)
   9 android-ndk:r15c-arm          : Ok   arm-linux-androideabi-gcc (GCC) 4.9.x 20150123 (prerelease)
  10 centos:5                      : Ok   gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-55)
  11 centos:6                      : Ok   gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18)
  12 centos:7                      : Ok   gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16)
  13 debian:7                      : Ok   gcc (Debian 4.7.2-5) 4.7.2
  14 debian:8                      : Ok   gcc (Debian 4.9.2-10+deb8u1) 4.9.2
  15 debian:9                      : Ok   gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516
  16 debian:experimental           : Ok   gcc (Debian 7.3.0-18) 7.3.0
  17 debian:experimental-x-arm64   : Ok   aarch64-linux-gnu-gcc (Debian 7.3.0-18) 7.3.0
  18 debian:experimental-x-mips    : Ok   mips-linux-gnu-gcc (Debian 7.3.0-18) 7.3.0
  19 debian:experimental-x-mips64  : Ok   mips64-linux-gnuabi64-gcc (Debian 7.3.0-18) 7.3.0
  20 debian:experimental-x-mipsel  : Ok   mipsel-linux-gnu-gcc (Debian 7.3.0-18) 7.3.0
  21 fedora:20                     : Ok   gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-7)
  22 fedora:21                     : Ok   gcc (GCC) 4.9.2 20150212 (Red Hat 4.9.2-6)
  23 fedora:22                     : Ok   gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6)
  24 fedora:23                     : Ok   gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6)
  25 fedora:24                     : Ok   gcc (GCC) 6.3.1 20161221 (Red Hat 6.3.1-1)
  26 fedora:24-x-ARC-uClibc        : Ok   arc-linux-gcc (ARCompact ISA Linux uClibc toolchain 2017.09-rc2) 7.1.1 20170710
  27 fedora:25                     : Ok   gcc (GCC) 6.4.1 20170727 (Red Hat 6.4.1-1)
  28 fedora:26                     : Ok   gcc (GCC) 7.3.1 20180130 (Red Hat 7.3.1-2)
  29 fedora:27                     : Ok   gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5)
  30 fedora:28                     : Ok   gcc (GCC) 8.1.1 20180502 (Red Hat 8.1.1-1)
  31 fedora:rawhide                : Ok   gcc (GCC) 8.0.1 20180324 (Red Hat 8.0.1-0.20)
  32 gentoo-stage3-amd64:latest    : Ok   gcc (Gentoo 6.4.0-r1 p1.3) 6.4.0
  33 mageia:5                      : Ok   gcc (GCC) 4.9.2
  34 mageia:6                      : Ok   gcc (Mageia 5.5.0-1.mga6) 5.5.0
  35 opensuse:42.1                 : Ok   gcc (SUSE Linux) 4.8.5
  36 opensuse:42.2                 : Ok   gcc (SUSE Linux) 4.8.5
  37 opensuse:42.3                 : Ok   gcc (SUSE Linux) 4.8.5
  38 opensuse:tumbleweed           : Ok   gcc (SUSE Linux) 7.3.1 20180323 [gcc-7-branch revision 258812]
  39 oraclelinux:6                 : Ok   gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18.0.7)
  40 oraclelinux:7                 : Ok   gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28.0.1)
  41 ubuntu:12.04.5                : Ok   gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
  42 ubuntu:14.04.4                : Ok   gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4
  43 ubuntu:14.04.4-x-linaro-arm64 : Ok   aarch64-linux-gnu-gcc (Linaro GCC 5.5-2017.10) 5.5.0
  44 ubuntu:16.04                  : Ok   gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
  45 ubuntu:16.04-x-arm            : Ok   arm-linux-gnueabihf-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
  46 ubuntu:16.04-x-arm64          : Ok   aarch64-linux-gnu-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
  47 ubuntu:16.04-x-powerpc        : Ok   powerpc-linux-gnu-gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
  48 ubuntu:16.04-x-powerpc64      : Ok   powerpc64-linux-gnu-gcc (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
  49 ubuntu:16.04-x-powerpc64el    : Ok   powerpc64le-linux-gnu-gcc (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
  50 ubuntu:16.04-x-s390           : Ok   s390x-linux-gnu-gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
  51 ubuntu:16.10                  : Ok   gcc (Ubuntu 6.2.0-5ubuntu12) 6.2.0 20161005
  52 ubuntu:17.04                  : Ok   gcc (Ubuntu 6.3.0-12ubuntu2) 6.3.0 20170406
  53 ubuntu:17.10                  : Ok   gcc (Ubuntu 7.2.0-8ubuntu3.2) 7.2.0
  54 ubuntu:18.04                  : Ok   gcc (Ubuntu 7.3.0-16ubuntu3) 7.3.0
  #

  # uname -a
  Linux jouet 4.17.0-rc5 #21 SMP Mon May 14 15:35:35 -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: Breakpoint accounting                                 : Ok
  22: Number of exit events of a simple workload            : Ok
  23: Software clock events period values                   : Ok
  24: Object code reading                                   : Ok
  25: Sample parsing                                        : Ok
  26: Use a dummy software event to keep tracking           : Ok
  27: Parse with no sample_id_all bit set                   : Ok
  28: Filter hist entries                                   : Ok
  29: Lookup mmap thread                                    : Ok
  30: Share thread mg                                       : Ok
  31: Sort output of hist entries                           : Ok
  32: Cumulate child hist entries                           : Ok
  33: Track with sched_switch                               : Ok
  34: Filter fds with revents mask in a fdarray             : Ok
  35: Add fd to a fdarray, making it autogrow               : Ok
  36: kmod_path__parse                                      : Ok
  37: Thread map                                            : Ok
  38: LLVM search and compile                               :
  38.1: Basic BPF llvm compile                              : Ok
  38.2: kbuild searching                                    : Ok
  38.3: Compile source for BPF prologue generation          : Ok
  38.4: Compile source for BPF relocation                   : Ok
  39: Session topology                                      : Ok
  40: BPF filter                                            :
  40.1: Basic BPF filtering                                 : Ok
  40.2: BPF pinning                                         : Ok
  40.3: BPF prologue generation                             : Ok
  40.4: BPF relocation checker                              : Ok
  41: Synthesize thread map                                 : Ok
  42: Remove thread map                                     : Ok
  43: Synthesize cpu map                                    : Ok
  44: Synthesize stat config                                : Ok
  45: Synthesize stat                                       : Ok
  46: Synthesize stat round                                 : Ok
  47: Synthesize attr update                                : Ok
  48: Event times                                           : Ok
  49: Read backward ring buffer                             : Ok
  50: Print cpu map                                         : Ok
  51: Probe SDT events                                      : Ok
  52: is_printable_array                                    : Ok
  53: Print bitmap                                          : Ok
  54: perf hooks                                            : Ok
  55: builtin clang support                                 : Skip (not compiled in)
  56: unit_number__scnprintf                                : Ok
  57: mem2node                                              : Ok
  58: x86 rdpmc                                             : Ok
  59: Convert perf time to TSC                              : Ok
  60: DWARF unwind                                          : Ok
  61: x86 instruction decoder - new instructions            : Ok
  62: Use vfs_getname probe to get syscall args filenames   : Ok
  63: Check open filename arg using perf trace + vfs_getname: Ok
  64: probe libc's inet_pton & backtrace it with ping       : Ok
  65: 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_with_babeltrace_O: make LIBBABELTRACE=1
                 make_static_O: make LDFLAGS=-static
                   make_tags_O: make tags
                make_install_O: make install
                    make_doc_O: make doc
              make_no_libelf_O: make NO_LIBELF=1
              make_no_libbpf_O: make NO_LIBBPF=1
            make_no_demangle_O: make NO_DEMANGLE=1
              make_clean_all_O: make clean all
               make_no_slang_O: make NO_SLANG=1
             make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1
         make_with_clangllvm_O: make LIBCLANGLLVM=1
                make_no_newt_O: make NO_NEWT=1
             make_no_libnuma_O: make NO_LIBNUMA=1
  make_no_libdw_dwarf_unwind_O: make NO_LIBDW_DWARF_UNWIND=1
           make_no_libbionic_O: make NO_LIBBIONIC=1
             make_no_libperl_O: make NO_LIBPERL=1
           make_no_libpython_O: make NO_LIBPYTHON=1
           make_no_libunwind_O: make NO_LIBUNWIND=1
           make_no_backtrace_O: make NO_BACKTRACE=1
   make_install_prefix_slash_O: make install prefix=/tmp/krava/
                  make_debug_O: make DEBUG=1
             make_util_map_o_O: make util/map.o
                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_install_prefix_O: make install prefix=/tmp/krava
                   make_pure_O: make
                 make_perf_o_O: make perf.o
                   make_help_O: make help
                make_no_gtk2_O: make NO_GTK2=1
            make_no_libaudit_O: make NO_LIBAUDIT=1
       make_util_pmu_bison_o_O: make util/pmu-bison.o
                  make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1
            make_install_bin_O: make install-bin
            make_no_auxtrace_O: make NO_AUXTRACE=1
  OK
  make: Leaving directory '/home/acme/git/perf/tools/perf'
  $ 

^ permalink raw reply	[flat|nested] 70+ messages in thread

* [GIT PULL 00/11] perf/core improvements and fixes
@ 2018-05-16 14:48 ` Arnaldo Carvalho de Melo
  0 siblings, 0 replies; 70+ messages in thread
From: Arnaldo Carvalho de Melo @ 2018-05-16 14:48 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Clark Williams, linux-kernel, linux-perf-users,
	Arnaldo Carvalho de Melo, Adrian Hunter, Agustin Vega-Frias,
	Alexander Shishkin, Andi Kleen, Andy Lutomirski, Daniel Borkmann,
	Dave Hansen, David Ahern, Ganapatrao Kulkarni, H . Peter Anvin,
	Jin Yao, Jiri Olsa, Joerg Roedel, Kan Liang, Masami Hiramatsu,
	Namhyung Kim

Hi Ingo,

	Please consider pulling, more to come as I go thru Adrian's x86
PTI series and the C++ support improvements to 'perf probe', from
Holger,

Best Regards,

- Arnaldo

Test results at the end of this message, as usual.
  
The following changes since commit 291c161f6c65530092903fbea58eb07a62b220ba:

  Merge remote-tracking branch 'tip/perf/urgent' into perf/core (2018-05-15 10:30:17 -0300)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-4.18-20180516

for you to fetch changes up to 7a36a287de9fbb1ba906e70573d3f2315f7fd609:

  perf bpf: Fix NULL return handling in bpf__prepare_load() (2018-05-16 10:01:55 -0300)

----------------------------------------------------------------
perf/core improvements and fixes:

- Add '-e intel_pt//u' test to the 'parse-events' 'perf test' entry,
  to help avoiding regressions in the events parser such as one
  that caused a revert in v4.17-rc (Arnaldo Carvalho de Melo)

- Fix NULL return handling in bpf__prepare_load() (YueHaibing)

- Warn about 'perf buildid-cache --purge-all' failures (Ravi Bangoria)

- Add infrastructure to help in writing eBPF C programs to be used
  with '-e name.c' type events in tools such as 'record' and 'trace',
  with headers for common constructs and an examples directory that
  will get populated as we add more such helpers and the 'perf bpf'
  branch that Jiri Olsa has been working on (Arnaldo Carvalho de Melo)

- Handle uncore event aliases in small groups properly (Kan Liang)

- Use the "_stest" symbol to identify the kernel map when loading kcore (Adrian Hunter)

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

----------------------------------------------------------------
Adrian Hunter (1):
      perf tools: Use the "_stest" symbol to identify the kernel map when loading kcore

Arnaldo Carvalho de Melo (7):
      perf tests parse-events: Add intel_pt parse test
      perf llvm-utils: Add bpf include path to clang command line
      perf bpf: Add 'examples' directories
      perf bpf: Add bpf.h to be used in eBPF proggies
      perf bpf: Add kprobe example to catch 5s naps
      perf bpf: Add license(NAME) helper
      perf bpf: Add probe() helper to reduce kprobes boilerplate

Kan Liang (1):
      perf parse-events: Handle uncore event aliases in small groups properly

Ravi Bangoria (1):
      perf buildid-cache: Warn --purge-all failures

YueHaibing (1):
      perf bpf: Fix NULL return handling in bpf__prepare_load()

 tools/perf/Makefile.config         |  14 ++++
 tools/perf/Makefile.perf           |   8 +++
 tools/perf/builtin-buildid-cache.c |   8 ++-
 tools/perf/examples/bpf/5sec.c     |  49 ++++++++++++++
 tools/perf/examples/bpf/empty.c    |   3 +
 tools/perf/include/bpf/bpf.h       |  13 ++++
 tools/perf/tests/parse-events.c    |  13 ++++
 tools/perf/util/Build              |   2 +
 tools/perf/util/bpf-loader.c       |   6 +-
 tools/perf/util/evsel.h            |   1 +
 tools/perf/util/llvm-utils.c       |  19 ++++--
 tools/perf/util/parse-events.c     | 130 ++++++++++++++++++++++++++++++++++++-
 tools/perf/util/parse-events.h     |   7 +-
 tools/perf/util/parse-events.y     |   8 +--
 tools/perf/util/symbol.c           |  16 ++---
 15 files changed, 270 insertions(+), 27 deletions(-)
 create mode 100644 tools/perf/examples/bpf/5sec.c
 create mode 100644 tools/perf/examples/bpf/empty.c
 create mode 100644 tools/perf/include/bpf/bpf.h

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, and building with LIBCLANGLLVM=1
(built-in clang) with gcc and clang when clang and its devel libraries
are installed.

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:3.7                    : Ok   gcc (Alpine 6.4.0) 6.4.0
   5 alpine:edge                   : Ok   gcc (Alpine 6.4.0) 6.4.0
   6 amazonlinux:1                 : Ok   gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28)
   7 amazonlinux:2                 : Ok   gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5)
   8 android-ndk:r12b-arm          : Ok   arm-linux-androideabi-gcc (GCC) 4.9.x 20150123 (prerelease)
   9 android-ndk:r15c-arm          : Ok   arm-linux-androideabi-gcc (GCC) 4.9.x 20150123 (prerelease)
  10 centos:5                      : Ok   gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-55)
  11 centos:6                      : Ok   gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18)
  12 centos:7                      : Ok   gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16)
  13 debian:7                      : Ok   gcc (Debian 4.7.2-5) 4.7.2
  14 debian:8                      : Ok   gcc (Debian 4.9.2-10+deb8u1) 4.9.2
  15 debian:9                      : Ok   gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516
  16 debian:experimental           : Ok   gcc (Debian 7.3.0-18) 7.3.0
  17 debian:experimental-x-arm64   : Ok   aarch64-linux-gnu-gcc (Debian 7.3.0-18) 7.3.0
  18 debian:experimental-x-mips    : Ok   mips-linux-gnu-gcc (Debian 7.3.0-18) 7.3.0
  19 debian:experimental-x-mips64  : Ok   mips64-linux-gnuabi64-gcc (Debian 7.3.0-18) 7.3.0
  20 debian:experimental-x-mipsel  : Ok   mipsel-linux-gnu-gcc (Debian 7.3.0-18) 7.3.0
  21 fedora:20                     : Ok   gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-7)
  22 fedora:21                     : Ok   gcc (GCC) 4.9.2 20150212 (Red Hat 4.9.2-6)
  23 fedora:22                     : Ok   gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6)
  24 fedora:23                     : Ok   gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6)
  25 fedora:24                     : Ok   gcc (GCC) 6.3.1 20161221 (Red Hat 6.3.1-1)
  26 fedora:24-x-ARC-uClibc        : Ok   arc-linux-gcc (ARCompact ISA Linux uClibc toolchain 2017.09-rc2) 7.1.1 20170710
  27 fedora:25                     : Ok   gcc (GCC) 6.4.1 20170727 (Red Hat 6.4.1-1)
  28 fedora:26                     : Ok   gcc (GCC) 7.3.1 20180130 (Red Hat 7.3.1-2)
  29 fedora:27                     : Ok   gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5)
  30 fedora:28                     : Ok   gcc (GCC) 8.1.1 20180502 (Red Hat 8.1.1-1)
  31 fedora:rawhide                : Ok   gcc (GCC) 8.0.1 20180324 (Red Hat 8.0.1-0.20)
  32 gentoo-stage3-amd64:latest    : Ok   gcc (Gentoo 6.4.0-r1 p1.3) 6.4.0
  33 mageia:5                      : Ok   gcc (GCC) 4.9.2
  34 mageia:6                      : Ok   gcc (Mageia 5.5.0-1.mga6) 5.5.0
  35 opensuse:42.1                 : Ok   gcc (SUSE Linux) 4.8.5
  36 opensuse:42.2                 : Ok   gcc (SUSE Linux) 4.8.5
  37 opensuse:42.3                 : Ok   gcc (SUSE Linux) 4.8.5
  38 opensuse:tumbleweed           : Ok   gcc (SUSE Linux) 7.3.1 20180323 [gcc-7-branch revision 258812]
  39 oraclelinux:6                 : Ok   gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18.0.7)
  40 oraclelinux:7                 : Ok   gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28.0.1)
  41 ubuntu:12.04.5                : Ok   gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
  42 ubuntu:14.04.4                : Ok   gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4
  43 ubuntu:14.04.4-x-linaro-arm64 : Ok   aarch64-linux-gnu-gcc (Linaro GCC 5.5-2017.10) 5.5.0
  44 ubuntu:16.04                  : Ok   gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
  45 ubuntu:16.04-x-arm            : Ok   arm-linux-gnueabihf-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
  46 ubuntu:16.04-x-arm64          : Ok   aarch64-linux-gnu-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
  47 ubuntu:16.04-x-powerpc        : Ok   powerpc-linux-gnu-gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
  48 ubuntu:16.04-x-powerpc64      : Ok   powerpc64-linux-gnu-gcc (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
  49 ubuntu:16.04-x-powerpc64el    : Ok   powerpc64le-linux-gnu-gcc (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
  50 ubuntu:16.04-x-s390           : Ok   s390x-linux-gnu-gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
  51 ubuntu:16.10                  : Ok   gcc (Ubuntu 6.2.0-5ubuntu12) 6.2.0 20161005
  52 ubuntu:17.04                  : Ok   gcc (Ubuntu 6.3.0-12ubuntu2) 6.3.0 20170406
  53 ubuntu:17.10                  : Ok   gcc (Ubuntu 7.2.0-8ubuntu3.2) 7.2.0
  54 ubuntu:18.04                  : Ok   gcc (Ubuntu 7.3.0-16ubuntu3) 7.3.0
  #

  # uname -a
  Linux jouet 4.17.0-rc5 #21 SMP Mon May 14 15:35:35 -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: Breakpoint accounting                                 : Ok
  22: Number of exit events of a simple workload            : Ok
  23: Software clock events period values                   : Ok
  24: Object code reading                                   : Ok
  25: Sample parsing                                        : Ok
  26: Use a dummy software event to keep tracking           : Ok
  27: Parse with no sample_id_all bit set                   : Ok
  28: Filter hist entries                                   : Ok
  29: Lookup mmap thread                                    : Ok
  30: Share thread mg                                       : Ok
  31: Sort output of hist entries                           : Ok
  32: Cumulate child hist entries                           : Ok
  33: Track with sched_switch                               : Ok
  34: Filter fds with revents mask in a fdarray             : Ok
  35: Add fd to a fdarray, making it autogrow               : Ok
  36: kmod_path__parse                                      : Ok
  37: Thread map                                            : Ok
  38: LLVM search and compile                               :
  38.1: Basic BPF llvm compile                              : Ok
  38.2: kbuild searching                                    : Ok
  38.3: Compile source for BPF prologue generation          : Ok
  38.4: Compile source for BPF relocation                   : Ok
  39: Session topology                                      : Ok
  40: BPF filter                                            :
  40.1: Basic BPF filtering                                 : Ok
  40.2: BPF pinning                                         : Ok
  40.3: BPF prologue generation                             : Ok
  40.4: BPF relocation checker                              : Ok
  41: Synthesize thread map                                 : Ok
  42: Remove thread map                                     : Ok
  43: Synthesize cpu map                                    : Ok
  44: Synthesize stat config                                : Ok
  45: Synthesize stat                                       : Ok
  46: Synthesize stat round                                 : Ok
  47: Synthesize attr update                                : Ok
  48: Event times                                           : Ok
  49: Read backward ring buffer                             : Ok
  50: Print cpu map                                         : Ok
  51: Probe SDT events                                      : Ok
  52: is_printable_array                                    : Ok
  53: Print bitmap                                          : Ok
  54: perf hooks                                            : Ok
  55: builtin clang support                                 : Skip (not compiled in)
  56: unit_number__scnprintf                                : Ok
  57: mem2node                                              : Ok
  58: x86 rdpmc                                             : Ok
  59: Convert perf time to TSC                              : Ok
  60: DWARF unwind                                          : Ok
  61: x86 instruction decoder - new instructions            : Ok
  62: Use vfs_getname probe to get syscall args filenames   : Ok
  63: Check open filename arg using perf trace + vfs_getname: Ok
  64: probe libc's inet_pton & backtrace it with ping       : Ok
  65: 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_with_babeltrace_O: make LIBBABELTRACE=1
                 make_static_O: make LDFLAGS=-static
                   make_tags_O: make tags
                make_install_O: make install
                    make_doc_O: make doc
              make_no_libelf_O: make NO_LIBELF=1
              make_no_libbpf_O: make NO_LIBBPF=1
            make_no_demangle_O: make NO_DEMANGLE=1
              make_clean_all_O: make clean all
               make_no_slang_O: make NO_SLANG=1
             make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1
         make_with_clangllvm_O: make LIBCLANGLLVM=1
                make_no_newt_O: make NO_NEWT=1
             make_no_libnuma_O: make NO_LIBNUMA=1
  make_no_libdw_dwarf_unwind_O: make NO_LIBDW_DWARF_UNWIND=1
           make_no_libbionic_O: make NO_LIBBIONIC=1
             make_no_libperl_O: make NO_LIBPERL=1
           make_no_libpython_O: make NO_LIBPYTHON=1
           make_no_libunwind_O: make NO_LIBUNWIND=1
           make_no_backtrace_O: make NO_BACKTRACE=1
   make_install_prefix_slash_O: make install prefix=/tmp/krava/
                  make_debug_O: make DEBUG=1
             make_util_map_o_O: make util/map.o
                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_install_prefix_O: make install prefix=/tmp/krava
                   make_pure_O: make
                 make_perf_o_O: make perf.o
                   make_help_O: make help
                make_no_gtk2_O: make NO_GTK2=1
            make_no_libaudit_O: make NO_LIBAUDIT=1
       make_util_pmu_bison_o_O: make util/pmu-bison.o
                  make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1
            make_install_bin_O: make install-bin
            make_no_auxtrace_O: make NO_AUXTRACE=1
  OK
  make: Leaving directory '/home/acme/git/perf/tools/perf'
  $ 

^ permalink raw reply	[flat|nested] 70+ messages in thread

* [GIT PULL 00/11] perf/core improvements and fixes
@ 2018-05-16 14:48 ` Arnaldo Carvalho de Melo
  0 siblings, 0 replies; 70+ messages in thread
From: Arnaldo Carvalho de Melo @ 2018-05-16 14:48 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Clark Williams, linux-kernel, linux-perf-users,
	Arnaldo Carvalho de Melo, Adrian Hunter, Agustin Vega-Frias,
	Alexander Shishkin, Andi Kleen, Andy Lutomirski, Daniel Borkmann,
	Dave Hansen, David Ahern, Ganapatrao Kulkarni, H . Peter Anvin,
	Jin Yao, Jiri Olsa, Joerg Roedel, Kan Liang, Masami Hiramatsu,
	Namhyung Kim

Hi Ingo,

	Please consider pulling, more to come as I go thru Adrian's x86
PTI series and the C++ support improvements to 'perf probe', from
Holger,

Best Regards,

- Arnaldo

Test results at the end of this message, as usual.
  
The following changes since commit 291c161f6c65530092903fbea58eb07a62b220ba:

  Merge remote-tracking branch 'tip/perf/urgent' into perf/core (2018-05-15 10:30:17 -0300)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-4.18-20180516

for you to fetch changes up to 7a36a287de9fbb1ba906e70573d3f2315f7fd609:

  perf bpf: Fix NULL return handling in bpf__prepare_load() (2018-05-16 10:01:55 -0300)

----------------------------------------------------------------
perf/core improvements and fixes:

- Add '-e intel_pt//u' test to the 'parse-events' 'perf test' entry,
  to help avoiding regressions in the events parser such as one
  that caused a revert in v4.17-rc (Arnaldo Carvalho de Melo)

- Fix NULL return handling in bpf__prepare_load() (YueHaibing)

- Warn about 'perf buildid-cache --purge-all' failures (Ravi Bangoria)

- Add infrastructure to help in writing eBPF C programs to be used
  with '-e name.c' type events in tools such as 'record' and 'trace',
  with headers for common constructs and an examples directory that
  will get populated as we add more such helpers and the 'perf bpf'
  branch that Jiri Olsa has been working on (Arnaldo Carvalho de Melo)

- Handle uncore event aliases in small groups properly (Kan Liang)

- Use the "_stest" symbol to identify the kernel map when loading kcore (Adrian Hunter)

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

----------------------------------------------------------------
Adrian Hunter (1):
      perf tools: Use the "_stest" symbol to identify the kernel map when loading kcore

Arnaldo Carvalho de Melo (7):
      perf tests parse-events: Add intel_pt parse test
      perf llvm-utils: Add bpf include path to clang command line
      perf bpf: Add 'examples' directories
      perf bpf: Add bpf.h to be used in eBPF proggies
      perf bpf: Add kprobe example to catch 5s naps
      perf bpf: Add license(NAME) helper
      perf bpf: Add probe() helper to reduce kprobes boilerplate

Kan Liang (1):
      perf parse-events: Handle uncore event aliases in small groups properly

Ravi Bangoria (1):
      perf buildid-cache: Warn --purge-all failures

YueHaibing (1):
      perf bpf: Fix NULL return handling in bpf__prepare_load()

 tools/perf/Makefile.config         |  14 ++++
 tools/perf/Makefile.perf           |   8 +++
 tools/perf/builtin-buildid-cache.c |   8 ++-
 tools/perf/examples/bpf/5sec.c     |  49 ++++++++++++++
 tools/perf/examples/bpf/empty.c    |   3 +
 tools/perf/include/bpf/bpf.h       |  13 ++++
 tools/perf/tests/parse-events.c    |  13 ++++
 tools/perf/util/Build              |   2 +
 tools/perf/util/bpf-loader.c       |   6 +-
 tools/perf/util/evsel.h            |   1 +
 tools/perf/util/llvm-utils.c       |  19 ++++--
 tools/perf/util/parse-events.c     | 130 ++++++++++++++++++++++++++++++++++++-
 tools/perf/util/parse-events.h     |   7 +-
 tools/perf/util/parse-events.y     |   8 +--
 tools/perf/util/symbol.c           |  16 ++---
 15 files changed, 270 insertions(+), 27 deletions(-)
 create mode 100644 tools/perf/examples/bpf/5sec.c
 create mode 100644 tools/perf/examples/bpf/empty.c
 create mode 100644 tools/perf/include/bpf/bpf.h

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, and building with LIBCLANGLLVM=1
(built-in clang) with gcc and clang when clang and its devel libraries
are installed.

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:3.7                    : Ok   gcc (Alpine 6.4.0) 6.4.0
   5 alpine:edge                   : Ok   gcc (Alpine 6.4.0) 6.4.0
   6 amazonlinux:1                 : Ok   gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28)
   7 amazonlinux:2                 : Ok   gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5)
   8 android-ndk:r12b-arm          : Ok   arm-linux-androideabi-gcc (GCC) 4.9.x 20150123 (prerelease)
   9 android-ndk:r15c-arm          : Ok   arm-linux-androideabi-gcc (GCC) 4.9.x 20150123 (prerelease)
  10 centos:5                      : Ok   gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-55)
  11 centos:6                      : Ok   gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18)
  12 centos:7                      : Ok   gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16)
  13 debian:7                      : Ok   gcc (Debian 4.7.2-5) 4.7.2
  14 debian:8                      : Ok   gcc (Debian 4.9.2-10+deb8u1) 4.9.2
  15 debian:9                      : Ok   gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516
  16 debian:experimental           : Ok   gcc (Debian 7.3.0-18) 7.3.0
  17 debian:experimental-x-arm64   : Ok   aarch64-linux-gnu-gcc (Debian 7.3.0-18) 7.3.0
  18 debian:experimental-x-mips    : Ok   mips-linux-gnu-gcc (Debian 7.3.0-18) 7.3.0
  19 debian:experimental-x-mips64  : Ok   mips64-linux-gnuabi64-gcc (Debian 7.3.0-18) 7.3.0
  20 debian:experimental-x-mipsel  : Ok   mipsel-linux-gnu-gcc (Debian 7.3.0-18) 7.3.0
  21 fedora:20                     : Ok   gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-7)
  22 fedora:21                     : Ok   gcc (GCC) 4.9.2 20150212 (Red Hat 4.9.2-6)
  23 fedora:22                     : Ok   gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6)
  24 fedora:23                     : Ok   gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6)
  25 fedora:24                     : Ok   gcc (GCC) 6.3.1 20161221 (Red Hat 6.3.1-1)
  26 fedora:24-x-ARC-uClibc        : Ok   arc-linux-gcc (ARCompact ISA Linux uClibc toolchain 2017.09-rc2) 7.1.1 20170710
  27 fedora:25                     : Ok   gcc (GCC) 6.4.1 20170727 (Red Hat 6.4.1-1)
  28 fedora:26                     : Ok   gcc (GCC) 7.3.1 20180130 (Red Hat 7.3.1-2)
  29 fedora:27                     : Ok   gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5)
  30 fedora:28                     : Ok   gcc (GCC) 8.1.1 20180502 (Red Hat 8.1.1-1)
  31 fedora:rawhide                : Ok   gcc (GCC) 8.0.1 20180324 (Red Hat 8.0.1-0.20)
  32 gentoo-stage3-amd64:latest    : Ok   gcc (Gentoo 6.4.0-r1 p1.3) 6.4.0
  33 mageia:5                      : Ok   gcc (GCC) 4.9.2
  34 mageia:6                      : Ok   gcc (Mageia 5.5.0-1.mga6) 5.5.0
  35 opensuse:42.1                 : Ok   gcc (SUSE Linux) 4.8.5
  36 opensuse:42.2                 : Ok   gcc (SUSE Linux) 4.8.5
  37 opensuse:42.3                 : Ok   gcc (SUSE Linux) 4.8.5
  38 opensuse:tumbleweed           : Ok   gcc (SUSE Linux) 7.3.1 20180323 [gcc-7-branch revision 258812]
  39 oraclelinux:6                 : Ok   gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18.0.7)
  40 oraclelinux:7                 : Ok   gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28.0.1)
  41 ubuntu:12.04.5                : Ok   gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
  42 ubuntu:14.04.4                : Ok   gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4
  43 ubuntu:14.04.4-x-linaro-arm64 : Ok   aarch64-linux-gnu-gcc (Linaro GCC 5.5-2017.10) 5.5.0
  44 ubuntu:16.04                  : Ok   gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
  45 ubuntu:16.04-x-arm            : Ok   arm-linux-gnueabihf-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
  46 ubuntu:16.04-x-arm64          : Ok   aarch64-linux-gnu-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
  47 ubuntu:16.04-x-powerpc        : Ok   powerpc-linux-gnu-gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
  48 ubuntu:16.04-x-powerpc64      : Ok   powerpc64-linux-gnu-gcc (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
  49 ubuntu:16.04-x-powerpc64el    : Ok   powerpc64le-linux-gnu-gcc (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
  50 ubuntu:16.04-x-s390           : Ok   s390x-linux-gnu-gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
  51 ubuntu:16.10                  : Ok   gcc (Ubuntu 6.2.0-5ubuntu12) 6.2.0 20161005
  52 ubuntu:17.04                  : Ok   gcc (Ubuntu 6.3.0-12ubuntu2) 6.3.0 20170406
  53 ubuntu:17.10                  : Ok   gcc (Ubuntu 7.2.0-8ubuntu3.2) 7.2.0
  54 ubuntu:18.04                  : Ok   gcc (Ubuntu 7.3.0-16ubuntu3) 7.3.0
  #

  # uname -a
  Linux jouet 4.17.0-rc5 #21 SMP Mon May 14 15:35:35 -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: Breakpoint accounting                                 : Ok
  22: Number of exit events of a simple workload            : Ok
  23: Software clock events period values                   : Ok
  24: Object code reading                                   : Ok
  25: Sample parsing                                        : Ok
  26: Use a dummy software event to keep tracking           : Ok
  27: Parse with no sample_id_all bit set                   : Ok
  28: Filter hist entries                                   : Ok
  29: Lookup mmap thread                                    : Ok
  30: Share thread mg                                       : Ok
  31: Sort output of hist entries                           : Ok
  32: Cumulate child hist entries                           : Ok
  33: Track with sched_switch                               : Ok
  34: Filter fds with revents mask in a fdarray             : Ok
  35: Add fd to a fdarray, making it autogrow               : Ok
  36: kmod_path__parse                                      : Ok
  37: Thread map                                            : Ok
  38: LLVM search and compile                               :
  38.1: Basic BPF llvm compile                              : Ok
  38.2: kbuild searching                                    : Ok
  38.3: Compile source for BPF prologue generation          : Ok
  38.4: Compile source for BPF relocation                   : Ok
  39: Session topology                                      : Ok
  40: BPF filter                                            :
  40.1: Basic BPF filtering                                 : Ok
  40.2: BPF pinning                                         : Ok
  40.3: BPF prologue generation                             : Ok
  40.4: BPF relocation checker                              : Ok
  41: Synthesize thread map                                 : Ok
  42: Remove thread map                                     : Ok
  43: Synthesize cpu map                                    : Ok
  44: Synthesize stat config                                : Ok
  45: Synthesize stat                                       : Ok
  46: Synthesize stat round                                 : Ok
  47: Synthesize attr update                                : Ok
  48: Event times                                           : Ok
  49: Read backward ring buffer                             : Ok
  50: Print cpu map                                         : Ok
  51: Probe SDT events                                      : Ok
  52: is_printable_array                                    : Ok
  53: Print bitmap                                          : Ok
  54: perf hooks                                            : Ok
  55: builtin clang support                                 : Skip (not compiled in)
  56: unit_number__scnprintf                                : Ok
  57: mem2node                                              : Ok
  58: x86 rdpmc                                             : Ok
  59: Convert perf time to TSC                              : Ok
  60: DWARF unwind                                          : Ok
  61: x86 instruction decoder - new instructions            : Ok
  62: Use vfs_getname probe to get syscall args filenames   : Ok
  63: Check open filename arg using perf trace + vfs_getname: Ok
  64: probe libc's inet_pton & backtrace it with ping       : Ok
  65: 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_with_babeltrace_O: make LIBBABELTRACE=1
                 make_static_O: make LDFLAGS=-static
                   make_tags_O: make tags
                make_install_O: make install
                    make_doc_O: make doc
              make_no_libelf_O: make NO_LIBELF=1
              make_no_libbpf_O: make NO_LIBBPF=1
            make_no_demangle_O: make NO_DEMANGLE=1
              make_clean_all_O: make clean all
               make_no_slang_O: make NO_SLANG=1
             make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1
         make_with_clangllvm_O: make LIBCLANGLLVM=1
                make_no_newt_O: make NO_NEWT=1
             make_no_libnuma_O: make NO_LIBNUMA=1
  make_no_libdw_dwarf_unwind_O: make NO_LIBDW_DWARF_UNWIND=1
           make_no_libbionic_O: make NO_LIBBIONIC=1
             make_no_libperl_O: make NO_LIBPERL=1
           make_no_libpython_O: make NO_LIBPYTHON=1
           make_no_libunwind_O: make NO_LIBUNWIND=1
           make_no_backtrace_O: make NO_BACKTRACE=1
   make_install_prefix_slash_O: make install prefix=/tmp/krava/
                  make_debug_O: make DEBUG=1
             make_util_map_o_O: make util/map.o
                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_install_prefix_O: make install prefix=/tmp/krava
                   make_pure_O: make
                 make_perf_o_O: make perf.o
                   make_help_O: make help
                make_no_gtk2_O: make NO_GTK2=1
            make_no_libaudit_O: make NO_LIBAUDIT=1
       make_util_pmu_bison_o_O: make util/pmu-bison.o
                  make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1
            make_install_bin_O: make install-bin
            make_no_auxtrace_O: make NO_AUXTRACE=1
  OK
  make: Leaving directory '/home/acme/git/perf/tools/perf'
  $ 

^ permalink raw reply	[flat|nested] 70+ messages in thread

* [GIT PULL 00/11] perf/core improvements and fixes
@ 2017-11-24 15:02 Arnaldo Carvalho de Melo
  0 siblings, 0 replies; 70+ messages in thread
From: Arnaldo Carvalho de Melo @ 2017-11-24 15:02 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, linux-perf-users, Arnaldo Carvalho de Melo,
	Adrian Hunter, Andi Kleen, Balamuruhan S, David Ahern,
	Hansuk Hong, Hendrik Brueckner, Jiri Olsa, Martin Schwidefsky,
	Namhyung Kim, Naveen N . Rao, Satheesh Rajendran,
	Srikar Dronamraju, Thomas Gleixner, Thomas Richter, Wang Nan,
	Arnaldo Carvalho de Melo

Hi Ingo,

	There are some 'perf test' and container failures, but those
don't seem to have been introduced by patches in this series and are
being investigated.

	Please consider pulling,

- Arnaldo

Test results at the end of this message, as usual.

The following changes since commit f6751f178eeaf3da8c156d2a2fd7a0feccfab5ae:

  tools/headers: Synchronize kernel x86 UAPI headers (2017-11-18 09:00:46 +0100)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-4.15-20171124

for you to fetch changes up to 92f4ad912df4ac63f53ed0e95a7e0f51ef6eddfe:

  perf intel-pt: Bring instruction decoder files into line with the kernel (2017-11-23 15:40:48 -0300)

----------------------------------------------------------------
perf/core improvements and fixes:

- Improve build messages for Intel PT related files that differ
  from the kernel (Adrian Hunter)

- Bring instruction decoder files into line with the kernel (Adrian Hunter)

- Allow computing 'perf stat' style metrics in 'perf script' (Andi Kleen)

- Fix -D output for user metadata events (Arnaldo Carvalho de Melo)

- Add perf tools tip for using 'perf buildid-cache' to add the Node.js
  USDT probes and have them usable via 'perf probe' (Hansuk Hong)

- Follow the upstream kernel UAPI header version 100% (Ingo Molnar)

- Fixup discontiguous/sparse numa nodes in 'perf bench numa' (Satheesh Rajendran)

- Fix a 'perf test' case and disable one, both for s390x (Thomas Richter)

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

----------------------------------------------------------------
Adrian Hunter (2):
      perf intel-pt: Improve build messages for files that differ from the kernel
      perf intel-pt: Bring instruction decoder files into line with the kernel

Andi Kleen (3):
      perf record: Synthesize unit/scale/... in event update
      perf record: Synthesize thread map and cpu map
      perf script: Allow computing 'perf stat' style metrics

Arnaldo Carvalho de Melo (1):
      perf report: Fix -D output for user metadata events

Hansuk Hong (1):
      perf buildid-cache: Document for Node.js USDT

Ingo Molnar (1):
      tools headers: Follow the upstream UAPI header version 100% differ from the kernel

Satheesh Rajendran (1):
      perf bench numa: Fixup discontiguous/sparse numa nodes

Thomas Richter (2):
      perf test: Disable test cases 19 and 20 on s390x
      perf test: Fix test 21 for s390x

 tools/perf/Documentation/perf-script.txt | 10 +++-
 tools/perf/Documentation/tips.txt        |  1 +
 tools/perf/bench/numa.c                  | 56 ++++++++++++++++--
 tools/perf/builtin-record.c              | 24 ++++++++
 tools/perf/builtin-script.c              | 97 +++++++++++++++++++++++++++++++-
 tools/perf/builtin-stat.c                | 62 ++------------------
 tools/perf/check-headers.sh              |  1 -
 tools/perf/tests/bp_signal.c             |  2 +-
 tools/perf/tests/task-exit.c             |  4 ++
 tools/perf/util/header.c                 | 68 ++++++++++++++++++++++
 tools/perf/util/header.h                 |  5 ++
 tools/perf/util/intel-pt-decoder/Build   | 24 +++++---
 tools/perf/util/intel-pt-decoder/inat.h  | 10 ++++
 tools/perf/util/metricgroup.c            |  4 ++
 tools/perf/util/session.c                |  3 +-
 15 files changed, 293 insertions(+), 78 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 android-ndk:r12b-arm: Ok          arm-linux-androideabi-gcc (GCC) 4.9.x 20150123 (prerelease)
   6 android-ndk:r15c-arm: Ok          arm-linux-androideabi-gcc (GCC) 4.9.x 20150123 (prerelease)
   7 centos:5: Ok                      gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-55)
   8 centos:6: Ok                      gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18)
   9 centos:7: Ok                      gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16)
  10 debian:7: Ok                      gcc (Debian 4.7.2-5) 4.7.2
  11 debian:8: Ok                      gcc (Debian 4.9.2-10) 4.9.2
  12 debian:9: Ok                      gcc (Debian 6.3.0-18) 6.3.0 20170516
  13 debian:experimental: Ok           gcc (Debian 7.2.0-16) 7.2.0
  14 debian:experimental-x-arm64: Ok   aarch64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
  15 debian:experimental-x-mips: Ok    mips-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
  16 debian:experimental-x-mips64: Ok  mips64-linux-gnuabi64-gcc (Debian 7.2.0-11) 7.2.0
  17 fedora:20: Ok                     gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-7)
  18 fedora:21: Ok                     gcc (GCC) 4.9.2 20150212 (Red Hat 4.9.2-6)
  19 fedora:22: Ok                     gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6)
  20 fedora:23: Ok                     gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6)
  21 fedora:24: Ok                     gcc (GCC) 6.3.1 20161221 (Red Hat 6.3.1-1)
  22 fedora:24-x-ARC-uClibc: Ok        arc-linux-gcc (ARCompact ISA Linux uClibc toolchain 2017.09-rc2) 7.1.1 20170710
  23 fedora:25: Ok                     gcc (GCC) 6.4.1 20170727 (Red Hat 6.4.1-1)
  24 fedora:26: Ok                     gcc (GCC) 7.2.1 20170915 (Red Hat 7.2.1-2)
  25 fedora:27: FAIL                   gcc (GCC) 7.2.1 20170915 (Red Hat 7.2.1-2)

	perl/python hardened build CFLAGS mismatch, Jiri working on a fix.

  26 fedora:rawhide: Ok                gcc (GCC) 7.2.1 20170829 (Red Hat 7.2.1-1)
  27 gentoo-stage3-amd64:latest: Ok    gcc (Gentoo 5.4.0-r3 p1.7, pie-0.6.5) 5.4.0
  28 mageia:5: Ok                      gcc (GCC) 4.9.2
  29 mageia:6: Ok                      gcc (Mageia 5.4.0-5.mga6) 5.4.0
  30 opensuse:42.1: Ok                 gcc (SUSE Linux) 4.8.5
  31 opensuse:42.2: Ok                 gcc (SUSE Linux) 4.8.5
  32 opensuse:42.3: Ok                 gcc (SUSE Linux) 4.8.5
  33  opensuse:tumbleweed: Ok          gcc (SUSE Linux) 7.2.1 20170901 [gcc-7-branch revision 251580]
  34 oraclelinux:6: Ok                 gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18)
  35 oraclelinux:7: Ok                 gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16)
  36 ubuntu:12.04.5: Ok                gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
  37 ubuntu:14.04.4: Ok                gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4
  38 ubuntu:14.04.4-x-linaro-arm64: Ok aarch64-linux-gnu-gcc
  39 ubuntu:15.04: Ok                  gcc (Ubuntu 4.9.2-10ubuntu13) 4.9.2
  40 ubuntu:16.04: Ok                  gcc (Ubuntu 5.4.0-6ubuntu1~16.04.5) 5.4.0 20160609
  41 ubuntu:16.04-x-arm: Ok            arm-linux-gnueabihf-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
  42 ubuntu:16.04-x-arm64: Ok          aarch64-linux-gnu-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
  43 ubuntu:16.04-x-powerpc: Ok        powerpc-linux-gnu-gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
  44 ubuntu:16.04-x-powerpc64: Ok      powerpc64-linux-gnu-gcc (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.1) 5.4.0 20160609
  45 ubuntu:16.04-x-powerpc64el: Ok    powerpc64le-linux-gnu-gcc (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
  46 ubuntu:16.04-x-s390: Ok           s390x-linux-gnu-gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
  47 ubuntu:16.10: Ok                  gcc (Ubuntu 6.2.0-5ubuntu12) 6.2.0 20161005
  48 ubuntu:17.04: Ok                  gcc (Ubuntu 6.3.0-12ubuntu2) 6.3.0 20170406
  49 ubuntu:17.10: Ok                  gcc (Ubuntu 7.2.0-8ubuntu3) 7.2.0
  # 

  The BPF and LLVM test failures are being investigated, perhaps related to updating
  to clang 6.

  # uname -a
  Linux jouet 4.14.0+ #2 SMP Thu Nov 16 12:09:19 -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                                    : FAILED!
  37.3: Compile source for BPF prologue generation          : Skip
  37.4: Compile source for BPF relocation                   : Skip
  38: Session topology                                      : Ok
  39: BPF filter                                            :
  39.1: Basic BPF filtering                                 : FAILED!
  39.2: BPF pinning                                         : Skip
  39.3: BPF prologue generation                             : Skip
  39.4: BPF relocation checker                              : Skip
  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: 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_install_prefix_O: make install prefix=/tmp/krava
           make_no_libbionic_O: make NO_LIBBIONIC=1
                   make_tags_O: make tags
                make_no_newt_O: make NO_NEWT=1
           make_no_libunwind_O: make NO_LIBUNWIND=1
           make_no_backtrace_O: make NO_BACKTRACE=1
                make_no_gtk2_O: make NO_GTK2=1
                   make_pure_O: make
             make_util_map_o_O: make util/map.o
                make_install_O: make install
            make_install_bin_O: make install-bin
             make_no_libnuma_O: make NO_LIBNUMA=1
            make_no_demangle_O: make NO_DEMANGLE=1
                 make_perf_o_O: make perf.o
                   make_help_O: make help
              make_no_libelf_O: make NO_LIBELF=1
              make_no_libbpf_O: make NO_LIBBPF=1
   make_install_prefix_slash_O: make install prefix=/tmp/krava/
           make_no_libpython_O: make NO_LIBPYTHON=1
            make_no_libaudit_O: make NO_LIBAUDIT=1
  make_no_libdw_dwarf_unwind_O: make NO_LIBDW_DWARF_UNWIND=1
       make_util_pmu_bison_o_O: make util/pmu-bison.o
              make_clean_all_O: make clean all
         make_with_clangllvm_O: make LIBCLANGLLVM=1
            make_no_auxtrace_O: make NO_AUXTRACE=1
                    make_doc_O: make doc
             make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1
        make_with_babeltrace_O: make LIBBABELTRACE=1
                  make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1
               make_no_slang_O: make NO_SLANG=1
                  make_debug_O: make DEBUG=1
             make_no_libperl_O: make NO_LIBPERL=1
                 make_static_O: make LDFLAGS=-static
                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
  OK
  make: Leaving directory '/home/acme/git/linux/tools/perf'
  $

^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [GIT PULL 00/11] perf/core improvements and fixes
  2017-03-21  1:16 ` Arnaldo Carvalho de Melo
@ 2017-03-21  6:43   ` Ingo Molnar
  -1 siblings, 0 replies; 70+ messages in thread
From: Ingo Molnar @ 2017-03-21  6:43 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Adrian Hunter, Alexander Shishkin,
	Alexander Yarygin, Andi Kleen, Changbin Du, Clark Williams,
	David Ahern, Hemant Kumar, Jiri Olsa, Li Zhong, Marc Zyngier,
	Masami Hiramatsu, Michael Ellerman, Namhyung Kim, Naveen N . Rao,
	Paul Mackerras, Peter Zijlstra, Ravi Bangoria, Scott Wood,
	Srikar Dronamraju, Stephane Eranian, Vijaya Kumar K,
	Vince Weaver, Wang Nan, Yunlong Song, linux-perf-users,
	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 61f63e383784bd0ab6529cfc95ddc59c713afcc9:
> 
>   Merge tag 'perf-core-for-mingo-4.12-20170316' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2017-03-16 17:29:23 +0100)
> 
> are available in the git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-4.12-20170320
> 
> for you to fetch changes up to affa6c169bae8dc9cb1a2d070c7cd2fe1939c5b8:
> 
>   tools headers: Sync {tools/,}arch/powerpc/include/uapi/asm/kvm.h (2017-03-20 15:02:29 -0300)
> 
> ----------------------------------------------------------------
> perf/core improvements and fixes:
> 
> Fixes:
> 
> - Fix concat_probe_trace_events() in 'perf probe', it should dereference a
>   pointer, not test its value (Ravi Bangoria)
> 
> User visible:
> 
> - Handle partial AUX records, checking if 'kvm_intel.ko' is loaded and
>   if its 'vmm_exclusive' parameter is set to 0, suggesting tweaking
>   it to reduce gaps (Alexander Shishkin)
> 
> Infrastructure:
> 
> - Sync the kvm.h, cpufeatures.h and perf_event.h tools/ headers copies
>   with the kernel (Arnaldo Carvalho de Melo, Alexander Shishkin)
> 
> - 'perf lock' subcommands should include common options, using
>   OPT_PARENT() (Changbin Du)
> 
> - Ditto for 'perf timechart' (Arnaldo Carvalho de Melo)
> 
> Documentation:
> 
>   Correct 'perf stat --no-aggr' description (Ravi Bangoria)
> 
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> ----------------------------------------------------------------
> Alexander Shishkin (3):
>       tools lib api fs: Introduce sysfs__read_bool
>       tools include: Sync {,tools/}include/uapi/linux/perf_event.h
>       perf tools: Handle partial AUX records and print a warning
> 
> Arnaldo Carvalho de Melo (5):
>       perf lock: Make 'f' part of the common 'lock_options'
>       perf timechart: Use OPT_PARENT for common options
>       tools headers: Sync {tools/,}arch/x86/include/asm/cpufeatures.h
>       tools headers: Sync {tools/,}arch/arm{64}/include/uapi/asm/kvm.h
>       tools headers: Sync {tools/,}arch/powerpc/include/uapi/asm/kvm.h
> 
> Changbin Du (1):
>       perf lock: Subcommands should include common options
> 
> Ravi Bangoria (2):
>       perf stat: Correct --no-aggr description
>       perf probe: Fix concat_probe_trace_events
> 
>  tools/arch/arm/include/uapi/asm/kvm.h     | 13 +++++++++++++
>  tools/arch/arm64/include/uapi/asm/kvm.h   | 13 +++++++++++++
>  tools/arch/powerpc/include/uapi/asm/kvm.h | 22 ++++++++++++++++++++++
>  tools/arch/x86/include/asm/cpufeatures.h  |  3 ++-
>  tools/include/uapi/linux/perf_event.h     |  1 +
>  tools/lib/api/fs/fs.c                     | 29 +++++++++++++++++++++++++++++
>  tools/lib/api/fs/fs.h                     |  1 +
>  tools/perf/Documentation/perf-stat.txt    |  3 +--
>  tools/perf/builtin-lock.c                 | 22 ++++++++++++----------
>  tools/perf/builtin-timechart.c            | 16 +++++++---------
>  tools/perf/util/event.c                   |  5 +++--
>  tools/perf/util/event.h                   |  1 +
>  tools/perf/util/probe-event.c             |  2 +-
>  tools/perf/util/session.c                 | 27 ++++++++++++++++++++++++---
>  14 files changed, 130 insertions(+), 28 deletions(-)

Pulled, thanks a lot Arnaldo!

	Ingo

^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [GIT PULL 00/11] perf/core improvements and fixes
@ 2017-03-21  6:43   ` Ingo Molnar
  0 siblings, 0 replies; 70+ messages in thread
From: Ingo Molnar @ 2017-03-21  6:43 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Adrian Hunter, Alexander Shishkin,
	Alexander Yarygin, Andi Kleen, Changbin Du, Clark Williams,
	David Ahern, Hemant Kumar, Jiri Olsa, Li Zhong, Marc Zyngier,
	Masami Hiramatsu, Michael Ellerman, Namhyung Kim, Naveen N . Rao,
	Paul Mackerras, Peter Zijlstra, Ravi Bangoria


* 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 61f63e383784bd0ab6529cfc95ddc59c713afcc9:
> 
>   Merge tag 'perf-core-for-mingo-4.12-20170316' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2017-03-16 17:29:23 +0100)
> 
> are available in the git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-4.12-20170320
> 
> for you to fetch changes up to affa6c169bae8dc9cb1a2d070c7cd2fe1939c5b8:
> 
>   tools headers: Sync {tools/,}arch/powerpc/include/uapi/asm/kvm.h (2017-03-20 15:02:29 -0300)
> 
> ----------------------------------------------------------------
> perf/core improvements and fixes:
> 
> Fixes:
> 
> - Fix concat_probe_trace_events() in 'perf probe', it should dereference a
>   pointer, not test its value (Ravi Bangoria)
> 
> User visible:
> 
> - Handle partial AUX records, checking if 'kvm_intel.ko' is loaded and
>   if its 'vmm_exclusive' parameter is set to 0, suggesting tweaking
>   it to reduce gaps (Alexander Shishkin)
> 
> Infrastructure:
> 
> - Sync the kvm.h, cpufeatures.h and perf_event.h tools/ headers copies
>   with the kernel (Arnaldo Carvalho de Melo, Alexander Shishkin)
> 
> - 'perf lock' subcommands should include common options, using
>   OPT_PARENT() (Changbin Du)
> 
> - Ditto for 'perf timechart' (Arnaldo Carvalho de Melo)
> 
> Documentation:
> 
>   Correct 'perf stat --no-aggr' description (Ravi Bangoria)
> 
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> ----------------------------------------------------------------
> Alexander Shishkin (3):
>       tools lib api fs: Introduce sysfs__read_bool
>       tools include: Sync {,tools/}include/uapi/linux/perf_event.h
>       perf tools: Handle partial AUX records and print a warning
> 
> Arnaldo Carvalho de Melo (5):
>       perf lock: Make 'f' part of the common 'lock_options'
>       perf timechart: Use OPT_PARENT for common options
>       tools headers: Sync {tools/,}arch/x86/include/asm/cpufeatures.h
>       tools headers: Sync {tools/,}arch/arm{64}/include/uapi/asm/kvm.h
>       tools headers: Sync {tools/,}arch/powerpc/include/uapi/asm/kvm.h
> 
> Changbin Du (1):
>       perf lock: Subcommands should include common options
> 
> Ravi Bangoria (2):
>       perf stat: Correct --no-aggr description
>       perf probe: Fix concat_probe_trace_events
> 
>  tools/arch/arm/include/uapi/asm/kvm.h     | 13 +++++++++++++
>  tools/arch/arm64/include/uapi/asm/kvm.h   | 13 +++++++++++++
>  tools/arch/powerpc/include/uapi/asm/kvm.h | 22 ++++++++++++++++++++++
>  tools/arch/x86/include/asm/cpufeatures.h  |  3 ++-
>  tools/include/uapi/linux/perf_event.h     |  1 +
>  tools/lib/api/fs/fs.c                     | 29 +++++++++++++++++++++++++++++
>  tools/lib/api/fs/fs.h                     |  1 +
>  tools/perf/Documentation/perf-stat.txt    |  3 +--
>  tools/perf/builtin-lock.c                 | 22 ++++++++++++----------
>  tools/perf/builtin-timechart.c            | 16 +++++++---------
>  tools/perf/util/event.c                   |  5 +++--
>  tools/perf/util/event.h                   |  1 +
>  tools/perf/util/probe-event.c             |  2 +-
>  tools/perf/util/session.c                 | 27 ++++++++++++++++++++++++---
>  14 files changed, 130 insertions(+), 28 deletions(-)

Pulled, thanks a lot Arnaldo!

	Ingo

^ permalink raw reply	[flat|nested] 70+ messages in thread

* [GIT PULL 00/11] perf/core improvements and fixes
@ 2017-03-21  1:16 ` Arnaldo Carvalho de Melo
  0 siblings, 0 replies; 70+ messages in thread
From: Arnaldo Carvalho de Melo @ 2017-03-21  1:16 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
	Alexander Shishkin, Alexander Yarygin, Andi Kleen, Changbin Du,
	Clark Williams, David Ahern, Hemant Kumar, Jiri Olsa, Li Zhong,
	Marc Zyngier, Masami Hiramatsu, Michael Ellerman, Namhyung Kim,
	Naveen N . Rao, Paul Mackerras, Peter Zijlstra, Ravi Bangoria,
	Scott Wood, Srikar Dronamraju, Stephane Eranian, Vijaya Kumar K,
	Vince Weaver, Wang Nan, Yunlong Song, linux-perf-users,
	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 61f63e383784bd0ab6529cfc95ddc59c713afcc9:

  Merge tag 'perf-core-for-mingo-4.12-20170316' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2017-03-16 17:29:23 +0100)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-4.12-20170320

for you to fetch changes up to affa6c169bae8dc9cb1a2d070c7cd2fe1939c5b8:

  tools headers: Sync {tools/,}arch/powerpc/include/uapi/asm/kvm.h (2017-03-20 15:02:29 -0300)

----------------------------------------------------------------
perf/core improvements and fixes:

Fixes:

- Fix concat_probe_trace_events() in 'perf probe', it should dereference a
  pointer, not test its value (Ravi Bangoria)

User visible:

- Handle partial AUX records, checking if 'kvm_intel.ko' is loaded and
  if its 'vmm_exclusive' parameter is set to 0, suggesting tweaking
  it to reduce gaps (Alexander Shishkin)

Infrastructure:

- Sync the kvm.h, cpufeatures.h and perf_event.h tools/ headers copies
  with the kernel (Arnaldo Carvalho de Melo, Alexander Shishkin)

- 'perf lock' subcommands should include common options, using
  OPT_PARENT() (Changbin Du)

- Ditto for 'perf timechart' (Arnaldo Carvalho de Melo)

Documentation:

  Correct 'perf stat --no-aggr' description (Ravi Bangoria)

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

----------------------------------------------------------------
Alexander Shishkin (3):
      tools lib api fs: Introduce sysfs__read_bool
      tools include: Sync {,tools/}include/uapi/linux/perf_event.h
      perf tools: Handle partial AUX records and print a warning

Arnaldo Carvalho de Melo (5):
      perf lock: Make 'f' part of the common 'lock_options'
      perf timechart: Use OPT_PARENT for common options
      tools headers: Sync {tools/,}arch/x86/include/asm/cpufeatures.h
      tools headers: Sync {tools/,}arch/arm{64}/include/uapi/asm/kvm.h
      tools headers: Sync {tools/,}arch/powerpc/include/uapi/asm/kvm.h

Changbin Du (1):
      perf lock: Subcommands should include common options

Ravi Bangoria (2):
      perf stat: Correct --no-aggr description
      perf probe: Fix concat_probe_trace_events

 tools/arch/arm/include/uapi/asm/kvm.h     | 13 +++++++++++++
 tools/arch/arm64/include/uapi/asm/kvm.h   | 13 +++++++++++++
 tools/arch/powerpc/include/uapi/asm/kvm.h | 22 ++++++++++++++++++++++
 tools/arch/x86/include/asm/cpufeatures.h  |  3 ++-
 tools/include/uapi/linux/perf_event.h     |  1 +
 tools/lib/api/fs/fs.c                     | 29 +++++++++++++++++++++++++++++
 tools/lib/api/fs/fs.h                     |  1 +
 tools/perf/Documentation/perf-stat.txt    |  3 +--
 tools/perf/builtin-lock.c                 | 22 ++++++++++++----------
 tools/perf/builtin-timechart.c            | 16 +++++++---------
 tools/perf/util/event.c                   |  5 +++--
 tools/perf/util/event.h                   |  1 +
 tools/perf/util/probe-event.c             |  2 +-
 tools/perf/util/session.c                 | 27 ++++++++++++++++++++++++---
 14 files changed, 130 insertions(+), 28 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.

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:edge: Ok
   4 android-ndk:r12b-arm: Ok
   5 archlinux:latest: Ok
   6 centos:5: Ok
   7 centos:6: Ok
   8 centos:7: Ok
   9 debian:7: Ok
  10 debian:8: Ok
  11 debian:experimental: Ok
  12 debian:experimental-x-arm64: Ok
  13 debian:experimental-x-mips: Ok
  14 debian:experimental-x-mips64: Ok
  15 debian:experimental-x-mipsel: Ok
  16 fedora:20: Ok
  17 fedora:21: Ok
  18 fedora:22: Ok
  19 fedora:23: Ok
  20 fedora:24: Ok
  21 fedora:24-x-ARC-uClibc: Ok
  22 fedora:25: Ok
  23 fedora:rawhide: Ok
  24 mageia:5: Ok
  25 opensuse:13.2: Ok
  26 opensuse:42.1: Ok
  27 opensuse:tumbleweed: Ok
  28 ubuntu:12.04.5: Ok
  29 ubuntu:14.04.4: Ok
  30 ubuntu:14.04.4-x-linaro-arm64: Ok
  31 ubuntu:15.10: Ok
  32 ubuntu:16.04: Ok
  33 ubuntu:16.04-x-arm: Ok
  34 ubuntu:16.04-x-arm64: Ok
  35 ubuntu:16.04-x-powerpc: Ok
  36 ubuntu:16.04-x-powerpc64: Ok
  37 ubuntu:16.04-x-s390: Ok
  38 ubuntu:16.10: Ok
  39 ubuntu:17.04: Ok

  # uname -a
  Linux felicio.ghostprotocols.net 4.11.0-rc2+ #30 SMP Mon Mar 20 09:47:16 BRT 2017 x86_64 x86_64 x86_64 GNU/Linux
  # Includes peterz's fix that makes "55: Convert perf time to TSC" pass,
  # That fix should go via his tree.
  
  # 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: Parse event definition strings             : Ok
   6: PERF_RECORD_* events & perf_sample fields  : Ok
   7: Parse perf pmu format                      : Ok
   8: DSO data read                              : Ok
   9: DSO data cache                             : Ok
  10: DSO data reopen                            : Ok
  11: Roundtrip evsel->name                      : Ok
  12: Parse sched tracepoints fields             : Ok
  13: syscalls:sys_enter_openat event fields     : Ok
  14: Setup struct perf_event_attr               : Ok
  15: Match and link multiple hists              : Ok
  16: 'import perf' in python                    : Ok
  17: Breakpoint overflow signal handler         : Ok
  18: Breakpoint overflow sampling               : Ok
  19: Number of exit events of a simple workload : Ok
  20: Software clock events period values        : Ok
  21: Object code reading                        : Ok
  22: Sample parsing                             : Ok
  23: Use a dummy software event to keep tracking: Ok
  24: Parse with no sample_id_all bit set        : Ok
  25: Filter hist entries                        : Ok
  26: Lookup mmap thread                         : Ok
  27: Share thread mg                            : Ok
  28: Sort output of hist entries                : Ok
  29: Cumulate child hist entries                : Ok
  30: Track with sched_switch                    : Ok
  31: Filter fds with revents mask in a fdarray  : Ok
  32: Add fd to a fdarray, making it autogrow    : Ok
  33: kmod_path__parse                           : Ok
  34: Thread map                                 : Ok
  35: LLVM search and compile                    :
  35.1: Basic BPF llvm compile                    : Ok
  35.2: kbuild searching                          : Ok
  35.3: Compile source for BPF prologue generation: Ok
  35.4: Compile source for BPF relocation         : Ok
  36: Session topology                           : Ok
  37: BPF filter                                 :
  37.1: Basic BPF filtering                      : FAILED!
  37.2: BPF pinning                              : Skip
  37.3: BPF prologue generation                  : Skip
  37.4: BPF relocation checker                   : Skip
  38: Synthesize thread map                      : Ok
  39: Remove thread map                          : Ok
  40: Synthesize cpu map                         : Ok
  41: Synthesize stat config                     : Ok
  42: Synthesize stat                            : Ok
  43: Synthesize stat round                      : Ok
  44: Synthesize attr update                     : Ok
  45: Event times                                : Ok
  46: Read backward ring buffer                  : Ok
  47: Print cpu map                              : Ok
  48: Probe SDT events                           : Ok
  49: is_printable_array                         : Ok
  50: Print bitmap                               : Ok
  51: perf hooks                                 : Ok
  52: builtin clang support                      : Skip (not compiled in)
  53: unit_number__scnprintf                     : Ok
  54: x86 rdpmc                                  : Ok
  55: Convert perf time to TSC                   : Ok
  56: DWARF unwind                               : Ok
  57: x86 instruction decoder - new instructions : Ok
  58: Intel cqm nmi context read                 : Skip
  # 

  $ make -C tools/perf build-test
  make: Entering directory '/home/acme/git/linux/tools/perf'
  - tarpkg: ./tests/perf-targz-src-pkg .
                make_install_O: make install
                    make_doc_O: make doc
              make_no_libelf_O: make NO_LIBELF=1
            make_install_bin_O: make install-bin
             make_util_map_o_O: make util/map.o
  make_no_libdw_dwarf_unwind_O: make NO_LIBDW_DWARF_UNWIND=1
         make_with_clangllvm_O: make LIBCLANGLLVM=1
                 make_perf_o_O: make perf.o
            make_no_auxtrace_O: make NO_AUXTRACE=1
           make_no_libunwind_O: make NO_LIBUNWIND=1
                   make_pure_O: make
           make_no_libpython_O: make NO_LIBPYTHON=1
                  make_debug_O: make DEBUG=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_static_O: make LDFLAGS=-static
               make_no_slang_O: make NO_SLANG=1
                make_no_newt_O: make NO_NEWT=1
            make_no_demangle_O: make NO_DEMANGLE=1
             make_no_libperl_O: make NO_LIBPERL=1
              make_clean_all_O: make clean all
             make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1
       make_util_pmu_bison_o_O: make util/pmu-bison.o
                make_no_gtk2_O: make NO_GTK2=1
            make_no_libaudit_O: make NO_LIBAUDIT=1
                   make_tags_O: make tags
           make_no_backtrace_O: make NO_BACKTRACE=1
         make_install_prefix_O: make install prefix=/tmp/krava
                  make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1
              make_no_libbpf_O: make NO_LIBBPF=1
   make_install_prefix_slash_O: make install prefix=/tmp/krava/
                   make_help_O: make help
        make_with_babeltrace_O: make LIBBABELTRACE=1
             make_no_libnuma_O: make NO_LIBNUMA=1
           make_no_libbionic_O: make NO_LIBBIONIC=1
  OK
  make: Leaving directory '/home/acme/git/linux/tools/perf'
  $

^ permalink raw reply	[flat|nested] 70+ messages in thread

* [GIT PULL 00/11] perf/core improvements and fixes
@ 2017-03-21  1:16 ` Arnaldo Carvalho de Melo
  0 siblings, 0 replies; 70+ messages in thread
From: Arnaldo Carvalho de Melo @ 2017-03-21  1:16 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
	Alexander Shishkin, Alexander Yarygin, Andi Kleen, Changbin Du,
	Clark Williams, David Ahern, Hemant Kumar, Jiri Olsa, Li Zhong,
	Marc Zyngier, Masami Hiramatsu, Michael Ellerman, Namhyung Kim,
	Naveen N . Rao, Paul Mackerras, Peter Zijlstra

Hi Ingo,

	Please consider pulling,

- Arnaldo

Test results at the end of this message, as usual.

The following changes since commit 61f63e383784bd0ab6529cfc95ddc59c713afcc9:

  Merge tag 'perf-core-for-mingo-4.12-20170316' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2017-03-16 17:29:23 +0100)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-4.12-20170320

for you to fetch changes up to affa6c169bae8dc9cb1a2d070c7cd2fe1939c5b8:

  tools headers: Sync {tools/,}arch/powerpc/include/uapi/asm/kvm.h (2017-03-20 15:02:29 -0300)

----------------------------------------------------------------
perf/core improvements and fixes:

Fixes:

- Fix concat_probe_trace_events() in 'perf probe', it should dereference a
  pointer, not test its value (Ravi Bangoria)

User visible:

- Handle partial AUX records, checking if 'kvm_intel.ko' is loaded and
  if its 'vmm_exclusive' parameter is set to 0, suggesting tweaking
  it to reduce gaps (Alexander Shishkin)

Infrastructure:

- Sync the kvm.h, cpufeatures.h and perf_event.h tools/ headers copies
  with the kernel (Arnaldo Carvalho de Melo, Alexander Shishkin)

- 'perf lock' subcommands should include common options, using
  OPT_PARENT() (Changbin Du)

- Ditto for 'perf timechart' (Arnaldo Carvalho de Melo)

Documentation:

  Correct 'perf stat --no-aggr' description (Ravi Bangoria)

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

----------------------------------------------------------------
Alexander Shishkin (3):
      tools lib api fs: Introduce sysfs__read_bool
      tools include: Sync {,tools/}include/uapi/linux/perf_event.h
      perf tools: Handle partial AUX records and print a warning

Arnaldo Carvalho de Melo (5):
      perf lock: Make 'f' part of the common 'lock_options'
      perf timechart: Use OPT_PARENT for common options
      tools headers: Sync {tools/,}arch/x86/include/asm/cpufeatures.h
      tools headers: Sync {tools/,}arch/arm{64}/include/uapi/asm/kvm.h
      tools headers: Sync {tools/,}arch/powerpc/include/uapi/asm/kvm.h

Changbin Du (1):
      perf lock: Subcommands should include common options

Ravi Bangoria (2):
      perf stat: Correct --no-aggr description
      perf probe: Fix concat_probe_trace_events

 tools/arch/arm/include/uapi/asm/kvm.h     | 13 +++++++++++++
 tools/arch/arm64/include/uapi/asm/kvm.h   | 13 +++++++++++++
 tools/arch/powerpc/include/uapi/asm/kvm.h | 22 ++++++++++++++++++++++
 tools/arch/x86/include/asm/cpufeatures.h  |  3 ++-
 tools/include/uapi/linux/perf_event.h     |  1 +
 tools/lib/api/fs/fs.c                     | 29 +++++++++++++++++++++++++++++
 tools/lib/api/fs/fs.h                     |  1 +
 tools/perf/Documentation/perf-stat.txt    |  3 +--
 tools/perf/builtin-lock.c                 | 22 ++++++++++++----------
 tools/perf/builtin-timechart.c            | 16 +++++++---------
 tools/perf/util/event.c                   |  5 +++--
 tools/perf/util/event.h                   |  1 +
 tools/perf/util/probe-event.c             |  2 +-
 tools/perf/util/session.c                 | 27 ++++++++++++++++++++++++---
 14 files changed, 130 insertions(+), 28 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.

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:edge: Ok
   4 android-ndk:r12b-arm: Ok
   5 archlinux:latest: Ok
   6 centos:5: Ok
   7 centos:6: Ok
   8 centos:7: Ok
   9 debian:7: Ok
  10 debian:8: Ok
  11 debian:experimental: Ok
  12 debian:experimental-x-arm64: Ok
  13 debian:experimental-x-mips: Ok
  14 debian:experimental-x-mips64: Ok
  15 debian:experimental-x-mipsel: Ok
  16 fedora:20: Ok
  17 fedora:21: Ok
  18 fedora:22: Ok
  19 fedora:23: Ok
  20 fedora:24: Ok
  21 fedora:24-x-ARC-uClibc: Ok
  22 fedora:25: Ok
  23 fedora:rawhide: Ok
  24 mageia:5: Ok
  25 opensuse:13.2: Ok
  26 opensuse:42.1: Ok
  27 opensuse:tumbleweed: Ok
  28 ubuntu:12.04.5: Ok
  29 ubuntu:14.04.4: Ok
  30 ubuntu:14.04.4-x-linaro-arm64: Ok
  31 ubuntu:15.10: Ok
  32 ubuntu:16.04: Ok
  33 ubuntu:16.04-x-arm: Ok
  34 ubuntu:16.04-x-arm64: Ok
  35 ubuntu:16.04-x-powerpc: Ok
  36 ubuntu:16.04-x-powerpc64: Ok
  37 ubuntu:16.04-x-s390: Ok
  38 ubuntu:16.10: Ok
  39 ubuntu:17.04: Ok

  # uname -a
  Linux felicio.ghostprotocols.net 4.11.0-rc2+ #30 SMP Mon Mar 20 09:47:16 BRT 2017 x86_64 x86_64 x86_64 GNU/Linux
  # Includes peterz's fix that makes "55: Convert perf time to TSC" pass,
  # That fix should go via his tree.
  
  # 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: Parse event definition strings             : Ok
   6: PERF_RECORD_* events & perf_sample fields  : Ok
   7: Parse perf pmu format                      : Ok
   8: DSO data read                              : Ok
   9: DSO data cache                             : Ok
  10: DSO data reopen                            : Ok
  11: Roundtrip evsel->name                      : Ok
  12: Parse sched tracepoints fields             : Ok
  13: syscalls:sys_enter_openat event fields     : Ok
  14: Setup struct perf_event_attr               : Ok
  15: Match and link multiple hists              : Ok
  16: 'import perf' in python                    : Ok
  17: Breakpoint overflow signal handler         : Ok
  18: Breakpoint overflow sampling               : Ok
  19: Number of exit events of a simple workload : Ok
  20: Software clock events period values        : Ok
  21: Object code reading                        : Ok
  22: Sample parsing                             : Ok
  23: Use a dummy software event to keep tracking: Ok
  24: Parse with no sample_id_all bit set        : Ok
  25: Filter hist entries                        : Ok
  26: Lookup mmap thread                         : Ok
  27: Share thread mg                            : Ok
  28: Sort output of hist entries                : Ok
  29: Cumulate child hist entries                : Ok
  30: Track with sched_switch                    : Ok
  31: Filter fds with revents mask in a fdarray  : Ok
  32: Add fd to a fdarray, making it autogrow    : Ok
  33: kmod_path__parse                           : Ok
  34: Thread map                                 : Ok
  35: LLVM search and compile                    :
  35.1: Basic BPF llvm compile                    : Ok
  35.2: kbuild searching                          : Ok
  35.3: Compile source for BPF prologue generation: Ok
  35.4: Compile source for BPF relocation         : Ok
  36: Session topology                           : Ok
  37: BPF filter                                 :
  37.1: Basic BPF filtering                      : FAILED!
  37.2: BPF pinning                              : Skip
  37.3: BPF prologue generation                  : Skip
  37.4: BPF relocation checker                   : Skip
  38: Synthesize thread map                      : Ok
  39: Remove thread map                          : Ok
  40: Synthesize cpu map                         : Ok
  41: Synthesize stat config                     : Ok
  42: Synthesize stat                            : Ok
  43: Synthesize stat round                      : Ok
  44: Synthesize attr update                     : Ok
  45: Event times                                : Ok
  46: Read backward ring buffer                  : Ok
  47: Print cpu map                              : Ok
  48: Probe SDT events                           : Ok
  49: is_printable_array                         : Ok
  50: Print bitmap                               : Ok
  51: perf hooks                                 : Ok
  52: builtin clang support                      : Skip (not compiled in)
  53: unit_number__scnprintf                     : Ok
  54: x86 rdpmc                                  : Ok
  55: Convert perf time to TSC                   : Ok
  56: DWARF unwind                               : Ok
  57: x86 instruction decoder - new instructions : Ok
  58: Intel cqm nmi context read                 : Skip
  # 

  $ make -C tools/perf build-test
  make: Entering directory '/home/acme/git/linux/tools/perf'
  - tarpkg: ./tests/perf-targz-src-pkg .
                make_install_O: make install
                    make_doc_O: make doc
              make_no_libelf_O: make NO_LIBELF=1
            make_install_bin_O: make install-bin
             make_util_map_o_O: make util/map.o
  make_no_libdw_dwarf_unwind_O: make NO_LIBDW_DWARF_UNWIND=1
         make_with_clangllvm_O: make LIBCLANGLLVM=1
                 make_perf_o_O: make perf.o
            make_no_auxtrace_O: make NO_AUXTRACE=1
           make_no_libunwind_O: make NO_LIBUNWIND=1
                   make_pure_O: make
           make_no_libpython_O: make NO_LIBPYTHON=1
                  make_debug_O: make DEBUG=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_static_O: make LDFLAGS=-static
               make_no_slang_O: make NO_SLANG=1
                make_no_newt_O: make NO_NEWT=1
            make_no_demangle_O: make NO_DEMANGLE=1
             make_no_libperl_O: make NO_LIBPERL=1
              make_clean_all_O: make clean all
             make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1
       make_util_pmu_bison_o_O: make util/pmu-bison.o
                make_no_gtk2_O: make NO_GTK2=1
            make_no_libaudit_O: make NO_LIBAUDIT=1
                   make_tags_O: make tags
           make_no_backtrace_O: make NO_BACKTRACE=1
         make_install_prefix_O: make install prefix=/tmp/krava
                  make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1
              make_no_libbpf_O: make NO_LIBBPF=1
   make_install_prefix_slash_O: make install prefix=/tmp/krava/
                   make_help_O: make help
        make_with_babeltrace_O: make LIBBABELTRACE=1
             make_no_libnuma_O: make NO_LIBNUMA=1
           make_no_libbionic_O: make NO_LIBBIONIC=1
  OK
  make: Leaving directory '/home/acme/git/linux/tools/perf'
  $

^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [GIT PULL 00/11] perf/core improvements and fixes
  2016-07-25 15:57 Arnaldo Carvalho de Melo
@ 2016-07-25 17:49 ` Ingo Molnar
  0 siblings, 0 replies; 70+ messages in thread
From: Ingo Molnar @ 2016-07-25 17:49 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Adrian Hunter, Andy Lutomirski, Dan Williams,
	David Ahern, H . Peter Anvin, Jiri Olsa, Josh Poimboeuf,
	Masami Hiramatsu, Namhyung Kim, Naveen N . Rao, Peter Zijlstra,
	Stephane Eranian, Stephen Rothwell, Sukadev Bhattiprolu,
	Thomas Gleixner, Wang Nan, X86 ML, Arnaldo Carvalho de Melo,
	Linus Torvalds


* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:

> Hi Ingo,
> 
> 	Please consider pulling,
> 
> - Arnaldo
> 
> Build news:
> 
> Now the 16.04-x-armhf and 16.04-x-powerpc64 cross build docker images have libz
> and libelf cross built from sources, so that we can cover cross build testing
> more of the codebase.
> 
> In those images objtool is not built, as checking powerpc and arm binaries is
> not supported, so trying to build it will end up in linker errors.
> 
> Build stats:
> 
>   # perf stat dm
>   alpine:3.4: Ok
>   android-ndk:r12b: Ok
>   centos:5: Ok
>   centos:6: Ok
>   centos:7: Ok
>   debian:7: Ok
>   debian:8: Ok
>   debian:experimental: Ok
>   fedora:21: Ok
>   fedora:22: Ok
>   fedora:23: Ok
>   fedora:24: Ok
>   fedora:rawhide: Ok
>   mageia:5: Ok
>   opensuse:13.2: Ok
>   opensuse:42.1: Ok
>   ubuntu:14.04.4: Ok
>   ubuntu:15.10: Ok
>   ubuntu:16.04: Ok
>   ubuntu:16.04-x-armhf: Ok
>   ubuntu:16.04-x-powerpc64: Ok
> 
>    Performance counter stats for 'dm':
> 
>        1940.152756      task-clock (msec)         #    0.002 CPUs utilized          
>             76,985      context-switches          #    0.040 M/sec                  
>              9,189      cpu-migrations            #    0.005 M/sec                  
>             56,641      page-faults               #    0.029 M/sec                  
>      5,631,722,319      cycles                    #    2.903 GHz                    
>      5,382,953,696      instructions              #    0.96  insn per cycle         
>        998,621,403      branches                  #  514.713 M/sec                  
>         17,532,943      branch-misses             #    1.76% of all branches        
> 
>      817.896638265 seconds time elapsed
> 
>   # 
> 
> The following changes since commit 5048c2af078d5976895d521262a8802ea791f3b0:
> 
>   Merge tag 'perf-core-for-mingo-20160718' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2016-07-19 08:44:38 +0200)
> 
> are available in the git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-20160725
> 
> for you to fetch changes up to 4e3ba8af21b00b91b451e7c4a9fa3a63b025dd56:
> 
>   Revert "perf tools: event.h needs asm/perf_regs.h" (2016-07-25 11:58:56 -0300)
> 
> ----------------------------------------------------------------
> perf/core improvements and fixes:
> 
> - Add AVX-512 support to the instruction decoder, used by Intel PT,
>   fix vcvtph2ps instruction decoding (Adrian Hunter)
> 
> - Make objtool and vdso2c use the right arch header search path
>   (Stephen Rothwell, Josh Poimboeuf, Arnaldo Carvalho de Melo)
> 
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> ----------------------------------------------------------------
> Adrian Hunter (4):
>       x86/insn: perf tools: Fix vcvtph2ps instruction decoding
>       x86/insn: Add AVX-512 support to the instruction decoder
>       perf tools: Add AVX-512 support to the instruction decoder used by Intel PT
>       perf tools: Add AVX-512 instructions to the new instructions test
> 
> Arnaldo Carvalho de Melo (5):
>       perf tests kmod-path: Fix build on ubuntu:16.04-x-armhf
>       tools build: Add HOSTARCH Makefile variable
>       objtool: Use tools/scripts/Makefile.arch to get ARCH and HOSTARCH
>       objtool: Always use host headers
>       Revert "perf tools: event.h needs asm/perf_regs.h"
> 
> Josh Poimboeuf (1):
>       tools build: Fix objtool build with ARCH=x86_64
> 
> Stephen Rothwell (1):
>       x86: Make the vdso2c compiler use the host architecture headers
> 
>  arch/x86/entry/vdso/Makefile                       |    2 +-
>  arch/x86/include/asm/inat.h                        |   17 +-
>  arch/x86/include/asm/insn.h                        |   12 +-
>  arch/x86/lib/insn.c                                |   18 +-
>  arch/x86/lib/x86-opcode-map.txt                    |  263 ++-
>  arch/x86/tools/gen-insn-attr-x86.awk               |   11 +-
>  tools/objtool/Build                                |    2 +-
>  tools/objtool/Makefile                             |    8 +-
>  tools/perf/arch/x86/tests/insn-x86-dat-32.c        | 1018 ++++++++++-
>  tools/perf/arch/x86/tests/insn-x86-dat-64.c        |  940 +++++++++-
>  tools/perf/arch/x86/tests/insn-x86-dat-src.c       | 1789 ++++++++++++++++++++
>  tools/perf/tests/kmod-path.c                       |    1 +
>  tools/perf/util/event.h                            |    1 -
>  .../util/intel-pt-decoder/gen-insn-attr-x86.awk    |   11 +-
>  tools/perf/util/intel-pt-decoder/inat.h            |   17 +-
>  tools/perf/util/intel-pt-decoder/insn.c            |   18 +-
>  tools/perf/util/intel-pt-decoder/insn.h            |   12 +-
>  .../perf/util/intel-pt-decoder/x86-opcode-map.txt  |  263 ++-
>  tools/scripts/Makefile.arch                        |   41 +-
>  19 files changed, 4221 insertions(+), 223 deletions(-)

Pulled, thanks a lot Arnaldo!

	Ingo

^ permalink raw reply	[flat|nested] 70+ messages in thread

* [GIT PULL 00/11] perf/core improvements and fixes
@ 2016-07-25 15:57 Arnaldo Carvalho de Melo
  2016-07-25 17:49 ` Ingo Molnar
  0 siblings, 1 reply; 70+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-07-25 15:57 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
	Andy Lutomirski, Dan Williams, David Ahern, H . Peter Anvin,
	Jiri Olsa, Josh Poimboeuf, Masami Hiramatsu, Namhyung Kim,
	Naveen N . Rao, Peter Zijlstra, Stephane Eranian,
	Stephen Rothwell, Sukadev Bhattiprolu, Thomas Gleixner, Wang Nan,
	X86 ML, Arnaldo Carvalho de Melo

Hi Ingo,

	Please consider pulling,

- Arnaldo

Build news:

Now the 16.04-x-armhf and 16.04-x-powerpc64 cross build docker images have libz
and libelf cross built from sources, so that we can cover cross build testing
more of the codebase.

In those images objtool is not built, as checking powerpc and arm binaries is
not supported, so trying to build it will end up in linker errors.

Build stats:

  # perf stat dm
  alpine:3.4: Ok
  android-ndk:r12b: Ok
  centos:5: Ok
  centos:6: Ok
  centos:7: Ok
  debian:7: Ok
  debian:8: Ok
  debian:experimental: Ok
  fedora:21: Ok
  fedora:22: Ok
  fedora:23: Ok
  fedora:24: Ok
  fedora:rawhide: Ok
  mageia:5: Ok
  opensuse:13.2: Ok
  opensuse:42.1: Ok
  ubuntu:14.04.4: Ok
  ubuntu:15.10: Ok
  ubuntu:16.04: Ok
  ubuntu:16.04-x-armhf: Ok
  ubuntu:16.04-x-powerpc64: Ok

   Performance counter stats for 'dm':

       1940.152756      task-clock (msec)         #    0.002 CPUs utilized          
            76,985      context-switches          #    0.040 M/sec                  
             9,189      cpu-migrations            #    0.005 M/sec                  
            56,641      page-faults               #    0.029 M/sec                  
     5,631,722,319      cycles                    #    2.903 GHz                    
     5,382,953,696      instructions              #    0.96  insn per cycle         
       998,621,403      branches                  #  514.713 M/sec                  
        17,532,943      branch-misses             #    1.76% of all branches        

     817.896638265 seconds time elapsed

  # 

The following changes since commit 5048c2af078d5976895d521262a8802ea791f3b0:

  Merge tag 'perf-core-for-mingo-20160718' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2016-07-19 08:44:38 +0200)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-20160725

for you to fetch changes up to 4e3ba8af21b00b91b451e7c4a9fa3a63b025dd56:

  Revert "perf tools: event.h needs asm/perf_regs.h" (2016-07-25 11:58:56 -0300)

----------------------------------------------------------------
perf/core improvements and fixes:

- Add AVX-512 support to the instruction decoder, used by Intel PT,
  fix vcvtph2ps instruction decoding (Adrian Hunter)

- Make objtool and vdso2c use the right arch header search path
  (Stephen Rothwell, Josh Poimboeuf, Arnaldo Carvalho de Melo)

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

----------------------------------------------------------------
Adrian Hunter (4):
      x86/insn: perf tools: Fix vcvtph2ps instruction decoding
      x86/insn: Add AVX-512 support to the instruction decoder
      perf tools: Add AVX-512 support to the instruction decoder used by Intel PT
      perf tools: Add AVX-512 instructions to the new instructions test

Arnaldo Carvalho de Melo (5):
      perf tests kmod-path: Fix build on ubuntu:16.04-x-armhf
      tools build: Add HOSTARCH Makefile variable
      objtool: Use tools/scripts/Makefile.arch to get ARCH and HOSTARCH
      objtool: Always use host headers
      Revert "perf tools: event.h needs asm/perf_regs.h"

Josh Poimboeuf (1):
      tools build: Fix objtool build with ARCH=x86_64

Stephen Rothwell (1):
      x86: Make the vdso2c compiler use the host architecture headers

 arch/x86/entry/vdso/Makefile                       |    2 +-
 arch/x86/include/asm/inat.h                        |   17 +-
 arch/x86/include/asm/insn.h                        |   12 +-
 arch/x86/lib/insn.c                                |   18 +-
 arch/x86/lib/x86-opcode-map.txt                    |  263 ++-
 arch/x86/tools/gen-insn-attr-x86.awk               |   11 +-
 tools/objtool/Build                                |    2 +-
 tools/objtool/Makefile                             |    8 +-
 tools/perf/arch/x86/tests/insn-x86-dat-32.c        | 1018 ++++++++++-
 tools/perf/arch/x86/tests/insn-x86-dat-64.c        |  940 +++++++++-
 tools/perf/arch/x86/tests/insn-x86-dat-src.c       | 1789 ++++++++++++++++++++
 tools/perf/tests/kmod-path.c                       |    1 +
 tools/perf/util/event.h                            |    1 -
 .../util/intel-pt-decoder/gen-insn-attr-x86.awk    |   11 +-
 tools/perf/util/intel-pt-decoder/inat.h            |   17 +-
 tools/perf/util/intel-pt-decoder/insn.c            |   18 +-
 tools/perf/util/intel-pt-decoder/insn.h            |   12 +-
 .../perf/util/intel-pt-decoder/x86-opcode-map.txt  |  263 ++-
 tools/scripts/Makefile.arch                        |   41 +-
 19 files changed, 4221 insertions(+), 223 deletions(-)

^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [GIT PULL 00/11] perf/core improvements and fixes
  2016-07-01  6:43 ` Ingo Molnar
@ 2016-07-01 13:18   ` Arnaldo Carvalho de Melo
  0 siblings, 0 replies; 70+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-07-01 13:18 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Adrian Hunter, Alexei Starovoitov,
	Ananth N Mavinakayanahalli, Andi Kleen, Anton Blanchard,
	Colin King, Daniel Axtens, David Ahern, David Laight, He Kuang,
	Jiri Olsa, Michael Ellerman, Namhyung Kim, Naveen N . Rao,
	Nilay Vaish, Peter Zijlstra, Ravi Bangoria, Wang Nan,
	Arnaldo Carvalho de Melo

Em Fri, Jul 01, 2016 at 08:43:15AM +0200, Ingo Molnar escreveu:
> 
> * Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> > 	Please consider pulling,

> Pulled, thanks a lot Arnaldo!
 
> Btw., the build started generating:
 
>  Warning: x86_64's syscall_64.tbl differs from kernel

Yeah, I noticed that, that is a compat one (the non-compat ones are
already in sync), which is something 'perf trace' needs to support but
can't right now due to raw_syscalls:sys_{enter,exit} limitations, so not
that important right now, will fix it anyway to remove the warning,

Thanks!

- Arnaldo
 
> Due to:
> 
> triton:~/tip> diff -up ./arch/x86/entry/syscalls/syscall_64.tbl 
> ./tools/perf/arch/x86/entry/syscalls/syscall_64.tbl
> --- ./arch/x86/entry/syscalls/syscall_64.tbl    2016-06-30 08:33:35.272016286 
> +0200
> +++ ./tools/perf/arch/x86/entry/syscalls/syscall_64.tbl 2016-06-30 
> 08:33:36.596018485 +0200
> @@ -374,5 +374,3 @@
>  543    x32     io_setup                compat_sys_io_setup
>  544    x32     io_submit               compat_sys_io_submit
>  545    x32     execveat                compat_sys_execveat/ptregs
> -534    x32     preadv2                 compat_sys_preadv2
> -535    x32     pwritev2                compat_sys_pwritev2
> 
> 	Ingo

^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [GIT PULL 00/11] perf/core improvements and fixes
  2016-06-30 22:16 Arnaldo Carvalho de Melo
@ 2016-07-01  6:43 ` Ingo Molnar
  2016-07-01 13:18   ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 70+ messages in thread
From: Ingo Molnar @ 2016-07-01  6:43 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Adrian Hunter, Alexei Starovoitov,
	Ananth N Mavinakayanahalli, Andi Kleen, Anton Blanchard,
	Colin King, Daniel Axtens, David Ahern, David Laight, He Kuang,
	Jiri Olsa, Michael Ellerman, Namhyung Kim, Naveen N . Rao,
	Nilay Vaish, Peter Zijlstra, Ravi Bangoria, 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 d905768c9e1addfa35d9731dbaa9242e8991f6ac:
> 
>   Merge tag 'perf-core-for-mingo-20160628' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2016-06-29 11:34:41 +0200)
> 
> are available in the git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-20160630
> 
> for you to fetch changes up to a24020e6b7cf6eb8b75d8bca6b89870b1cee6ba7:
> 
>   perf tools: Change cpu_map__fprintf output (2016-06-30 18:27:45 -0300)
> 
> ----------------------------------------------------------------
> perf/core improvements and fixes:
> 
> New features:
> 
> - Allow running 'perf test' entries in the same process, not forking to
>   test each testcase, useful for debugging (Jiri Olsa)
> 
> - Show number of samples in the stdio annotate header (Peter Zijlstra)
> 
> Documentation:
> 
> - Add documentation for perf.data on disk format (Andi Kleen)
> 
> Build fixes:
> 
> - Fix 'perf trace' build on old systems wrt missing SCHED_RESET_ON_FORK and
>   eventfd.h (Arnaldo Carvalho de Melo)
> 
> Infrastructure:
> 
> - Utility function to fetch arch from evsel/evlist (Ravi Bangoria)
> 
> Trivial:
> 
> - Fix spelling mistake: "missmatch" -> "mismatch" in libbpf (Colin Ian King)
> 
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> ----------------------------------------------------------------
> Andi Kleen (1):
>       perf tools: Add documentation for perf.data on disk format
> 
> Arnaldo Carvalho de Melo (2):
>       perf trace beauty sched_policy: Define SCHED_RESET_ON_FORK for older systems
>       perf trace beauty eventfd: No need to include eventfd.h
> 
> Colin Ian King (1):
>       tools lib bpf: Fix spelling mistake: "missmatch" -> "mismatch"
> 
> Jiri Olsa (4):
>       perf tools: Allow to reset open files counter
>       perf tests: Fix thread map test for -F option
>       perf test: Add -F/--dont-fork option
>       perf tools: Change cpu_map__fprintf output
> 
> Peter Zijlstra (Intel) (2):
>       perf annotate: Simplify header dotted line sizing
>       perf annotate: Add number of samples to the header
> 
> Ravi Bangoria (1):
>       perf evsel: Utility function to fetch arch
> 
>  tools/lib/bpf/libbpf.c                             |   2 +-
>  tools/lib/bpf/libbpf.h                             |   2 +-
>  tools/perf/Documentation/perf-test.txt             |   4 +
>  tools/perf/Documentation/perf.data-file-format.txt | 442 +++++++++++++++++++++
>  tools/perf/tests/builtin-test.c                    |  59 ++-
>  tools/perf/tests/cpumap.c                          |  24 ++
>  tools/perf/tests/dso-data.c                        |   6 +
>  tools/perf/tests/tests.h                           |   1 +
>  tools/perf/tests/thread-map.c                      |  16 +-
>  tools/perf/trace/beauty/eventfd.c                  |   2 -
>  tools/perf/trace/beauty/sched_policy.c             |   3 +
>  tools/perf/util/annotate.c                         |  12 +-
>  tools/perf/util/cpumap.c                           |  54 ++-
>  tools/perf/util/cpumap.h                           |   1 +
>  tools/perf/util/dso.c                              |  22 +-
>  tools/perf/util/dso.h                              |   2 +
>  tools/perf/util/event.c                            |   2 +-
>  tools/perf/util/evsel.c                            |   7 +
>  tools/perf/util/evsel.h                            |   2 +
>  19 files changed, 614 insertions(+), 49 deletions(-)
>  create mode 100644 tools/perf/Documentation/perf.data-file-format.txt

Pulled, thanks a lot Arnaldo!

Btw., the build started generating:

 Warning: x86_64's syscall_64.tbl differs from kernel

Due to:

triton:~/tip> diff -up ./arch/x86/entry/syscalls/syscall_64.tbl 
./tools/perf/arch/x86/entry/syscalls/syscall_64.tbl
--- ./arch/x86/entry/syscalls/syscall_64.tbl    2016-06-30 08:33:35.272016286 
+0200
+++ ./tools/perf/arch/x86/entry/syscalls/syscall_64.tbl 2016-06-30 
08:33:36.596018485 +0200
@@ -374,5 +374,3 @@
 543    x32     io_setup                compat_sys_io_setup
 544    x32     io_submit               compat_sys_io_submit
 545    x32     execveat                compat_sys_execveat/ptregs
-534    x32     preadv2                 compat_sys_preadv2
-535    x32     pwritev2                compat_sys_pwritev2

	Ingo

^ permalink raw reply	[flat|nested] 70+ messages in thread

* [GIT PULL 00/11] perf/core improvements and fixes
@ 2016-06-30 22:16 Arnaldo Carvalho de Melo
  2016-07-01  6:43 ` Ingo Molnar
  0 siblings, 1 reply; 70+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-06-30 22:16 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
	Alexei Starovoitov, Ananth N Mavinakayanahalli, Andi Kleen,
	Anton Blanchard, Colin King, Daniel Axtens, David Ahern,
	David Laight, He Kuang, Jiri Olsa, Michael Ellerman,
	Namhyung Kim, Naveen N . Rao, Nilay Vaish, Peter Zijlstra,
	Ravi Bangoria, Wang Nan, Arnaldo Carvalho de Melo

Hi Ingo,

	Please consider pulling,

- Arnaldo

The following changes since commit d905768c9e1addfa35d9731dbaa9242e8991f6ac:

  Merge tag 'perf-core-for-mingo-20160628' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2016-06-29 11:34:41 +0200)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-20160630

for you to fetch changes up to a24020e6b7cf6eb8b75d8bca6b89870b1cee6ba7:

  perf tools: Change cpu_map__fprintf output (2016-06-30 18:27:45 -0300)

----------------------------------------------------------------
perf/core improvements and fixes:

New features:

- Allow running 'perf test' entries in the same process, not forking to
  test each testcase, useful for debugging (Jiri Olsa)

- Show number of samples in the stdio annotate header (Peter Zijlstra)

Documentation:

- Add documentation for perf.data on disk format (Andi Kleen)

Build fixes:

- Fix 'perf trace' build on old systems wrt missing SCHED_RESET_ON_FORK and
  eventfd.h (Arnaldo Carvalho de Melo)

Infrastructure:

- Utility function to fetch arch from evsel/evlist (Ravi Bangoria)

Trivial:

- Fix spelling mistake: "missmatch" -> "mismatch" in libbpf (Colin Ian King)

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

----------------------------------------------------------------
Andi Kleen (1):
      perf tools: Add documentation for perf.data on disk format

Arnaldo Carvalho de Melo (2):
      perf trace beauty sched_policy: Define SCHED_RESET_ON_FORK for older systems
      perf trace beauty eventfd: No need to include eventfd.h

Colin Ian King (1):
      tools lib bpf: Fix spelling mistake: "missmatch" -> "mismatch"

Jiri Olsa (4):
      perf tools: Allow to reset open files counter
      perf tests: Fix thread map test for -F option
      perf test: Add -F/--dont-fork option
      perf tools: Change cpu_map__fprintf output

Peter Zijlstra (Intel) (2):
      perf annotate: Simplify header dotted line sizing
      perf annotate: Add number of samples to the header

Ravi Bangoria (1):
      perf evsel: Utility function to fetch arch

 tools/lib/bpf/libbpf.c                             |   2 +-
 tools/lib/bpf/libbpf.h                             |   2 +-
 tools/perf/Documentation/perf-test.txt             |   4 +
 tools/perf/Documentation/perf.data-file-format.txt | 442 +++++++++++++++++++++
 tools/perf/tests/builtin-test.c                    |  59 ++-
 tools/perf/tests/cpumap.c                          |  24 ++
 tools/perf/tests/dso-data.c                        |   6 +
 tools/perf/tests/tests.h                           |   1 +
 tools/perf/tests/thread-map.c                      |  16 +-
 tools/perf/trace/beauty/eventfd.c                  |   2 -
 tools/perf/trace/beauty/sched_policy.c             |   3 +
 tools/perf/util/annotate.c                         |  12 +-
 tools/perf/util/cpumap.c                           |  54 ++-
 tools/perf/util/cpumap.h                           |   1 +
 tools/perf/util/dso.c                              |  22 +-
 tools/perf/util/dso.h                              |   2 +
 tools/perf/util/event.c                            |   2 +-
 tools/perf/util/evsel.c                            |   7 +
 tools/perf/util/evsel.h                            |   2 +
 19 files changed, 614 insertions(+), 49 deletions(-)
 create mode 100644 tools/perf/Documentation/perf.data-file-format.txt

^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [GIT PULL 00/11] perf/core improvements and fixes
  2016-05-20 15:05 ` Arnaldo Carvalho de Melo
@ 2016-05-20 17:38   ` Ingo Molnar
  0 siblings, 0 replies; 70+ messages in thread
From: Ingo Molnar @ 2016-05-20 17:38 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: He Kuang, linux-kernel, Adrian Hunter, Alexander Shishkin,
	Alexei Starovoitov, Andi Kleen, Brendan Gregg, Chris Ryder,
	David Ahern, Ekaterina Tumanova, Frederic Weisbecker, Jiri Olsa,
	Josh Poimboeuf, Kan Liang, Mark Rutland, Masami Hiramatsu,
	Milian Wolff, Namhyung Kim, Pawel Moll, Pekka Enberg,
	Peter Zijlstra, Stephane Eranian, Sukadev Bhattiprolu,
	Thomas Gleixner, Vince Weaver, Wang Nan, Will Deacon, Zefan Li,
	Arnaldo Carvalho de Melo


* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:

> Em Thu, May 19, 2016 at 07:21:22PM -0300, Arnaldo Carvalho de Melo escreveu:
> > Hi Ingo,
> > 
> > 	Please consider pulling, this is on top of my previous pull
> > request (perf-core-for-mingo-20160516).
>
> The new tag is perf-core-for-mingo-20160520.

Pulled, thanks a lot Arnaldo!

	Ingo

^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [GIT PULL 00/11] perf/core improvements and fixes
  2016-05-19 22:21 Arnaldo Carvalho de Melo
@ 2016-05-20 15:05 ` Arnaldo Carvalho de Melo
  2016-05-20 17:38   ` Ingo Molnar
  0 siblings, 1 reply; 70+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-05-20 15:05 UTC (permalink / raw)
  To: Ingo Molnar, He Kuang
  Cc: linux-kernel, Adrian Hunter, Alexander Shishkin,
	Alexei Starovoitov, Andi Kleen, Brendan Gregg, Chris Ryder,
	David Ahern, Ekaterina Tumanova, Frederic Weisbecker, Jiri Olsa,
	Josh Poimboeuf, Kan Liang, Mark Rutland, Masami Hiramatsu,
	Milian Wolff, Namhyung Kim, Pawel Moll, Pekka Enberg,
	Peter Zijlstra, Stephane Eranian, Sukadev Bhattiprolu,
	Thomas Gleixner, Vince Weaver, Wang Nan, Will Deacon, Zefan Li,
	Arnaldo Carvalho de Melo

Em Thu, May 19, 2016 at 07:21:22PM -0300, Arnaldo Carvalho de Melo escreveu:
> Hi Ingo,
> 
> 	Please consider pulling, this is on top of my previous pull
> request (perf-core-for-mingo-20160516).

So, here is a new pull req, removing the following patch, due to that
segfault you noticed while testing 'perf top' on an ubuntu system:
 
> He Kuang (2):
>       perf tools: Find vdso supporting cross-platform analysis

The new tag is perf-core-for-mingo-20160520.

Kuang, Ingo proposed the patch below to fix the problem he noticed
(notice the 'dso && ' part, as __dsos__find() may return NULL), but he
had several other issues with code touched by this patch, I'll try to
address those, please check the patch below and resubmit. 

- Arnaldo

 tools/perf/util/vdso.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/tools/perf/util/vdso.c b/tools/perf/util/vdso.c
index 8f81c415723d..3a9321f83d00 100644
--- a/tools/perf/util/vdso.c
+++ b/tools/perf/util/vdso.c
@@ -293,12 +293,12 @@ static struct dso *machine__find_vdso(struct machine *machine,
 	switch (dso_type) {
 	case DSO__TYPE_32BIT:
 		dso = __dsos__find(&machine->dsos, DSO__NAME_VDSO32, true);
-		if (!dso) {
-			dso = __dsos__find(&machine->dsos, DSO__NAME_VDSO,
-					   true);
-			if (dso_type != dso__type(dso, machine))
-				dso = NULL;
-		}
+		if (dso)
+			break;
+
+		dso = __dsos__find(&machine->dsos, DSO__NAME_VDSO, true);
+		if (dso && dso_type != dso__type(dso, machine))
+			dso = NULL;
 		break;
 	case DSO__TYPE_X32BIT:
 		dso = __dsos__find(&machine->dsos, DSO__NAME_VDSOX32, true);

^ permalink raw reply related	[flat|nested] 70+ messages in thread

* [GIT PULL 00/11] perf/core improvements and fixes
@ 2016-05-19 22:21 Arnaldo Carvalho de Melo
  2016-05-20 15:05 ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 70+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-05-19 22:21 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
	Alexander Shishkin, Alexei Starovoitov, Andi Kleen,
	Brendan Gregg, Chris Ryder, David Ahern, Ekaterina Tumanova,
	Frederic Weisbecker, He Kuang, Jiri Olsa, Josh Poimboeuf,
	Kan Liang, Mark Rutland, Masami Hiramatsu, Milian Wolff,
	Namhyung Kim, Pawel Moll, Pekka Enberg, Peter Zijlstra,
	Stephane Eranian, Sukadev Bhattiprolu, Thomas Gleixner,
	Vince Weaver, Wang Nan, Will Deacon, Zefan Li,
	Arnaldo Carvalho de Melo

Hi Ingo,

	Please consider pulling, this is on top of my previous pull
request (perf-core-for-mingo-20160516).

- Arnaldo

The following changes since commit a29d5c9b8167dbc21a7ca8c0302e3799f9063b4e:

  perf tools: Separate accounting of contexts and real addresses in a stack trace (2016-05-16 23:11:54 -0300)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-20160519

for you to fetch changes up to f978a7b47e5a31d4057187153f71e95b24455e54:

  perf tools: Set buildid dir under symfs when --symfs is provided (2016-05-19 19:04:36 -0300)

----------------------------------------------------------------
perf/core improvements and fixes:

User visible:

- We should not use the current value of the kernel.perf_event_max_stack as the
  default value for --max-stack in tools that can process perf.data files, they
  will only match if that sysctl wasn't changed from its default value at the
  time the perf.data file was recorded, fix it.

  This fixes a bug where a 'perf record -a --call-graph dwarf ; perf report'
  produces a glibc invalid free backtrace (Arnaldo Carvalho de Melo)

- Provide a better warning when running 'perf trace' on a system where the
  kernel.kptr_restrict is set to 1, similar to the one produced by 'perf record',
  noticed on ubuntu 16.04 where this is the default kptr_restrict setting.
  (Arnaldo Carvalho de Melo)

- Fix ordering of instructions in the annotation code, noticed when annotating
  ARM binaries, now that table is auto-ordered at first use, to avoid more such
  problems (Chris Ryder)

- Fix searching the vdso image to support cross-platform analysis (He Kuang)

- Set buildid dir under symfs when --symfs is provided (He Kuang)

- Fix the 'exit_group()' syscall output in 'perf trace' (Arnaldo Carvalho de Melo)

- Only auto set call-graph to "dwarf" in 'perf trace' when syscalls are being
  traced (Arnaldo Carvalho de Melo)

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

----------------------------------------------------------------
Arnaldo Carvalho de Melo (7):
      perf machine: Do not bail out if not managing to read ref reloc symbol
      perf trace: Warn when trying to resolve kernel addresses with kptr_restrict=1
      perf top: Use machine->kptr_restrict_warned
      perf trace: Fix exit_group() formatting
      perf callchain: Stop validating callchains by the max_stack sysctl
      perf tools: Fix usage of max_stack sysctl
      perf trace: Only auto set call-graph to "dwarf" when syscalls are being traced

Chris Ryder (2):
      perf annotate: Fix identification of ARM blt and bls instructions
      perf annotate: Sort list of recognised instructions

He Kuang (2):
      perf tools: Find vdso supporting cross-platform analysis
      perf tools: Set buildid dir under symfs when --symfs is provided

 tools/perf/Documentation/perf-report.txt           |  2 +-
 tools/perf/Documentation/perf-script.txt           |  2 +-
 tools/perf/Documentation/perf-trace.txt            |  3 +-
 tools/perf/builtin-annotate.c                      |  5 +--
 tools/perf/builtin-diff.c                          |  5 +--
 tools/perf/builtin-report.c                        |  7 ++--
 tools/perf/builtin-script.c                        |  7 ++--
 tools/perf/builtin-timechart.c                     |  5 +--
 tools/perf/builtin-top.c                           |  6 ++--
 tools/perf/builtin-trace.c                         | 26 +++++++++++---
 tools/perf/util/annotate.c                         | 30 ++++++++++++----
 tools/perf/util/db-export.c                        |  3 +-
 tools/perf/util/dso.c                              |  4 +--
 tools/perf/util/machine.c                          | 35 ++++++-------------
 tools/perf/util/machine.h                          |  1 +
 .../perf/util/scripting-engines/trace-event-perl.c |  3 +-
 tools/perf/util/symbol.c                           | 23 +++++++++++++
 tools/perf/util/symbol.h                           |  2 ++
 tools/perf/util/top.h                              |  1 -
 tools/perf/util/vdso.c                             | 40 ++++++++++++++++++++--
 20 files changed, 146 insertions(+), 64 deletions(-)

^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [GIT PULL 00/11] perf/core improvements and fixes
  2016-05-06 16:08 Arnaldo Carvalho de Melo
@ 2016-05-07  4:52 ` Ingo Molnar
  0 siblings, 0 replies; 70+ messages in thread
From: Ingo Molnar @ 2016-05-07  4:52 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Adrian Hunter, Andi Kleen, Chris Phlipot,
	David Ahern, Jiri Olsa, Milian Wolff, Namhyung Kim,
	Peter Zijlstra, 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 c0edb7467c3d21b213ff734bfe810d81d2c6ed61:
> 
>   Merge tag 'perf-core-for-mingo-20160505' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2016-05-06 08:35:14 +0200)
> 
> are available in the git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-20160506
> 
> for you to fetch changes up to d5d71e86d226abe7e08df5763127ed2bd07649a1:
> 
>   perf trace: Move futex_op beautifier to tools/perf/trace/beauty/ (2016-05-06 13:00:59 -0300)
> 
> ----------------------------------------------------------------
> perf/core improvements and fixes:
> 
> User visible:
> 
> - Fix ordering of kernel/user entries in 'caller' mode, where the kernel and
>   user parts were being correctly inverted but kept in place wrt each other,
>   i.e. 'callee' (k1, k2, u3, u4) became 'caller' (k2, k1, u4, u3) when it
>   should be 'caller' (u4, u3, k2, k1) (Chris Phlipot)
> 
> - In 'perf trace' don't print the raw arg syscall args for a syscall that has
>   no arguments, like gettid(). This was happening because just checking if
>   the syscall args list is NULL may mean that there are no args (e.g.: gettid)
>   or that there is no tracepoint info (e.g.: clone) (Arnaldo Carvalho de Melo)
> 
> - Add extra output of counter values with 'perf stat -vv' (Andi Kleen)
> 
> Infrastructure:
> 
> - Expose callchain db export via the python API (Chris Phlipot)
> 
> Code reorganization:
> 
> - Move some more syscall arg beautifiers from the 'perf trace' main file to
>   separate files in tools/perf/trace/beauty/, to reduce the main file line
>   count (Arnaldo Carvalho de Melo)
> 
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> ----------------------------------------------------------------
> Andi Kleen (1):
>       perf stat: Add extra output of counter values with -vv
> 
> Arnaldo Carvalho de Melo (4):
>       perf trace: Do not print raw args list for syscalls with no args
>       perf trace: Move signum beautifier to tools/perf/trace/beauty/
>       perf trace: Move open_flags beautifier to tools/perf/trace/beauty/
>       perf trace: Move futex_op beautifier to tools/perf/trace/beauty/
> 
> Chris Phlipot (6):
>       perf callchain: Fix incorrect ordering of entries
>       perf tools: Refactor code to move call path handling out of thread-stack
>       perf script: Enable db export to output sampled callchains
>       perf script: Add call path id to exported sample in db export
>       perf script: Expose usage of the callchain db export via the python api
>       perf script: Update export-to-postgresql to support callchain export
> 
>  tools/perf/builtin-stat.c                          |   8 +
>  tools/perf/builtin-trace.c                         | 165 ++-------------------
>  tools/perf/scripts/python/export-to-postgresql.py  |  47 +++---
>  tools/perf/trace/beauty/futex_op.c                 |  44 ++++++
>  tools/perf/trace/beauty/open_flags.c               |  56 +++++++
>  tools/perf/trace/beauty/signum.c                   |  53 +++++++
>  tools/perf/util/Build                              |   1 +
>  tools/perf/util/call-path.c                        | 122 +++++++++++++++
>  tools/perf/util/call-path.h                        |  77 ++++++++++
>  tools/perf/util/db-export.c                        |  85 +++++++++++
>  tools/perf/util/db-export.h                        |   3 +
>  tools/perf/util/machine.c                          |  56 +++++--
>  .../util/scripting-engines/trace-event-python.c    |  36 ++++-
>  tools/perf/util/thread-stack.c                     | 139 +----------------
>  tools/perf/util/thread-stack.h                     |  31 ++--
>  15 files changed, 575 insertions(+), 348 deletions(-)
>  create mode 100644 tools/perf/trace/beauty/futex_op.c
>  create mode 100644 tools/perf/trace/beauty/open_flags.c
>  create mode 100644 tools/perf/trace/beauty/signum.c
>  create mode 100644 tools/perf/util/call-path.c
>  create mode 100644 tools/perf/util/call-path.h

Pulled, thanks a lot Arnaldo!

	Ingo

^ permalink raw reply	[flat|nested] 70+ messages in thread

* [GIT PULL 00/11] perf/core improvements and fixes
@ 2016-05-06 16:08 Arnaldo Carvalho de Melo
  2016-05-07  4:52 ` Ingo Molnar
  0 siblings, 1 reply; 70+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-05-06 16:08 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
	Andi Kleen, Chris Phlipot, David Ahern, Jiri Olsa, Milian Wolff,
	Namhyung Kim, Peter Zijlstra, Wang Nan, Arnaldo Carvalho de Melo

Hi Ingo,

	Please consider pulling,

- Arnaldo

The following changes since commit c0edb7467c3d21b213ff734bfe810d81d2c6ed61:

  Merge tag 'perf-core-for-mingo-20160505' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2016-05-06 08:35:14 +0200)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-20160506

for you to fetch changes up to d5d71e86d226abe7e08df5763127ed2bd07649a1:

  perf trace: Move futex_op beautifier to tools/perf/trace/beauty/ (2016-05-06 13:00:59 -0300)

----------------------------------------------------------------
perf/core improvements and fixes:

User visible:

- Fix ordering of kernel/user entries in 'caller' mode, where the kernel and
  user parts were being correctly inverted but kept in place wrt each other,
  i.e. 'callee' (k1, k2, u3, u4) became 'caller' (k2, k1, u4, u3) when it
  should be 'caller' (u4, u3, k2, k1) (Chris Phlipot)

- In 'perf trace' don't print the raw arg syscall args for a syscall that has
  no arguments, like gettid(). This was happening because just checking if
  the syscall args list is NULL may mean that there are no args (e.g.: gettid)
  or that there is no tracepoint info (e.g.: clone) (Arnaldo Carvalho de Melo)

- Add extra output of counter values with 'perf stat -vv' (Andi Kleen)

Infrastructure:

- Expose callchain db export via the python API (Chris Phlipot)

Code reorganization:

- Move some more syscall arg beautifiers from the 'perf trace' main file to
  separate files in tools/perf/trace/beauty/, to reduce the main file line
  count (Arnaldo Carvalho de Melo)

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

----------------------------------------------------------------
Andi Kleen (1):
      perf stat: Add extra output of counter values with -vv

Arnaldo Carvalho de Melo (4):
      perf trace: Do not print raw args list for syscalls with no args
      perf trace: Move signum beautifier to tools/perf/trace/beauty/
      perf trace: Move open_flags beautifier to tools/perf/trace/beauty/
      perf trace: Move futex_op beautifier to tools/perf/trace/beauty/

Chris Phlipot (6):
      perf callchain: Fix incorrect ordering of entries
      perf tools: Refactor code to move call path handling out of thread-stack
      perf script: Enable db export to output sampled callchains
      perf script: Add call path id to exported sample in db export
      perf script: Expose usage of the callchain db export via the python api
      perf script: Update export-to-postgresql to support callchain export

 tools/perf/builtin-stat.c                          |   8 +
 tools/perf/builtin-trace.c                         | 165 ++-------------------
 tools/perf/scripts/python/export-to-postgresql.py  |  47 +++---
 tools/perf/trace/beauty/futex_op.c                 |  44 ++++++
 tools/perf/trace/beauty/open_flags.c               |  56 +++++++
 tools/perf/trace/beauty/signum.c                   |  53 +++++++
 tools/perf/util/Build                              |   1 +
 tools/perf/util/call-path.c                        | 122 +++++++++++++++
 tools/perf/util/call-path.h                        |  77 ++++++++++
 tools/perf/util/db-export.c                        |  85 +++++++++++
 tools/perf/util/db-export.h                        |   3 +
 tools/perf/util/machine.c                          |  56 +++++--
 .../util/scripting-engines/trace-event-python.c    |  36 ++++-
 tools/perf/util/thread-stack.c                     | 139 +----------------
 tools/perf/util/thread-stack.h                     |  31 ++--
 15 files changed, 575 insertions(+), 348 deletions(-)
 create mode 100644 tools/perf/trace/beauty/futex_op.c
 create mode 100644 tools/perf/trace/beauty/open_flags.c
 create mode 100644 tools/perf/trace/beauty/signum.c
 create mode 100644 tools/perf/util/call-path.c
 create mode 100644 tools/perf/util/call-path.h

^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [GIT PULL 00/11] perf/core improvements and fixes
  2016-04-14 12:32 Arnaldo Carvalho de Melo
@ 2016-04-14 13:32 ` Ingo Molnar
  0 siblings, 0 replies; 70+ messages in thread
From: Ingo Molnar @ 2016-04-14 13:32 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
	David Ahern, He Kuang, Jiri Olsa, Masami Hiramatsu, Milian Wolff,
	Namhyung Kim, Peter Zijlstra, pi3orama, Taeung Song, Wang Nan,
	Zefan Li


* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:

> From: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> Hi Ingo,
> 
> 	Please consider pulling,
> 
> - Arnaldo
> 
> The following changes since commit c5ab6ad7f627f031e2bbde575c7e6e27ea36da55:
> 
>   Merge tag 'perf-core-for-mingo-20160413' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2016-04-13 20:27:58 +0200)
> 
> are available in the git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-20160414
> 
> for you to fetch changes up to 860b8d4b3f893c97f905b978ecf62f48816dc5de:
> 
>   perf config: Make show_config() use perf_config_set (2016-04-14 09:15:47 -0300)
> 
> ----------------------------------------------------------------
> perf/core improvements:
> 
> User visible:
> 
> - Introduce 'perf record --timestamp-filename', to add a timestamp
>   at the end of the 'perf data' file. Will get added value when
>   the patch to make 'perf.data' file snapshots gets merged (Wang Nan)
> 
> - Fix display of variables present in both --config and --user in
>   'perf list' (Taeung Song)
> 
> Build fixes:
> 
> - Add seccomp and getradom beautifier related defines to fix
>   the build in older systems where those definitions are not
>   available (Arnaldo Carvalho de Melo)
> 
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (4):
>       perf trace: Add seccomp beautifier related defines for older systems
>       perf trace: Add getrandom beautifier related defines for older systems
>       perf trace: Move mmap beautifiers to trace/beauty/ directory
>       perf trace: Move eventfd beautifiers to trace/beauty/ directory
> 
> Taeung Song (2):
>       perf config: Introduce perf_config_set class
>       perf config: Make show_config() use perf_config_set
> 
> Wang Nan (5):
>       perf ordered_events: Introduce reinit()
>       perf session: Make ordered_events reusable
>       perf data: Add perf_data_file__switch() helper
>       perf record: Turns auxtrace_snapshot_enable into 3 states
>       perf record: Add '--timestamp-filename' option to append timestamp to output file name
> 
>  tools/perf/builtin-config.c       |  39 +++++--
>  tools/perf/builtin-record.c       | 112 +++++++++++++++++---
>  tools/perf/builtin-trace.c        | 218 ++++----------------------------------
>  tools/perf/trace/beauty/eventfd.c |  38 +++++++
>  tools/perf/trace/beauty/mmap.c    | 158 +++++++++++++++++++++++++++
>  tools/perf/util/config.c          | 173 ++++++++++++++++++++++++++++++
>  tools/perf/util/config.h          |  26 +++++
>  tools/perf/util/data.c            |  41 +++++++
>  tools/perf/util/data.h            |  11 +-
>  tools/perf/util/ordered-events.c  |   9 ++
>  tools/perf/util/ordered-events.h  |   1 +
>  tools/perf/util/session.c         |   6 +-
>  12 files changed, 611 insertions(+), 221 deletions(-)
>  create mode 100644 tools/perf/trace/beauty/eventfd.c
>  create mode 100644 tools/perf/trace/beauty/mmap.c
>  create mode 100644 tools/perf/util/config.h

Pulled, thanks a lot Arnaldo!

	Ingo

^ permalink raw reply	[flat|nested] 70+ messages in thread

* [GIT PULL 00/11] perf/core improvements and fixes
@ 2016-04-14 12:32 Arnaldo Carvalho de Melo
  2016-04-14 13:32 ` Ingo Molnar
  0 siblings, 1 reply; 70+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-04-14 12:32 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
	David Ahern, He Kuang, Jiri Olsa, Masami Hiramatsu, Milian Wolff,
	Namhyung Kim, Peter Zijlstra, pi3orama, Taeung Song, Wang Nan,
	Zefan Li

From: Arnaldo Carvalho de Melo <acme@redhat.com>

Hi Ingo,

	Please consider pulling,

- Arnaldo

The following changes since commit c5ab6ad7f627f031e2bbde575c7e6e27ea36da55:

  Merge tag 'perf-core-for-mingo-20160413' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2016-04-13 20:27:58 +0200)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-20160414

for you to fetch changes up to 860b8d4b3f893c97f905b978ecf62f48816dc5de:

  perf config: Make show_config() use perf_config_set (2016-04-14 09:15:47 -0300)

----------------------------------------------------------------
perf/core improvements:

User visible:

- Introduce 'perf record --timestamp-filename', to add a timestamp
  at the end of the 'perf data' file. Will get added value when
  the patch to make 'perf.data' file snapshots gets merged (Wang Nan)

- Fix display of variables present in both --config and --user in
  'perf list' (Taeung Song)

Build fixes:

- Add seccomp and getradom beautifier related defines to fix
  the build in older systems where those definitions are not
  available (Arnaldo Carvalho de Melo)

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

----------------------------------------------------------------
Arnaldo Carvalho de Melo (4):
      perf trace: Add seccomp beautifier related defines for older systems
      perf trace: Add getrandom beautifier related defines for older systems
      perf trace: Move mmap beautifiers to trace/beauty/ directory
      perf trace: Move eventfd beautifiers to trace/beauty/ directory

Taeung Song (2):
      perf config: Introduce perf_config_set class
      perf config: Make show_config() use perf_config_set

Wang Nan (5):
      perf ordered_events: Introduce reinit()
      perf session: Make ordered_events reusable
      perf data: Add perf_data_file__switch() helper
      perf record: Turns auxtrace_snapshot_enable into 3 states
      perf record: Add '--timestamp-filename' option to append timestamp to output file name

 tools/perf/builtin-config.c       |  39 +++++--
 tools/perf/builtin-record.c       | 112 +++++++++++++++++---
 tools/perf/builtin-trace.c        | 218 ++++----------------------------------
 tools/perf/trace/beauty/eventfd.c |  38 +++++++
 tools/perf/trace/beauty/mmap.c    | 158 +++++++++++++++++++++++++++
 tools/perf/util/config.c          | 173 ++++++++++++++++++++++++++++++
 tools/perf/util/config.h          |  26 +++++
 tools/perf/util/data.c            |  41 +++++++
 tools/perf/util/data.h            |  11 +-
 tools/perf/util/ordered-events.c  |   9 ++
 tools/perf/util/ordered-events.h  |   1 +
 tools/perf/util/session.c         |   6 +-
 12 files changed, 611 insertions(+), 221 deletions(-)
 create mode 100644 tools/perf/trace/beauty/eventfd.c
 create mode 100644 tools/perf/trace/beauty/mmap.c
 create mode 100644 tools/perf/util/config.h

^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [GIT PULL 00/11] perf/core improvements and fixes
  2016-04-13 14:43 Arnaldo Carvalho de Melo
@ 2016-04-13 18:28 ` Ingo Molnar
  0 siblings, 0 replies; 70+ messages in thread
From: Ingo Molnar @ 2016-04-13 18:28 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Adrian Hunter, David Ahern, Jiri Olsa,
	Milian Wolff, Namhyung Kim, Peter Zijlstra, 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 31d50c551e30923b86a1b5b420920dd1927fa63b:
> 
>   perf/x86/amd/uncore: Do not register a task ctx for uncore PMUs (2016-04-13 11:56:36 +0200)
> 
> are available in the git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-20160413
> 
> for you to fetch changes up to 59247e33ff494e3643cdff54b64bf72575052b76:
> 
>   perf trace: Do not accept --no-syscalls together with -e (2016-04-13 10:11:52 -0300)
> 
> ----------------------------------------------------------------
> perf/core improvements and fixes:
> 
> User visible:
> 
> - Print callchains asked for events requested via 'perf trace --event' too:
>   (Arnaldo Carvalho de Melo)
> 
>   # trace -e nanosleep --call dwarf --event sched:sched_switch/call-graph=fp/ usleep 1
>    0.346 (0.005 ms): usleep/24428 nanosleep(rqtp: 0x7fffa15a0540) ...
>    0.346 (        ): sched:sched_switch:usleep:24428 [120] S ==> swapper/3:0 [120])
>                                     __schedule+0xfe200402 ([kernel.kallsyms])
>                                     schedule+0xfe200035 ([kernel.kallsyms])
>                                     do_nanosleep+0xfe20006f ([kernel.kallsyms])
>                                     hrtimer_nanosleep+0xfe2000dc ([kernel.kallsyms])
>                                     sys_nanosleep+0xfe20007a ([kernel.kallsyms])
>                                     do_syscall_64+0xfe200062 ([kernel.kallsyms])
>                                     return_from_SYSCALL_64+0xfe200000 ([kernel.kallsyms])
>                                     __nanosleep+0xffff005b8d602010 (/usr/lib64/libc-2.22.so)
>    0.400 (0.059 ms): usleep/24428  ... [continued]: nanosleep()) = 0
>                                     __nanosleep+0x10 (/usr/lib64/libc-2.22.so)
>                                     usleep+0x34 (/usr/lib64/libc-2.22.so)
>                                     main+0x1eb (/usr/bin/usleep)
>                                     __libc_start_main+0xf0 (/usr/lib64/libc-2.22.so)
>                                     _start+0x29 (/usr/bin/usleep)
> 
> - Allow requesting that some CPUs or PIDs be highlighted in 'perf sched map' (Jiri Olsa)
> 
> - Compact 'perf sched map' to show just CPUs with activity, improving the output
>   in high core count systems (Jiri Olsa)
> 
> - Fix segfault with 'perf trace --no-syscalls -e syscall-names' by bailing out
>   such request, doesn't make sense to ask for no syscalls and then specify which
>   ones should be printed (Arnaldo Carvalho de Melo)
> 
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (3):
>       perf trace: Support callchains for --event too
>       perf evsel: Move some methods from session.[ch] to evsel.[ch]
>       perf trace: Do not accept --no-syscalls together with -e
> 
> Jiri Olsa (8):
>       perf thread_map: Add has() method
>       perf cpu_map: Add has() method
>       perf sched: Add compact display option
>       perf sched: Use color_fprintf for output
>       perf thread_map: Make new_by_tid_str constructor public
>       perf sched map: Color given pids
>       perf sched map: Color given cpus
>       perf sched map: Display only given cpus
> 
>  tools/perf/Documentation/perf-sched.txt |  16 +++
>  tools/perf/builtin-sched.c              | 198 ++++++++++++++++++++++++++++++--
>  tools/perf/builtin-script.c             |  14 +--
>  tools/perf/builtin-trace.c              |  48 +++++---
>  tools/perf/util/cpumap.c                |  12 ++
>  tools/perf/util/cpumap.h                |   2 +
>  tools/perf/util/evsel.c                 | 131 +++++++++++++++++++++
>  tools/perf/util/evsel.h                 |  13 +++
>  tools/perf/util/session.c               | 130 ---------------------
>  tools/perf/util/session.h               |  13 ---
>  tools/perf/util/thread_map.c            |  14 ++-
>  tools/perf/util/thread_map.h            |   3 +
>  12 files changed, 416 insertions(+), 178 deletions(-)

Pulled, thanks a lot Arnaldo!

	Ingo

^ permalink raw reply	[flat|nested] 70+ messages in thread

* [GIT PULL 00/11] perf/core improvements and fixes
@ 2016-04-13 14:43 Arnaldo Carvalho de Melo
  2016-04-13 18:28 ` Ingo Molnar
  0 siblings, 1 reply; 70+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-04-13 14:43 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
	David Ahern, Jiri Olsa, Milian Wolff, Namhyung Kim,
	Peter Zijlstra, Wang Nan, Arnaldo Carvalho de Melo

Hi Ingo,

	Please consider pulling,

- Arnaldo

The following changes since commit 31d50c551e30923b86a1b5b420920dd1927fa63b:

  perf/x86/amd/uncore: Do not register a task ctx for uncore PMUs (2016-04-13 11:56:36 +0200)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-20160413

for you to fetch changes up to 59247e33ff494e3643cdff54b64bf72575052b76:

  perf trace: Do not accept --no-syscalls together with -e (2016-04-13 10:11:52 -0300)

----------------------------------------------------------------
perf/core improvements and fixes:

User visible:

- Print callchains asked for events requested via 'perf trace --event' too:
  (Arnaldo Carvalho de Melo)

  # trace -e nanosleep --call dwarf --event sched:sched_switch/call-graph=fp/ usleep 1
   0.346 (0.005 ms): usleep/24428 nanosleep(rqtp: 0x7fffa15a0540) ...
   0.346 (        ): sched:sched_switch:usleep:24428 [120] S ==> swapper/3:0 [120])
                                    __schedule+0xfe200402 ([kernel.kallsyms])
                                    schedule+0xfe200035 ([kernel.kallsyms])
                                    do_nanosleep+0xfe20006f ([kernel.kallsyms])
                                    hrtimer_nanosleep+0xfe2000dc ([kernel.kallsyms])
                                    sys_nanosleep+0xfe20007a ([kernel.kallsyms])
                                    do_syscall_64+0xfe200062 ([kernel.kallsyms])
                                    return_from_SYSCALL_64+0xfe200000 ([kernel.kallsyms])
                                    __nanosleep+0xffff005b8d602010 (/usr/lib64/libc-2.22.so)
   0.400 (0.059 ms): usleep/24428  ... [continued]: nanosleep()) = 0
                                    __nanosleep+0x10 (/usr/lib64/libc-2.22.so)
                                    usleep+0x34 (/usr/lib64/libc-2.22.so)
                                    main+0x1eb (/usr/bin/usleep)
                                    __libc_start_main+0xf0 (/usr/lib64/libc-2.22.so)
                                    _start+0x29 (/usr/bin/usleep)

- Allow requesting that some CPUs or PIDs be highlighted in 'perf sched map' (Jiri Olsa)

- Compact 'perf sched map' to show just CPUs with activity, improving the output
  in high core count systems (Jiri Olsa)

- Fix segfault with 'perf trace --no-syscalls -e syscall-names' by bailing out
  such request, doesn't make sense to ask for no syscalls and then specify which
  ones should be printed (Arnaldo Carvalho de Melo)

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

----------------------------------------------------------------
Arnaldo Carvalho de Melo (3):
      perf trace: Support callchains for --event too
      perf evsel: Move some methods from session.[ch] to evsel.[ch]
      perf trace: Do not accept --no-syscalls together with -e

Jiri Olsa (8):
      perf thread_map: Add has() method
      perf cpu_map: Add has() method
      perf sched: Add compact display option
      perf sched: Use color_fprintf for output
      perf thread_map: Make new_by_tid_str constructor public
      perf sched map: Color given pids
      perf sched map: Color given cpus
      perf sched map: Display only given cpus

 tools/perf/Documentation/perf-sched.txt |  16 +++
 tools/perf/builtin-sched.c              | 198 ++++++++++++++++++++++++++++++--
 tools/perf/builtin-script.c             |  14 +--
 tools/perf/builtin-trace.c              |  48 +++++---
 tools/perf/util/cpumap.c                |  12 ++
 tools/perf/util/cpumap.h                |   2 +
 tools/perf/util/evsel.c                 | 131 +++++++++++++++++++++
 tools/perf/util/evsel.h                 |  13 +++
 tools/perf/util/session.c               | 130 ---------------------
 tools/perf/util/session.h               |  13 ---
 tools/perf/util/thread_map.c            |  14 ++-
 tools/perf/util/thread_map.h            |   3 +
 12 files changed, 416 insertions(+), 178 deletions(-)

^ permalink raw reply	[flat|nested] 70+ messages in thread

* [GIT PULL 00/11] perf/core improvements and fixes
@ 2016-03-29 23:41 Arnaldo Carvalho de Melo
  0 siblings, 0 replies; 70+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-03-29 23:41 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
	Andi Kleen, Clark Williams, David Ahern, Dima Kogan, Jiri Olsa,
	Namhyung Kim, Peter Zijlstra, Stephane Eranian, Taeung Song,
	Wang Nan, Arnaldo Carvalho de Melo

Hi Ingo,

	Please consider pulling, this is on top of my previously submitted
acme/perf/urgent, so that we can test Andi's udis86 work on 'perf script'.

	This is now test built in several more docker images, including
minimal feature cross-compiler builds ones:

  # dm
  minimal-debian-experimental-x-mips64: Ok
  minimal-debian-experimental-x-mips64el: Ok
  minimal-debian-experimental-x-mipsel: Ok
  minimal-ubuntu-x-arm: Ok
  minimal-ubuntu-x-arm64: Ok
  minimal-ubuntu-x-ppc64: Ok
  minimal-ubuntu-x-ppc64el: Ok
  alldeps-debian: Ok
  alldeps-mageia: Ok
  alldeps-rhel7: Ok
  alldeps-centos: Ok
  alldeps-opensuse: Ok
  alldeps-ubuntu: Ok
  #

	Those x-arch cross docker images already allow me to avoid introducing
bugs like the powerpc one Sukadev spotted.

	I need to figure out how to install more devel packages for things like
libelf-devel:arch in debian/ubuntu, I almost got there with 'dpkg
--add-architecture arch', but I still need to figure out  how to find the list
of multilib enabled devel packages to allow me to have devel packages for other
arches than the native one...

- Arnaldo

The following changes since commit 3ea223adcb0c5893a6dc8ed3a84dce264cbb61d6:

  perf tools: Add missing initialization of perf_sample.cpumode in synthesized samples (2016-03-29 20:03:56 -0300)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-20160329

for you to fetch changes up to 7c2927ccf0daf630cf66570f061c860c73df23c7:

  perf script: Add support for printing assembler (2016-03-29 20:15:16 -0300)

----------------------------------------------------------------
perf/core improvements and fixes:

User visible:

- Add support for printing assembler using the udis86 library (Andi Kleen)

  E.g.:

  # perf record -e intel_pt// true
  # perf script -F ip,sym,asm
  <SNIP>
  ffffffff8106399d native_write_msr_safe
 	ret
  ffffffff81013728 pt_config
 	ret $0x5b81
  ffffffff810139e0 pt_event_start
 	ret
  ffffffff810144c3 pt_event_add
 	jnz 0x81014489
  ffffffff81014491 pt_event_add
 	ret
  ffffffff8119df62 event_sched_in.isra.93
 	jz 0x8119df69
  ffffffff8119df78 event_sched_in.isra.93
 	jz event_sched_in.isra.93+506
  ffffffff8119e069 event_sched_in.isra.93
 	call 0x81c29600
  <SNIP>

- Add support for skipping itrace instructions, useful to fast forward
  processor trace (Intel PT, BTS) to right after initialization code at the start
  of a workload (Andi Kleen)

- Add support for backtraces in perl 'perf script's (Dima Kogan)

- Add -U/-K (--all-user/--all-kernel) options to 'perf mem' (Jiri Olsa)

- Make -f/--force option documentation consistent across tools (Jiri Olsa)

Infrastructure:

- Add 'perf test' to check for event times (Jiri Olsa)

- 'perf config' cleanups (Taeung Song)

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

----------------------------------------------------------------
Andi Kleen (3):
      perf tools: Add support for skipping itrace instructions
      perf tools: Add probing for udev86 library
      perf script: Add support for printing assembler

Dima Kogan (1):
      perf script perl: Perl scripts now get a backtrace, like the python ones

Jiri Olsa (4):
      perf mem: Add -U/-K (--all-user/--all-kernel) options
      perf tools: Make hists__collapse_insert_entry static
      perf tools: Make -f/--force option documentation consistent across tools
      perf tests: Add test to check for event times

Taeung Song (3):
      perf config: Remove duplicated set_buildid_dir calls
      perf config: Rework buildid_dir_command_config to perf_buildid_config
      perf config: Rename 'v' to 'home' in set_buildid_dir()

 tools/build/Makefile.feature                       |   6 +-
 tools/build/feature/Makefile                       |   8 +-
 tools/build/feature/test-all.c                     |   5 +
 tools/build/feature/test-udis86.c                  |   8 +
 tools/perf/Documentation/intel-pt.txt              |   7 +
 tools/perf/Documentation/itrace.txt                |   8 +
 tools/perf/Documentation/perf-annotate.txt         |   2 +-
 tools/perf/Documentation/perf-diff.txt             |   2 +-
 tools/perf/Documentation/perf-mem.txt              |   8 +
 tools/perf/Documentation/perf-report.txt           |   2 +-
 tools/perf/Documentation/perf-script.txt           |   8 +-
 tools/perf/builtin-mem.c                           |  11 +-
 tools/perf/builtin-script.c                        | 107 +++++++++-
 tools/perf/config/Makefile                         |   5 +
 tools/perf/perf.c                                  |   3 +-
 tools/perf/tests/Build                             |   1 +
 tools/perf/tests/builtin-test.c                    |   4 +
 tools/perf/tests/event-times.c                     | 236 +++++++++++++++++++++
 tools/perf/tests/tests.h                           |   1 +
 tools/perf/util/auxtrace.c                         |   7 +
 tools/perf/util/auxtrace.h                         |   2 +
 tools/perf/util/config.c                           |  57 ++---
 tools/perf/util/hist.c                             |   5 +-
 tools/perf/util/hist.h                             |   2 -
 tools/perf/util/intel-bts.c                        |   5 +
 tools/perf/util/intel-pt.c                         |  22 +-
 .../perf/util/scripting-engines/trace-event-perl.c | 114 +++++++++-
 27 files changed, 581 insertions(+), 65 deletions(-)
 create mode 100644 tools/build/feature/test-udis86.c
 create mode 100644 tools/perf/tests/event-times.c

^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [GIT PULL 00/11] perf/core improvements and fixes
  2016-03-03 14:38   ` Arnaldo Carvalho de Melo
@ 2016-03-05  8:08     ` Ingo Molnar
  0 siblings, 0 replies; 70+ messages in thread
From: Ingo Molnar @ 2016-03-05  8:08 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Alexei Starovoitov, Andi Kleen, Brendan Gregg,
	David Ahern, He Kuang, Jeff Bastian, Jeremie Galarneau,
	Jiri Olsa, Josh Boyer, Lai Jiangshan, Li Zefan, Masami Hiramatsu,
	Namhyung Kim, Peter Zijlstra, pi3orama, Stephane Eranian,
	Steven Rostedt, Taeung Song, Thomas Gleixner, Wang Nan,
	Arnaldo Carvalho de Melo


* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:

> Em Thu, Mar 03, 2016 at 09:21:30AM +0100, Ingo Molnar escreveu:
>  
> > Hm, there's a 'perf stat' regression that I can see:
> >
> > Before:
> >                                                   #    1.59  stalled cycles per insn
> >      1,818,488,088      branches                  #  151.667 M/sec                  
> > 
> > After:
> > 
> >  triton:~/tip> perf stat -a sleep 1
> > 
> >           24166678      branches                  #    2.016 M/sec                  
> > 
> > ... see how the numbers became human-unreadable, losing the big-number separator?
> > 
> > I suspect it's due to the following commit:
> > 
> >   fa184776ac27 perf stat: Check existence of frontend/backed stalled cycles
> 
> Ok, I inserted Jiri's patch fixing the problem just before the commit
> (fa184776ac27) that triggers it, so that we don't break bisection for
> human-readable numbers in 'perf stat'.
> 
> Its all in a new signed tag, that combines the two outstanding ones
> (perf-core-for-mingo-20160229 + perf-core-for-mingo-20160302), please
> consider pulling.
> 
> - Arnaldo
> 
> The following changes since commit 675965b00d734c985e4285f5bec7e524d15fc4e1:
> 
>   perf: Export perf_event_sysfs_show() (2016-02-29 09:35:27 +0100)
> 
> are available in the git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-20160303
> 
> for you to fetch changes up to fb4605ba47e772ff9d62d1d54218a832ec8b3e1d:
> 
>   perf stat: Check for frontend stalled for metrics (2016-03-03 11:10:40 -0300)
> 
> ----------------------------------------------------------------
> perf/core improvements and fixes:
> 
> User visible:
> 
> - Check existence of frontend/backed stalled cycles in 'perf stat' (Andi Kleen)
> 
> - Implement CSV metrics output in 'perf stat' (Andi Kleen)
> 
> - Support metrics in 'perf stat' --per-core/socket mode (Andi Kleen)
> 
> - Avoid installing .o files from tools/lib/ into the python extension (Jiri Olsa)
> 
> - Rename the tracepoint '/format' field that carries the syscall ID from 'nr',
>   that is also the name of some syscalls arguments, to "__syscall_nr", to
>   avoid having multiple fields with the same name, that was breaking the
>   python script skeleton generator from perf.data files (Taeung Song)
> 
> - Support converting data from bpf events in 'perf data' (Wang Nan)
> 
> - Fix segfault in 'perf test' hists related entries (Arnaldo Carvalho de Melo)
> 
> - Fix output of %llu for 64 bit values read on 32 bit machines in libtraceevent (Steven Rostedt)
> 
> - Fix time stamp rounding issue in libtraceevent (Chaos.Chen)
> 
> Infrastructure:
> 
> - Fix setlocale() breakage in the pmu parsing code (Jiri Olsa)
> 
> - Split libtraceevent's pevent_print_event() (Steven Rostedt)
> 
> - Librarize some 'perf record' bits to allow handling multiple perf.data
>   files per session (Wang Nan)
> 
> - Ensure return non-zero rc when mmap fails in 'perf record' (Wang Nan)
> 
> - Fix double free on 'command_line' in a error path in 'perf script' (Colin Ian King)
> 
> - Initialize struct sigaction 'sa_flags' field in a 'perf test' entry (Colin Ian King)
> 
> - Fix various build warnings in turbostat, detected with gcc6 (Colin Ian King)
> 
> - Use .s extension for preprocessed assembler code (Masahiro Yamada)
> 
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> ----------------------------------------------------------------
> Andi Kleen (4):
>       perf stat: Check existence of frontend/backed stalled cycles
>       perf stat: Implement CSV metrics output
>       perf stat: Support metrics in --per-core/socket mode
>       perf stat: Check for frontend stalled for metrics
> 
> Arnaldo Carvalho de Melo (1):
>       perf test: Fix hists related entries
> 
> Chaos.Chen (1):
>       tools lib traceevent: Fix time stamp rounding issue
> 
> Colin Ian King (3):
>       perf script: Fix double free on command_line
>       perf tests: Initialize sa.sa_flags
>       tools/power turbostat: fix various build warnings
> 
> Jiri Olsa (2):
>       perf tools: Fix python extension build
>       perf tools: Fix locale handling in pmu parsing
> 
> Masahiro Yamada (1):
>       tools build: Use .s extension for preprocessed assembler code
> 
> Steven Rostedt (1):
>       tools lib traceevent: Split pevent_print_event() into specific functionality functions
> 
> Steven Rostedt (Red Hat) (2):
>       tools lib traceevent: Set int_array fields to NULL if freeing from error
>       tools lib traceevent: Fix output of %llu for 64 bit values read on 32 bit machines
> 
> Taeung Song (2):
>       perf trace: Check and discard not only 'nr' but also '__syscall_nr'
>       tracing/syscalls: Rename "/format" tracepoint field name "nr" to "__syscall_nr:
> 
> Wang Nan (6):
>       perf data: Support converting data from bpf_perf_event_output()
>       perf data: Explicitly set byte order for integer types
>       perf record: Use WARN_ONCE to replace 'if' condition
>       perf record: Extract synthesize code to record__synthesize()
>       perf record: Introduce record__finish_output() to finish a perf.data
>       perf record: Ensure return non-zero rc when mmap fail
> 
>  kernel/trace/trace_syscalls.c                      |  16 +-
>  tools/build/Makefile.build                         |   2 +-
>  tools/lib/traceevent/event-parse.c                 | 146 ++++++++++++++----
>  tools/lib/traceevent/event-parse.h                 |  13 ++
>  tools/perf/arch/x86/tests/rdpmc.c                  |   1 +
>  tools/perf/builtin-record.c                        | 168 ++++++++++++---------
>  tools/perf/builtin-stat.c                          | 158 +++++++++++++++++--
>  tools/perf/builtin-trace.c                         |   8 +-
>  tools/perf/util/data-convert-bt.c                  | 118 ++++++++++++++-
>  tools/perf/util/pmu.c                              |  13 ++
>  .../util/scripting-engines/trace-event-python.c    |   4 +-
>  tools/perf/util/setup.py                           |   4 +
>  tools/perf/util/sort.c                             |  37 +++--
>  tools/perf/util/stat-shadow.c                      |  18 ++-
>  tools/perf/util/stat.h                             |   1 +
>  tools/power/x86/turbostat/turbostat.c              |   8 +-
>  16 files changed, 566 insertions(+), 149 deletions(-)

Pulled, thanks a lot Arnaldo!

	Ingo

^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [GIT PULL 00/11] perf/core improvements and fixes
  2016-03-03  8:21 ` Ingo Molnar
  2016-03-03  9:15   ` Jiri Olsa
@ 2016-03-03 14:38   ` Arnaldo Carvalho de Melo
  2016-03-05  8:08     ` Ingo Molnar
  1 sibling, 1 reply; 70+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-03-03 14:38 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Alexei Starovoitov, Andi Kleen, Brendan Gregg,
	David Ahern, He Kuang, Jeff Bastian, Jeremie Galarneau,
	Jiri Olsa, Josh Boyer, Lai Jiangshan, Li Zefan, Masami Hiramatsu,
	Namhyung Kim, Peter Zijlstra, pi3orama, Stephane Eranian,
	Steven Rostedt, Taeung Song, Thomas Gleixner, Wang Nan,
	Arnaldo Carvalho de Melo

Em Thu, Mar 03, 2016 at 09:21:30AM +0100, Ingo Molnar escreveu:
 
> Hm, there's a 'perf stat' regression that I can see:
>
> Before:
>                                                   #    1.59  stalled cycles per insn
>      1,818,488,088      branches                  #  151.667 M/sec                  
> 
> After:
> 
>  triton:~/tip> perf stat -a sleep 1
> 
>           24166678      branches                  #    2.016 M/sec                  
> 
> ... see how the numbers became human-unreadable, losing the big-number separator?
> 
> I suspect it's due to the following commit:
> 
>   fa184776ac27 perf stat: Check existence of frontend/backed stalled cycles

Ok, I inserted Jiri's patch fixing the problem just before the commit
(fa184776ac27) that triggers it, so that we don't break bisection for
human-readable numbers in 'perf stat'.

Its all in a new signed tag, that combines the two outstanding ones
(perf-core-for-mingo-20160229 + perf-core-for-mingo-20160302), please
consider pulling.

- Arnaldo

The following changes since commit 675965b00d734c985e4285f5bec7e524d15fc4e1:

  perf: Export perf_event_sysfs_show() (2016-02-29 09:35:27 +0100)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-20160303

for you to fetch changes up to fb4605ba47e772ff9d62d1d54218a832ec8b3e1d:

  perf stat: Check for frontend stalled for metrics (2016-03-03 11:10:40 -0300)

----------------------------------------------------------------
perf/core improvements and fixes:

User visible:

- Check existence of frontend/backed stalled cycles in 'perf stat' (Andi Kleen)

- Implement CSV metrics output in 'perf stat' (Andi Kleen)

- Support metrics in 'perf stat' --per-core/socket mode (Andi Kleen)

- Avoid installing .o files from tools/lib/ into the python extension (Jiri Olsa)

- Rename the tracepoint '/format' field that carries the syscall ID from 'nr',
  that is also the name of some syscalls arguments, to "__syscall_nr", to
  avoid having multiple fields with the same name, that was breaking the
  python script skeleton generator from perf.data files (Taeung Song)

- Support converting data from bpf events in 'perf data' (Wang Nan)

- Fix segfault in 'perf test' hists related entries (Arnaldo Carvalho de Melo)

- Fix output of %llu for 64 bit values read on 32 bit machines in libtraceevent (Steven Rostedt)

- Fix time stamp rounding issue in libtraceevent (Chaos.Chen)

Infrastructure:

- Fix setlocale() breakage in the pmu parsing code (Jiri Olsa)

- Split libtraceevent's pevent_print_event() (Steven Rostedt)

- Librarize some 'perf record' bits to allow handling multiple perf.data
  files per session (Wang Nan)

- Ensure return non-zero rc when mmap fails in 'perf record' (Wang Nan)

- Fix double free on 'command_line' in a error path in 'perf script' (Colin Ian King)

- Initialize struct sigaction 'sa_flags' field in a 'perf test' entry (Colin Ian King)

- Fix various build warnings in turbostat, detected with gcc6 (Colin Ian King)

- Use .s extension for preprocessed assembler code (Masahiro Yamada)

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

----------------------------------------------------------------
Andi Kleen (4):
      perf stat: Check existence of frontend/backed stalled cycles
      perf stat: Implement CSV metrics output
      perf stat: Support metrics in --per-core/socket mode
      perf stat: Check for frontend stalled for metrics

Arnaldo Carvalho de Melo (1):
      perf test: Fix hists related entries

Chaos.Chen (1):
      tools lib traceevent: Fix time stamp rounding issue

Colin Ian King (3):
      perf script: Fix double free on command_line
      perf tests: Initialize sa.sa_flags
      tools/power turbostat: fix various build warnings

Jiri Olsa (2):
      perf tools: Fix python extension build
      perf tools: Fix locale handling in pmu parsing

Masahiro Yamada (1):
      tools build: Use .s extension for preprocessed assembler code

Steven Rostedt (1):
      tools lib traceevent: Split pevent_print_event() into specific functionality functions

Steven Rostedt (Red Hat) (2):
      tools lib traceevent: Set int_array fields to NULL if freeing from error
      tools lib traceevent: Fix output of %llu for 64 bit values read on 32 bit machines

Taeung Song (2):
      perf trace: Check and discard not only 'nr' but also '__syscall_nr'
      tracing/syscalls: Rename "/format" tracepoint field name "nr" to "__syscall_nr:

Wang Nan (6):
      perf data: Support converting data from bpf_perf_event_output()
      perf data: Explicitly set byte order for integer types
      perf record: Use WARN_ONCE to replace 'if' condition
      perf record: Extract synthesize code to record__synthesize()
      perf record: Introduce record__finish_output() to finish a perf.data
      perf record: Ensure return non-zero rc when mmap fail

 kernel/trace/trace_syscalls.c                      |  16 +-
 tools/build/Makefile.build                         |   2 +-
 tools/lib/traceevent/event-parse.c                 | 146 ++++++++++++++----
 tools/lib/traceevent/event-parse.h                 |  13 ++
 tools/perf/arch/x86/tests/rdpmc.c                  |   1 +
 tools/perf/builtin-record.c                        | 168 ++++++++++++---------
 tools/perf/builtin-stat.c                          | 158 +++++++++++++++++--
 tools/perf/builtin-trace.c                         |   8 +-
 tools/perf/util/data-convert-bt.c                  | 118 ++++++++++++++-
 tools/perf/util/pmu.c                              |  13 ++
 .../util/scripting-engines/trace-event-python.c    |   4 +-
 tools/perf/util/setup.py                           |   4 +
 tools/perf/util/sort.c                             |  37 +++--
 tools/perf/util/stat-shadow.c                      |  18 ++-
 tools/perf/util/stat.h                             |   1 +
 tools/power/x86/turbostat/turbostat.c              |   8 +-
 16 files changed, 566 insertions(+), 149 deletions(-)

^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [GIT PULL 00/11] perf/core improvements and fixes
  2016-03-03  8:21 ` Ingo Molnar
@ 2016-03-03  9:15   ` Jiri Olsa
  2016-03-03 14:38   ` Arnaldo Carvalho de Melo
  1 sibling, 0 replies; 70+ messages in thread
From: Jiri Olsa @ 2016-03-03  9:15 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Arnaldo Carvalho de Melo, linux-kernel, Alexei Starovoitov,
	Andi Kleen, Brendan Gregg, David Ahern, He Kuang, Jeff Bastian,
	Jeremie Galarneau, Jiri Olsa, Josh Boyer, Lai Jiangshan,
	Li Zefan, Masami Hiramatsu, Namhyung Kim, Peter Zijlstra,
	pi3orama, Stephane Eranian, Steven Rostedt, Taeung Song,
	Thomas Gleixner, Wang Nan, Arnaldo Carvalho de Melo

On Thu, Mar 03, 2016 at 09:21:30AM +0100, Ingo Molnar wrote:
> 
> * Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> 
> > Hi Ingo,
> > 
> > 	Please consider pulling,
> > 
> > - Arnaldo
> > 
> > The following changes since commit 675965b00d734c985e4285f5bec7e524d15fc4e1:
> > 
> >   perf: Export perf_event_sysfs_show() (2016-02-29 09:35:27 +0100)
> > 
> > are available in the git repository at:
> > 
> >   git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-20160229
> > 
> > for you to fetch changes up to 575a02e00b11eecbbabcb1eb22eab4c68e91ae77:
> > 
> >   perf record: Ensure return non-zero rc when mmap fail (2016-02-29 12:44:15 -0300)
> > 
> > ----------------------------------------------------------------
> > perf/core improvements and fixes:
> > 
> > User visible:
> > 
> > - Check existence of frontend/backed stalled cycles in 'perf stat' (Andi Kleen)
> > 
> > - Avoid installing .o files from tools/lib/ into the python extension (Jiri Olsa)
> > 
> > - Rename the tracepoint '/format' field that carries the syscall ID from 'nr',
> >   that is also the name of some syscalls arguments, to "__syscall_nr", to
> >   avoid having multiple fields with the same name, that was breaking the
> >   python script skeleton generator from perf.data files (Taeung Song)
> > 
> > - Support converting data from bpf events in 'perf data' (Wang Nan)
> > 
> > Infrastructure:
> > 
> > - Split libtraceevent's pevent_print_event() (Steven Rostedt)
> > 
> > - Librarize some 'perf record' bits to allow handling multiple perf.data
> >   files per session (Wang Nan)
> > 
> > - Ensure return non-zero rc when mmap fail in 'perf record' (Wang Nan)
> > 
> > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> > 
> > ----------------------------------------------------------------
> > Andi Kleen (1):
> >       perf stat: Check existence of frontend/backed stalled cycles
> 
> > 
> > Jiri Olsa (1):
> >       perf tools: Fix python extension build
> > 
> > Steven Rostedt (1):
> >       tools lib traceevent: Split pevent_print_event() into specific functionality functions
> > 
> > Taeung Song (2):
> >       perf trace: Check and discard not only 'nr' but also '__syscall_nr'
> >       tracing/syscalls: Rename "/format" tracepoint field name "nr" to "__syscall_nr:
> > 
> > Wang Nan (6):
> >       perf data: Support converting data from bpf_perf_event_output()
> >       perf data: Explicitly set byte order for integer types
> >       perf record: Use WARN_ONCE to replace 'if' condition
> >       perf record: Extract synthesize code to record__synthesize()
> >       perf record: Introduce record__finish_output() to finish a perf.data
> >       perf record: Ensure return non-zero rc when mmap fail
> > 
> >  kernel/trace/trace_syscalls.c      |  16 ++--
> >  tools/lib/traceevent/event-parse.c | 136 +++++++++++++++++++++++-------
> >  tools/lib/traceevent/event-parse.h |  13 +++
> >  tools/perf/builtin-record.c        | 168 ++++++++++++++++++++++---------------
> >  tools/perf/builtin-stat.c          |  22 ++++-
> >  tools/perf/builtin-trace.c         |   8 +-
> >  tools/perf/util/data-convert-bt.c  | 118 +++++++++++++++++++++++++-
> >  tools/perf/util/setup.py           |   4 +
> >  8 files changed, 372 insertions(+), 113 deletions(-)
> 
> Hm, there's a 'perf stat' regression that I can see:
> 
> Before:
> 
>  triton:~/tip> perf stat -a sleep 1
> 
>  Performance counter stats for 'system wide':
> 
>       11990.023100      task-clock (msec)         #   11.981 CPUs utilized          
>              8,802      context-switches          #    0.734 K/sec                  
>                543      cpu-migrations            #    0.045 K/sec                  
>             97,375      page-faults               #    0.008 M/sec                  
>      9,854,385,894      cycles                    #    0.822 GHz                    
>     15,274,841,152      stalled-cycles-frontend   #  155.01% frontend cycles idle   
>    <not supported>      stalled-cycles-backend   
>      9,634,486,137      instructions              #    0.98  insn per cycle         
>                                                   #    1.59  stalled cycles per insn
>      1,818,488,088      branches                  #  151.667 M/sec                  
>         46,365,120      branch-misses             #    2.55% of all branches        
> 
>        1.000741599 seconds time elapsed
> 
> After:
> 
>  triton:~/tip> perf stat -a sleep 1
> 
>  Performance counter stats for 'system wide':
> 
>       11989.280397      task-clock (msec)         #   11.981 CPUs utilized          
>               1299      context-switches          #    0.108 K/sec                  
>                  6      cpu-migrations            #    0.001 K/sec                  
>                 70      page-faults               #    0.006 K/sec                  
>          127008602      cycles                    #    0.011 GHz                    
>          279538533      stalled-cycles-frontend   #  220.09% frontend cycles idle   
>          119213269      instructions              #    0.94  insn per cycle         
>                                                   #    2.34  stalled cycles per insn
>           24166678      branches                  #    2.016 M/sec                  
>             505681      branch-misses             #    2.09% of all branches        
> 
>        1.000684278 seconds time elapsed
> 
> 
> ... see how the numbers became human-unreadable, losing the big-number separator?
> 
> I suspect it's due to the following commit:
> 
>   fa184776ac27 perf stat: Check existence of frontend/backed stalled cycles

yea, it used the pmu parsing which screwes locales,
following patch fixed that for me..

jirka


---
diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c
index ce61f79dbaae..d8cd038baed2 100644
--- a/tools/perf/util/pmu.c
+++ b/tools/perf/util/pmu.c
@@ -124,6 +124,17 @@ static int perf_pmu__parse_scale(struct perf_pmu_alias *alias, char *dir, char *
 	lc = setlocale(LC_NUMERIC, NULL);
 
 	/*
+	 * The lc string may be allocated in static storage,
+	 * so get a dynamic copy to make it survive setlocale
+	 * call below.
+	 */
+	lc = strdup(lc);
+	if (!lc) {
+		ret = -ENOMEM;
+		goto error;
+	}
+
+	/*
 	 * force to C locale to ensure kernel
 	 * scale string is converted correctly.
 	 * kernel uses default C locale.
@@ -135,6 +146,8 @@ static int perf_pmu__parse_scale(struct perf_pmu_alias *alias, char *dir, char *
 	/* restore locale */
 	setlocale(LC_NUMERIC, lc);
 
+	free((char *) lc);
+
 	ret = 0;
 error:
 	close(fd);

^ permalink raw reply related	[flat|nested] 70+ messages in thread

* Re: [GIT PULL 00/11] perf/core improvements and fixes
  2016-02-29 19:21 Arnaldo Carvalho de Melo
@ 2016-03-03  8:21 ` Ingo Molnar
  2016-03-03  9:15   ` Jiri Olsa
  2016-03-03 14:38   ` Arnaldo Carvalho de Melo
  0 siblings, 2 replies; 70+ messages in thread
From: Ingo Molnar @ 2016-03-03  8:21 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Alexei Starovoitov, Andi Kleen, Brendan Gregg,
	David Ahern, He Kuang, Jeff Bastian, Jeremie Galarneau,
	Jiri Olsa, Josh Boyer, Lai Jiangshan, Li Zefan, Masami Hiramatsu,
	Namhyung Kim, Peter Zijlstra, pi3orama, Stephane Eranian,
	Steven Rostedt, Taeung Song, Thomas Gleixner, 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 675965b00d734c985e4285f5bec7e524d15fc4e1:
> 
>   perf: Export perf_event_sysfs_show() (2016-02-29 09:35:27 +0100)
> 
> are available in the git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-20160229
> 
> for you to fetch changes up to 575a02e00b11eecbbabcb1eb22eab4c68e91ae77:
> 
>   perf record: Ensure return non-zero rc when mmap fail (2016-02-29 12:44:15 -0300)
> 
> ----------------------------------------------------------------
> perf/core improvements and fixes:
> 
> User visible:
> 
> - Check existence of frontend/backed stalled cycles in 'perf stat' (Andi Kleen)
> 
> - Avoid installing .o files from tools/lib/ into the python extension (Jiri Olsa)
> 
> - Rename the tracepoint '/format' field that carries the syscall ID from 'nr',
>   that is also the name of some syscalls arguments, to "__syscall_nr", to
>   avoid having multiple fields with the same name, that was breaking the
>   python script skeleton generator from perf.data files (Taeung Song)
> 
> - Support converting data from bpf events in 'perf data' (Wang Nan)
> 
> Infrastructure:
> 
> - Split libtraceevent's pevent_print_event() (Steven Rostedt)
> 
> - Librarize some 'perf record' bits to allow handling multiple perf.data
>   files per session (Wang Nan)
> 
> - Ensure return non-zero rc when mmap fail in 'perf record' (Wang Nan)
> 
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> ----------------------------------------------------------------
> Andi Kleen (1):
>       perf stat: Check existence of frontend/backed stalled cycles

> 
> Jiri Olsa (1):
>       perf tools: Fix python extension build
> 
> Steven Rostedt (1):
>       tools lib traceevent: Split pevent_print_event() into specific functionality functions
> 
> Taeung Song (2):
>       perf trace: Check and discard not only 'nr' but also '__syscall_nr'
>       tracing/syscalls: Rename "/format" tracepoint field name "nr" to "__syscall_nr:
> 
> Wang Nan (6):
>       perf data: Support converting data from bpf_perf_event_output()
>       perf data: Explicitly set byte order for integer types
>       perf record: Use WARN_ONCE to replace 'if' condition
>       perf record: Extract synthesize code to record__synthesize()
>       perf record: Introduce record__finish_output() to finish a perf.data
>       perf record: Ensure return non-zero rc when mmap fail
> 
>  kernel/trace/trace_syscalls.c      |  16 ++--
>  tools/lib/traceevent/event-parse.c | 136 +++++++++++++++++++++++-------
>  tools/lib/traceevent/event-parse.h |  13 +++
>  tools/perf/builtin-record.c        | 168 ++++++++++++++++++++++---------------
>  tools/perf/builtin-stat.c          |  22 ++++-
>  tools/perf/builtin-trace.c         |   8 +-
>  tools/perf/util/data-convert-bt.c  | 118 +++++++++++++++++++++++++-
>  tools/perf/util/setup.py           |   4 +
>  8 files changed, 372 insertions(+), 113 deletions(-)

Hm, there's a 'perf stat' regression that I can see:

Before:

 triton:~/tip> perf stat -a sleep 1

 Performance counter stats for 'system wide':

      11990.023100      task-clock (msec)         #   11.981 CPUs utilized          
             8,802      context-switches          #    0.734 K/sec                  
               543      cpu-migrations            #    0.045 K/sec                  
            97,375      page-faults               #    0.008 M/sec                  
     9,854,385,894      cycles                    #    0.822 GHz                    
    15,274,841,152      stalled-cycles-frontend   #  155.01% frontend cycles idle   
   <not supported>      stalled-cycles-backend   
     9,634,486,137      instructions              #    0.98  insn per cycle         
                                                  #    1.59  stalled cycles per insn
     1,818,488,088      branches                  #  151.667 M/sec                  
        46,365,120      branch-misses             #    2.55% of all branches        

       1.000741599 seconds time elapsed

After:

 triton:~/tip> perf stat -a sleep 1

 Performance counter stats for 'system wide':

      11989.280397      task-clock (msec)         #   11.981 CPUs utilized          
              1299      context-switches          #    0.108 K/sec                  
                 6      cpu-migrations            #    0.001 K/sec                  
                70      page-faults               #    0.006 K/sec                  
         127008602      cycles                    #    0.011 GHz                    
         279538533      stalled-cycles-frontend   #  220.09% frontend cycles idle   
         119213269      instructions              #    0.94  insn per cycle         
                                                  #    2.34  stalled cycles per insn
          24166678      branches                  #    2.016 M/sec                  
            505681      branch-misses             #    2.09% of all branches        

       1.000684278 seconds time elapsed


... see how the numbers became human-unreadable, losing the big-number separator?

I suspect it's due to the following commit:

  fa184776ac27 perf stat: Check existence of frontend/backed stalled cycles

Thanks,

	Ingo

^ permalink raw reply	[flat|nested] 70+ messages in thread

* [GIT PULL 00/11] perf/core improvements and fixes
@ 2016-03-02 22:16 Arnaldo Carvalho de Melo
  0 siblings, 0 replies; 70+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-03-02 22:16 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Aaro Koskinen,
	Adrian Hunter, Andi Kleen, Andrew Morton, Chaos . Chen,
	Colin Ian King, David Ahern, He Kuang, Javi Merino, Jiri Olsa,
	Lukas Wunner, Masahiro Yamada, Matt Fleming, Namhyung Kim,
	Peter Zijlstra, Steven Rostedt, Wang Nan,
	Arnaldo Carvalho de Melo

Hi Ingo,

	Please consider pulling, this is on top of the outstanding
perf-core-for-mingo-20160229 signed tag.

- Arnaldo

The following changes since commit 1d6c9407d45dd622b277ca9f725da3cc9e95b5de:

  perf trace: Print content of bpf-output event (2016-02-26 19:57:07 -0300)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-20160302

for you to fetch changes up to 575197b405c45959ca2f71da8c65b6f8d9693140:

  perf stat: Check for frontend stalled for metrics (2016-03-02 11:27:00 -0300)

----------------------------------------------------------------
perf/core improvements and fixes:

User visible:

- Implement CSV metrics output in 'perf stat' (Andi Kleen)

- Support metrics in 'perf stat' --per-core/socket mode (Andi Kleen)

- Check for frontend stalled for metrics (Andi Kleen)

- Fix segfault in 'perf test' hists related entries (Arnaldo Carvalho de Melo)

- Fix output of %llu for 64 bit values read on 32 bit machines in libtraceevent (Steven Rostedt)

- Fix time stamp rounding issue in libtraceevent (Chaos.Chen)

Infrastructure:

- Fix double free on 'command_line' in a error path in 'perf script' (Colin Ian King)

- Initialize struct sigaction 'sa_flags' field in a 'perf test' entri (Colin Ian King)

- Fix various build warnings in turbostat, detected with gcc6 (Colin Ian King)

- Use .s extension for preprocessed assembler code (Masahiro Yamada)

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

----------------------------------------------------------------

The following changes since commit 575a02e00b11eecbbabcb1eb22eab4c68e91ae77:

  perf record: Ensure return non-zero rc when mmap fail (2016-02-29 12:44:15 -0300)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-20160302

for you to fetch changes up to 575197b405c45959ca2f71da8c65b6f8d9693140:

  perf stat: Check for frontend stalled for metrics (2016-03-02 11:27:00 -0300)

----------------------------------------------------------------
perf/core improvements and fixes:

User visible:

- Implement CSV metrics output in 'perf stat' (Andi Kleen)

- Support metrics in 'perf stat' --per-core/socket mode (Andi Kleen)

- Check for frontend stalled for metrics (Andi Kleen)

- Fix segfault in 'perf test' hists related entries (Arnaldo Carvalho de Melo)

- Fix output of %llu for 64 bit values read on 32 bit machines in libtraceevent (Steven Rostedt)

- Fix time stamp rounding issue in libtraceevent (Chaos.Chen)

Infrastructure:

- Fix double free on 'command_line' in a error path in 'perf script' (Colin Ian King)

- Initialize struct sigaction 'sa_flags' field in a 'perf test' entri (Colin Ian King)

- Fix various build warnings in turbostat, detected with gcc6 (Colin Ian King)

- Use .s extension for preprocessed assembler code (Masahiro Yamada)

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

----------------------------------------------------------------
Andi Kleen (3):
      perf stat: Implement CSV metrics output
      perf stat: Support metrics in --per-core/socket mode
      perf stat: Check for frontend stalled for metrics

Arnaldo Carvalho de Melo (1):
      perf test: Fix hists related entries

Chaos.Chen (1):
      tools lib traceevent: Fix time stamp rounding issue

Colin Ian King (3):
      perf script: Fix double free on command_line
      perf tests: Initialize sa.sa_flags
      tools/power turbostat: fix various build warnings

Masahiro Yamada (1):
      tools build: Use .s extension for preprocessed assembler code

Steven Rostedt (Red Hat) (2):
      tools lib traceevent: Set int_array fields to NULL if freeing from error
      tools lib traceevent: Fix output of %llu for 64 bit values read on 32 bit machines

 tools/build/Makefile.build                         |   2 +-
 tools/lib/traceevent/event-parse.c                 |  10 +-
 tools/perf/arch/x86/tests/rdpmc.c                  |   1 +
 tools/perf/builtin-stat.c                          | 136 +++++++++++++++++++--
 .../util/scripting-engines/trace-event-python.c    |   4 +-
 tools/perf/util/sort.c                             |  37 +++---
 tools/perf/util/stat-shadow.c                      |  18 ++-
 tools/perf/util/stat.h                             |   1 +
 tools/power/x86/turbostat/turbostat.c              |   8 +-
 9 files changed, 181 insertions(+), 36 deletions(-)

^ permalink raw reply	[flat|nested] 70+ messages in thread

* [GIT PULL 00/11] perf/core improvements and fixes
@ 2016-02-29 19:21 Arnaldo Carvalho de Melo
  2016-03-03  8:21 ` Ingo Molnar
  0 siblings, 1 reply; 70+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-02-29 19:21 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Alexei Starovoitov,
	Andi Kleen, Brendan Gregg, David Ahern, He Kuang, Jeff Bastian,
	Jeremie Galarneau, Jiri Olsa, Josh Boyer, Lai Jiangshan,
	Li Zefan, Masami Hiramatsu, Namhyung Kim, Peter Zijlstra,
	pi3orama, Stephane Eranian, Steven Rostedt, Taeung Song,
	Thomas Gleixner, Wang Nan, Arnaldo Carvalho de Melo

Hi Ingo,

	Please consider pulling,

- Arnaldo

The following changes since commit 675965b00d734c985e4285f5bec7e524d15fc4e1:

  perf: Export perf_event_sysfs_show() (2016-02-29 09:35:27 +0100)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-20160229

for you to fetch changes up to 575a02e00b11eecbbabcb1eb22eab4c68e91ae77:

  perf record: Ensure return non-zero rc when mmap fail (2016-02-29 12:44:15 -0300)

----------------------------------------------------------------
perf/core improvements and fixes:

User visible:

- Check existence of frontend/backed stalled cycles in 'perf stat' (Andi Kleen)

- Avoid installing .o files from tools/lib/ into the python extension (Jiri Olsa)

- Rename the tracepoint '/format' field that carries the syscall ID from 'nr',
  that is also the name of some syscalls arguments, to "__syscall_nr", to
  avoid having multiple fields with the same name, that was breaking the
  python script skeleton generator from perf.data files (Taeung Song)

- Support converting data from bpf events in 'perf data' (Wang Nan)

Infrastructure:

- Split libtraceevent's pevent_print_event() (Steven Rostedt)

- Librarize some 'perf record' bits to allow handling multiple perf.data
  files per session (Wang Nan)

- Ensure return non-zero rc when mmap fail in 'perf record' (Wang Nan)

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

----------------------------------------------------------------
Andi Kleen (1):
      perf stat: Check existence of frontend/backed stalled cycles

Jiri Olsa (1):
      perf tools: Fix python extension build

Steven Rostedt (1):
      tools lib traceevent: Split pevent_print_event() into specific functionality functions

Taeung Song (2):
      perf trace: Check and discard not only 'nr' but also '__syscall_nr'
      tracing/syscalls: Rename "/format" tracepoint field name "nr" to "__syscall_nr:

Wang Nan (6):
      perf data: Support converting data from bpf_perf_event_output()
      perf data: Explicitly set byte order for integer types
      perf record: Use WARN_ONCE to replace 'if' condition
      perf record: Extract synthesize code to record__synthesize()
      perf record: Introduce record__finish_output() to finish a perf.data
      perf record: Ensure return non-zero rc when mmap fail

 kernel/trace/trace_syscalls.c      |  16 ++--
 tools/lib/traceevent/event-parse.c | 136 +++++++++++++++++++++++-------
 tools/lib/traceevent/event-parse.h |  13 +++
 tools/perf/builtin-record.c        | 168 ++++++++++++++++++++++---------------
 tools/perf/builtin-stat.c          |  22 ++++-
 tools/perf/builtin-trace.c         |   8 +-
 tools/perf/util/data-convert-bt.c  | 118 +++++++++++++++++++++++++-
 tools/perf/util/setup.py           |   4 +
 8 files changed, 372 insertions(+), 113 deletions(-)

^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [GIT PULL 00/11] perf/core improvements and fixes
  2016-02-23 20:00 Arnaldo Carvalho de Melo
@ 2016-02-24  7:23 ` Ingo Molnar
  0 siblings, 0 replies; 70+ messages in thread
From: Ingo Molnar @ 2016-02-24  7:23 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Adrian Hunter, Andi Kleen,
	Daniel Bristot de Oliveira, David Ahern, Jiri Olsa, Juri Lelli,
	linux-rt-users, Namhyung Kim, Peter Zijlstra, Stephane Eranian,
	Steven Rostedt, Thomas Gleixner, Wang Nan,
	Arnaldo Carvalho de Melo


* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:

> Hi Ingo,
> 
> 	Please consider pulling, this is on top of the perf-core-for-mingo
> submitted recently,
> 
> - Arnaldo
> 
> The following changes since commit 03e0a7df3efd959e40cd7ff40b1fabddc234ec5a:
> 
>   perf tools: Introduce bpf-output event (2016-02-22 14:37:21 -0300)
> 
> are available in the git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-2
> 
> for you to fetch changes up to bea2400621836b028d82c3d6a74053921d70dbd7:
> 
>   perf tools: Remove strbuf_{remove,splice}() (2016-02-23 16:21:04 -0300)
> 
> ----------------------------------------------------------------
> perf/core improvements and fixes:
> 
> User visible:
> 
> - Don't stop PMU parsing on alias parse error, allowing the
>   addition of new sysfs PMU files without breaking old tools (Andi Kleen)
> 
> - Implement '%' operation in libtraceevent (Daniel Bristot de Oliveira)
> 
> - Allow specifying events via -e in 'perf mem record', also listing what events
>   can be specified via 'perf mem record -e list' (Jiri Olsa)
> 
> - Improve support to 'data_src', 'weight' and 'addr' fields in
>   'perf script' (Jiri Olsa)
> 
> Infrastructure:
> 
> - Export cacheline routines (Jiri Olsa)
> 
> - Remove strbuf_{remove,splice}(), dead code (Arnaldo Carvalho de Melo)
> 
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> ----------------------------------------------------------------
> Andi Kleen (1):
>       perf tools: Dont stop PMU parsing on alias parse error
> 
> Arnaldo Carvalho de Melo (2):
>       perf help: No need to use strbuf_remove()
>       perf tools: Remove strbuf_{remove,splice}()
> 
> Daniel Bristot de Oliveira (1):
>       tools lib traceevent: Implement '%' operation
> 
> Jiri Olsa (7):
>       perf tools: Make cl_address global
>       perf tools: Introduce cl_offset function
>       perf tools: Add monitored events array
>       perf mem: Add -e record option
>       perf tools: Use ARRAY_SIZE in mem sort display functions
>       perf script: Add data_src and weight column definitions
>       perf script: Display addr/data_src/weight columns for raw events
> 
>  tools/lib/traceevent/event-parse.c |  4 +++
>  tools/perf/builtin-help.c          |  3 +-
>  tools/perf/builtin-mem.c           | 74 +++++++++++++++++++++++++++++++++-----
>  tools/perf/builtin-script.c        | 23 +++++++++++-
>  tools/perf/util/Build              |  1 +
>  tools/perf/util/mem-events.c       | 51 ++++++++++++++++++++++++++
>  tools/perf/util/mem-events.h       | 22 ++++++++++++
>  tools/perf/util/pmu.c              | 15 ++++----
>  tools/perf/util/sort.c             | 15 ++------
>  tools/perf/util/sort.h             | 11 ++++++
>  tools/perf/util/strbuf.c           | 24 -------------
>  tools/perf/util/strbuf.h           |  2 --
>  12 files changed, 188 insertions(+), 57 deletions(-)
>  create mode 100644 tools/perf/util/mem-events.c
>  create mode 100644 tools/perf/util/mem-events.h

Pulled, thanks a lot Arnaldo!

	Ingo

^ permalink raw reply	[flat|nested] 70+ messages in thread

* [GIT PULL 00/11] perf/core improvements and fixes
@ 2016-02-23 20:00 Arnaldo Carvalho de Melo
  2016-02-24  7:23 ` Ingo Molnar
  0 siblings, 1 reply; 70+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-02-23 20:00 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
	Andi Kleen, Daniel Bristot de Oliveira, David Ahern, Jiri Olsa,
	Juri Lelli, linux-rt-users, Namhyung Kim, Peter Zijlstra,
	Stephane Eranian, Steven Rostedt, Thomas Gleixner, Wang Nan,
	Arnaldo Carvalho de Melo

Hi Ingo,

	Please consider pulling, this is on top of the perf-core-for-mingo
submitted recently,

- Arnaldo

The following changes since commit 03e0a7df3efd959e40cd7ff40b1fabddc234ec5a:

  perf tools: Introduce bpf-output event (2016-02-22 14:37:21 -0300)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-2

for you to fetch changes up to bea2400621836b028d82c3d6a74053921d70dbd7:

  perf tools: Remove strbuf_{remove,splice}() (2016-02-23 16:21:04 -0300)

----------------------------------------------------------------
perf/core improvements and fixes:

User visible:

- Don't stop PMU parsing on alias parse error, allowing the
  addition of new sysfs PMU files without breaking old tools (Andi Kleen)

- Implement '%' operation in libtraceevent (Daniel Bristot de Oliveira)

- Allow specifying events via -e in 'perf mem record', also listing what events
  can be specified via 'perf mem record -e list' (Jiri Olsa)

- Improve support to 'data_src', 'weight' and 'addr' fields in
  'perf script' (Jiri Olsa)

Infrastructure:

- Export cacheline routines (Jiri Olsa)

- Remove strbuf_{remove,splice}(), dead code (Arnaldo Carvalho de Melo)

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

----------------------------------------------------------------
Andi Kleen (1):
      perf tools: Dont stop PMU parsing on alias parse error

Arnaldo Carvalho de Melo (2):
      perf help: No need to use strbuf_remove()
      perf tools: Remove strbuf_{remove,splice}()

Daniel Bristot de Oliveira (1):
      tools lib traceevent: Implement '%' operation

Jiri Olsa (7):
      perf tools: Make cl_address global
      perf tools: Introduce cl_offset function
      perf tools: Add monitored events array
      perf mem: Add -e record option
      perf tools: Use ARRAY_SIZE in mem sort display functions
      perf script: Add data_src and weight column definitions
      perf script: Display addr/data_src/weight columns for raw events

 tools/lib/traceevent/event-parse.c |  4 +++
 tools/perf/builtin-help.c          |  3 +-
 tools/perf/builtin-mem.c           | 74 +++++++++++++++++++++++++++++++++-----
 tools/perf/builtin-script.c        | 23 +++++++++++-
 tools/perf/util/Build              |  1 +
 tools/perf/util/mem-events.c       | 51 ++++++++++++++++++++++++++
 tools/perf/util/mem-events.h       | 22 ++++++++++++
 tools/perf/util/pmu.c              | 15 ++++----
 tools/perf/util/sort.c             | 15 ++------
 tools/perf/util/sort.h             | 11 ++++++
 tools/perf/util/strbuf.c           | 24 -------------
 tools/perf/util/strbuf.h           |  2 --
 12 files changed, 188 insertions(+), 57 deletions(-)
 create mode 100644 tools/perf/util/mem-events.c
 create mode 100644 tools/perf/util/mem-events.h

^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [GIT PULL 00/11] perf/core improvements and fixes
  2016-01-12 17:59 Arnaldo Carvalho de Melo
@ 2016-01-13  9:37 ` Ingo Molnar
  0 siblings, 0 replies; 70+ messages in thread
From: Ingo Molnar @ 2016-01-13  9:37 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
	Andi Kleen, Andrew Morton, Andy Lutomirski, Bernd Petrovitsch,
	Borislav Petkov, Brendan Gregg, Chris J Arges, David Ahern,
	He Kuang, H. Peter Anvin, Jiri Olsa, Jiri Slaby, Josh Poimboeuf,
	Linus Torvalds, live-patching, Markus Trippelsdorf,
	Masami Hiramatsu, Michal Marek, Namhyung Kim, Pedro Alves,
	Peter Zijlstra, pi3orama, Stephane Eranian, Thomas Gleixner,
	Wang Nan, x86, Zefan Li


* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:

> From: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> Hi Ingo,
> 
> 	Please consider pulling,
> 
> - Arnaldo
> 
> The following changes since commit 0bd106d26dbe444160104b3153ca1652d2ab913b:
> 
>   Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent (2016-01-12 11:01:16 +0100)
> 
> are available in the git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo
> 
> for you to fetch changes up to 34b7b0f95d41d2351a080e774d71085171db90e6:
> 
>   perf tools: Fallback to srcdir/Documentation/tips.txt (2016-01-12 12:42:08 -0300)
> 
> ----------------------------------------------------------------
> perf/core improvements and fixes:
> 
> User visible new features:
> 
> - Add --buildid-all option to 'perf record' to avoid processing
>   samples, just collecting build-ids for _all_ the DSOs that appears
>   in PERF_RECORD_MMAP records (Namhyung Kim)
> 
> - Add some more usage tips to appear in the hists browser
>   (top & report) (Namhyung Kim, Andi Kleen)
> 
> - Fix mmap2 event allocation in synthesize code, where we were
>   allocating space just for PERF_RECORD_MMAP, the older variant,
>   which could lead to corner case problems (Wang Nan)
> 
> Developer stuff:
> 
> - Make list.h self-sufficient, removing one more reference to
>   kernel headers that lead to recent breakage when some rculist
>   change was made in the kernel sources. (Josh Poimboeuf)
> 
>   Add missing NORETURN define for parse-options.h in
>   tools/lib/subcmd (Josh Poimboeuf)
> 
> - Fallback to srcdir/Documentation/ when not finding tips.txt
>   elsewhere (Namhyung Kim)
> 
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> ----------------------------------------------------------------
> Jiri Olsa (1):
>       perf stat: Fix recort_usage typo
> 
> Josh Poimboeuf (3):
>       tools: Make list.h self-sufficient
>       tools: Fix formatting of the "make -C tools" help message
>       tools subcmd: Add missing NORETURN define for parse-options.h
> 
> Namhyung Kim (6):
>       perf record: Add --buildid-all option
>       perf tools: Add more usage tips
>       perf tools: Add file_only config option to strlist
>       perf tools: Set and pass DOCDIR to builtin-report.c
>       perf ui/tui: Print helpline message as is
>       perf tools: Fallback to srcdir/Documentation/tips.txt
> 
> Wang Nan (1):
>       perf tools: Fix mmap2 event allocation in synthesize code
> 
>  tools/Makefile                           |  32 +-
>  tools/include/linux/list.h               | 753 ++++++++++++++++++++++++++++++-
>  tools/lib/subcmd/parse-options.h         |   4 +
>  tools/perf/Build                         |   1 +
>  tools/perf/Documentation/perf-record.txt |   3 +
>  tools/perf/Documentation/tips.txt        |  15 +
>  tools/perf/builtin-record.c              |  26 +-
>  tools/perf/builtin-report.c              |  10 +-
>  tools/perf/builtin-stat.c                |   8 +-
>  tools/perf/config/Makefile               |   3 +
>  tools/perf/ui/browsers/hists.c           |   2 +-
>  tools/perf/util/event.c                  |   4 +-
>  tools/perf/util/strlist.c                |   8 +
>  tools/perf/util/strlist.h                |   9 +-
>  tools/perf/util/util.c                   |  11 +-
>  15 files changed, 847 insertions(+), 42 deletions(-)

Pulled into perf/urgent, thanks a lot Arnaldo!

	Ingo

^ permalink raw reply	[flat|nested] 70+ messages in thread

* [GIT PULL 00/11] perf/core improvements and fixes
@ 2016-01-12 17:59 Arnaldo Carvalho de Melo
  2016-01-13  9:37 ` Ingo Molnar
  0 siblings, 1 reply; 70+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-01-12 17:59 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
	Andi Kleen, Andrew Morton, Andy Lutomirski, Bernd Petrovitsch,
	Borislav Petkov, Brendan Gregg, Chris J Arges, David Ahern,
	He Kuang, H. Peter Anvin, Jiri Olsa, Jiri Slaby, Josh Poimboeuf,
	Linus Torvalds, live-patching, Markus Trippelsdorf,
	Masami Hiramatsu, Michal Marek, Namhyung Kim, Pedro Alves,
	Peter Zijlstra, pi3orama, Stephane Eranian, Thomas Gleixner,
	Wang Nan, x86, Zefan Li

From: Arnaldo Carvalho de Melo <acme@redhat.com>

Hi Ingo,

	Please consider pulling,

- Arnaldo

The following changes since commit 0bd106d26dbe444160104b3153ca1652d2ab913b:

  Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent (2016-01-12 11:01:16 +0100)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo

for you to fetch changes up to 34b7b0f95d41d2351a080e774d71085171db90e6:

  perf tools: Fallback to srcdir/Documentation/tips.txt (2016-01-12 12:42:08 -0300)

----------------------------------------------------------------
perf/core improvements and fixes:

User visible new features:

- Add --buildid-all option to 'perf record' to avoid processing
  samples, just collecting build-ids for _all_ the DSOs that appears
  in PERF_RECORD_MMAP records (Namhyung Kim)

- Add some more usage tips to appear in the hists browser
  (top & report) (Namhyung Kim, Andi Kleen)

- Fix mmap2 event allocation in synthesize code, where we were
  allocating space just for PERF_RECORD_MMAP, the older variant,
  which could lead to corner case problems (Wang Nan)

Developer stuff:

- Make list.h self-sufficient, removing one more reference to
  kernel headers that lead to recent breakage when some rculist
  change was made in the kernel sources. (Josh Poimboeuf)

  Add missing NORETURN define for parse-options.h in
  tools/lib/subcmd (Josh Poimboeuf)

- Fallback to srcdir/Documentation/ when not finding tips.txt
  elsewhere (Namhyung Kim)

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

----------------------------------------------------------------
Jiri Olsa (1):
      perf stat: Fix recort_usage typo

Josh Poimboeuf (3):
      tools: Make list.h self-sufficient
      tools: Fix formatting of the "make -C tools" help message
      tools subcmd: Add missing NORETURN define for parse-options.h

Namhyung Kim (6):
      perf record: Add --buildid-all option
      perf tools: Add more usage tips
      perf tools: Add file_only config option to strlist
      perf tools: Set and pass DOCDIR to builtin-report.c
      perf ui/tui: Print helpline message as is
      perf tools: Fallback to srcdir/Documentation/tips.txt

Wang Nan (1):
      perf tools: Fix mmap2 event allocation in synthesize code

 tools/Makefile                           |  32 +-
 tools/include/linux/list.h               | 753 ++++++++++++++++++++++++++++++-
 tools/lib/subcmd/parse-options.h         |   4 +
 tools/perf/Build                         |   1 +
 tools/perf/Documentation/perf-record.txt |   3 +
 tools/perf/Documentation/tips.txt        |  15 +
 tools/perf/builtin-record.c              |  26 +-
 tools/perf/builtin-report.c              |  10 +-
 tools/perf/builtin-stat.c                |   8 +-
 tools/perf/config/Makefile               |   3 +
 tools/perf/ui/browsers/hists.c           |   2 +-
 tools/perf/util/event.c                  |   4 +-
 tools/perf/util/strlist.c                |   8 +
 tools/perf/util/strlist.h                |   9 +-
 tools/perf/util/util.c                   |  11 +-
 15 files changed, 847 insertions(+), 42 deletions(-)

^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [GIT PULL 00/11] perf/core improvements and fixes
  2015-12-10 19:43 Arnaldo Carvalho de Melo
@ 2015-12-11  7:48 ` Ingo Molnar
  0 siblings, 0 replies; 70+ messages in thread
From: Ingo Molnar @ 2015-12-11  7:48 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
	Andi Kleen, David Ahern, Frederic Weisbecker, Jiri Olsa,
	Josh Poimboeuf, Martin Liska, Masami Hiramatsu, Namhyung Kim,
	Peter Zijlstra, Stephane Eranian


* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:

> From: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> Hi Ingo,
> 
> 	Please consider pulling,
> 
> - Arnaldo
> 
> The following changes since commit d18929e9fde30c4d57ae57eb9a7f6f10b5808ca1:
> 
>   Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-12-10 09:10:40 +0100)
> 
> are available in the git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo
> 
> for you to fetch changes up to e7a7865cc0da306542db0b9205cb0a467f59e33d:
> 
>   perf symbols: Fix dso__load_sym to put dso (2015-12-10 16:29:32 -0300)
> 
> ----------------------------------------------------------------
> perf/core refactorings and fixes:
> 
> Infrastructure:
> 
> - Revert "perf tools: Improve setting of gcc debug option", -Og is broken,
>   GCC PR created (Jiri Olsa)
> 
> - More reference count fixes (Masami Hiramatsu)
> 
> - Untangle browser setup (--stdio, --tui, etc) from argument checking,
>   prep work to move the usage() code out of tools/perf for use by
>   other tools/ living utilities (Namhyung Kim)
> 
> - Delete half-processed hist entries when exiting 'perf top' (Namhyung Kim)
> 
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (2):
>       perf top: Do show usage message when failing to create cpu/thread maps
>       Revert "perf tools: Improve setting of gcc debug option"
> 
> Masami Hiramatsu (2):
>       perf tools: Make perf_session__register_idle_thread drop the refcount
>       perf symbols: Fix dso__load_sym to put dso
> 
> Namhyung Kim (7):
>       perf annotate: Check argument before calling setup_browser()
>       perf annotate: Delay UI browser setup after initialization is done
>       perf kvm: Remove invocation of setup/exit_browser()
>       perf report: Check argument before calling setup_browser()
>       perf thread_map: Free strlist on constructor error path
>       perf tools: Get rid of exit_browser() from usage_with_options()
>       perf top: Delete half-processed hist entries when exit
> 
>  tools/perf/builtin-annotate.c   | 33 ++++++++++++++++-----------------
>  tools/perf/builtin-kvm.c        |  3 ---
>  tools/perf/builtin-report.c     | 21 ++++++++++-----------
>  tools/perf/builtin-top.c        |  9 ++++++---
>  tools/perf/config/Makefile      |  2 --
>  tools/perf/config/utilities.mak | 19 -------------------
>  tools/perf/util/hist.c          | 26 +++++++++++++++++++++++++-
>  tools/perf/util/parse-options.c |  3 ---
>  tools/perf/util/session.c       | 11 +++++++----
>  tools/perf/util/session.h       |  2 +-
>  tools/perf/util/symbol-elf.c    |  9 +++++++--
>  tools/perf/util/thread_map.c    |  1 +
>  12 files changed, 73 insertions(+), 66 deletions(-)

Pulled, thanks a lot Arnaldo!

	Ingo

^ permalink raw reply	[flat|nested] 70+ messages in thread

* [GIT PULL 00/11] perf/core improvements and fixes
@ 2015-12-10 19:43 Arnaldo Carvalho de Melo
  2015-12-11  7:48 ` Ingo Molnar
  0 siblings, 1 reply; 70+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-12-10 19:43 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
	Andi Kleen, David Ahern, Frederic Weisbecker, Jiri Olsa,
	Josh Poimboeuf, Martin Liska, Masami Hiramatsu, Namhyung Kim,
	Peter Zijlstra, Stephane Eranian

From: Arnaldo Carvalho de Melo <acme@redhat.com>

Hi Ingo,

	Please consider pulling,

- Arnaldo

The following changes since commit d18929e9fde30c4d57ae57eb9a7f6f10b5808ca1:

  Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-12-10 09:10:40 +0100)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo

for you to fetch changes up to e7a7865cc0da306542db0b9205cb0a467f59e33d:

  perf symbols: Fix dso__load_sym to put dso (2015-12-10 16:29:32 -0300)

----------------------------------------------------------------
perf/core refactorings and fixes:

Infrastructure:

- Revert "perf tools: Improve setting of gcc debug option", -Og is broken,
  GCC PR created (Jiri Olsa)

- More reference count fixes (Masami Hiramatsu)

- Untangle browser setup (--stdio, --tui, etc) from argument checking,
  prep work to move the usage() code out of tools/perf for use by
  other tools/ living utilities (Namhyung Kim)

- Delete half-processed hist entries when exiting 'perf top' (Namhyung Kim)

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

----------------------------------------------------------------
Arnaldo Carvalho de Melo (2):
      perf top: Do show usage message when failing to create cpu/thread maps
      Revert "perf tools: Improve setting of gcc debug option"

Masami Hiramatsu (2):
      perf tools: Make perf_session__register_idle_thread drop the refcount
      perf symbols: Fix dso__load_sym to put dso

Namhyung Kim (7):
      perf annotate: Check argument before calling setup_browser()
      perf annotate: Delay UI browser setup after initialization is done
      perf kvm: Remove invocation of setup/exit_browser()
      perf report: Check argument before calling setup_browser()
      perf thread_map: Free strlist on constructor error path
      perf tools: Get rid of exit_browser() from usage_with_options()
      perf top: Delete half-processed hist entries when exit

 tools/perf/builtin-annotate.c   | 33 ++++++++++++++++-----------------
 tools/perf/builtin-kvm.c        |  3 ---
 tools/perf/builtin-report.c     | 21 ++++++++++-----------
 tools/perf/builtin-top.c        |  9 ++++++---
 tools/perf/config/Makefile      |  2 --
 tools/perf/config/utilities.mak | 19 -------------------
 tools/perf/util/hist.c          | 26 +++++++++++++++++++++++++-
 tools/perf/util/parse-options.c |  3 ---
 tools/perf/util/session.c       | 11 +++++++----
 tools/perf/util/session.h       |  2 +-
 tools/perf/util/symbol-elf.c    |  9 +++++++--
 tools/perf/util/thread_map.c    |  1 +
 12 files changed, 73 insertions(+), 66 deletions(-)

^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [GIT PULL 00/11] perf/core improvements and fixes
  2015-12-09 16:51 Arnaldo Carvalho de Melo
@ 2015-12-10  8:12 ` Ingo Molnar
  0 siblings, 0 replies; 70+ messages in thread
From: Ingo Molnar @ 2015-12-10  8:12 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Adrian Hunter, David Binderman, Jiri Olsa,
	Josh Poimboeuf, Masami Hiramatsu, Namhyung Kim, Peter Zijlstra,
	Arnaldo Carvalho de Melo


* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:

> Hi Ingo,
> 
> 	Please consider pulling,
> 
> - Arnaldo
> 
> The following changes since commit a30c99a0beb3030ba42dab38cad6273cd090805d:
> 
>   Merge branch 'perf/urgent' into perf/core, to pick up fixes (2015-12-08 06:06:20 +0100)
> 
> are available in the git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo
> 
> for you to fetch changes up to 0a4bb5da957b83ece8b4723c5bac7a5d29fbfb33:
> 
>   perf tools: Move cmd_version() to builtin-version.c (2015-12-09 13:42:03 -0300)
> 
> ----------------------------------------------------------------
> perf/core improvements and fixes:
> 
> User visible:
> 
> - Change default selection TUI background color to yellow (Ingo Molnar)
> 
> Infrastructure:
> 
> - Start paving the way to reuse some cmdline functions with other tools/
>   living utilities (Josh Poimboeuf)
> 
> - Reference count fixes using the refcount debugger, unleaking some objects
>   (Masami Hiramatsu)
> 
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> ----------------------------------------------------------------
> Ingo Molnar (1):
>       perf tui: Change default selection background color to yellow
> 
> Josh Poimboeuf (4):
>       perf tools: Remove unused pager_use_color variable
>       perf tools: Move term functions out of util.c
>       perf tools: Save cmdline arguments earlier
>       perf tools: Move cmd_version() to builtin-version.c
> 
> Masami Hiramatsu (6):
>       perf tools: Fix map_groups__clone to put cloned map
>       perf stat: Fix cmd_stat to release cpu_map
>       perf hists: Fix hists_evsel to release hists
>       perf tools: Fix maps__fixup_overlappings to put used maps
>       perf machine: Fix machine.vmlinux_maps to make sure to clear the old one
>       perf tools: Fix write_numa_topology to put cpu_map instead of free
> 
>  tools/perf/Build                |  1 +
>  tools/perf/builtin-stat.c       |  9 +++++++++
>  tools/perf/builtin-version.c    | 10 ++++++++++
>  tools/perf/perf.c               |  1 +
>  tools/perf/ui/browser.c         |  2 +-
>  tools/perf/util/Build           |  2 +-
>  tools/perf/util/cache.h         |  1 -
>  tools/perf/util/color.c         |  2 +-
>  tools/perf/util/env.c           |  9 ---------
>  tools/perf/util/environment.c   |  8 --------
>  tools/perf/util/header.c        |  2 +-
>  tools/perf/util/help.c          |  7 -------
>  tools/perf/util/hist.c          | 10 +++++++++-
>  tools/perf/util/machine.c       |  5 +++++
>  tools/perf/util/map.c           |  3 +++
>  tools/perf/util/parse-options.c |  2 --
>  tools/perf/util/term.c          | 35 +++++++++++++++++++++++++++++++++++
>  tools/perf/util/term.h          | 10 ++++++++++
>  tools/perf/util/util.c          | 34 ----------------------------------
>  tools/perf/util/util.h          |  4 +---
>  20 files changed, 88 insertions(+), 69 deletions(-)
>  create mode 100644 tools/perf/builtin-version.c
>  delete mode 100644 tools/perf/util/environment.c
>  create mode 100644 tools/perf/util/term.c
>  create mode 100644 tools/perf/util/term.h

Pulled, thanks a lot Arnaldo!

	Ingo

^ permalink raw reply	[flat|nested] 70+ messages in thread

* [GIT PULL 00/11] perf/core improvements and fixes
@ 2015-12-09 16:51 Arnaldo Carvalho de Melo
  2015-12-10  8:12 ` Ingo Molnar
  0 siblings, 1 reply; 70+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-12-09 16:51 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
	David Binderman, Jiri Olsa, Josh Poimboeuf, Masami Hiramatsu,
	Namhyung Kim, Peter Zijlstra, Arnaldo Carvalho de Melo

Hi Ingo,

	Please consider pulling,

- Arnaldo

The following changes since commit a30c99a0beb3030ba42dab38cad6273cd090805d:

  Merge branch 'perf/urgent' into perf/core, to pick up fixes (2015-12-08 06:06:20 +0100)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo

for you to fetch changes up to 0a4bb5da957b83ece8b4723c5bac7a5d29fbfb33:

  perf tools: Move cmd_version() to builtin-version.c (2015-12-09 13:42:03 -0300)

----------------------------------------------------------------
perf/core improvements and fixes:

User visible:

- Change default selection TUI background color to yellow (Ingo Molnar)

Infrastructure:

- Start paving the way to reuse some cmdline functions with other tools/
  living utilities (Josh Poimboeuf)

- Reference count fixes using the refcount debugger, unleaking some objects
  (Masami Hiramatsu)

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

----------------------------------------------------------------
Ingo Molnar (1):
      perf tui: Change default selection background color to yellow

Josh Poimboeuf (4):
      perf tools: Remove unused pager_use_color variable
      perf tools: Move term functions out of util.c
      perf tools: Save cmdline arguments earlier
      perf tools: Move cmd_version() to builtin-version.c

Masami Hiramatsu (6):
      perf tools: Fix map_groups__clone to put cloned map
      perf stat: Fix cmd_stat to release cpu_map
      perf hists: Fix hists_evsel to release hists
      perf tools: Fix maps__fixup_overlappings to put used maps
      perf machine: Fix machine.vmlinux_maps to make sure to clear the old one
      perf tools: Fix write_numa_topology to put cpu_map instead of free

 tools/perf/Build                |  1 +
 tools/perf/builtin-stat.c       |  9 +++++++++
 tools/perf/builtin-version.c    | 10 ++++++++++
 tools/perf/perf.c               |  1 +
 tools/perf/ui/browser.c         |  2 +-
 tools/perf/util/Build           |  2 +-
 tools/perf/util/cache.h         |  1 -
 tools/perf/util/color.c         |  2 +-
 tools/perf/util/env.c           |  9 ---------
 tools/perf/util/environment.c   |  8 --------
 tools/perf/util/header.c        |  2 +-
 tools/perf/util/help.c          |  7 -------
 tools/perf/util/hist.c          | 10 +++++++++-
 tools/perf/util/machine.c       |  5 +++++
 tools/perf/util/map.c           |  3 +++
 tools/perf/util/parse-options.c |  2 --
 tools/perf/util/term.c          | 35 +++++++++++++++++++++++++++++++++++
 tools/perf/util/term.h          | 10 ++++++++++
 tools/perf/util/util.c          | 34 ----------------------------------
 tools/perf/util/util.h          |  4 +---
 20 files changed, 88 insertions(+), 69 deletions(-)
 create mode 100644 tools/perf/builtin-version.c
 delete mode 100644 tools/perf/util/environment.c
 create mode 100644 tools/perf/util/term.c
 create mode 100644 tools/perf/util/term.h

^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [GIT PULL 00/11] perf/core improvements and fixes
  2015-11-06 20:54 Arnaldo Carvalho de Melo
@ 2015-11-08  7:24 ` Ingo Molnar
  0 siblings, 0 replies; 70+ messages in thread
From: Ingo Molnar @ 2015-11-08  7:24 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Adrian Hunter, Alexei Starovoitov, Andi Kleen,
	David Ahern, He Kuang, Jiri Olsa, Kan Liang, Masami Hiramatsu,
	Namhyung Kim, Peter Zijlstra, pi3orama, Wang Nan, Zefan Li,
	Arnaldo Carvalho de Melo


* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:

> Hi Ingo,
> 
> 	Please consider pulling, this is on top of the perf-core-for-mingo tag,
> that is outstanding.
> 
> Best regards,
> 
> - Arnaldo
> 
> The following changes since commit 0014de172d228e450377d1fd079d94e67128d27f:
> 
>   perf sched latency: Fix thread pid reuse issue (2015-11-05 12:51:00 -0300)
> 
> are available in the git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-2
> 
> for you to fetch changes up to 345c99a303e1d97b407bf99190314a878d59ca92:
> 
>   perf test: Do not be case sensitive when searching for matching tests (2015-11-06 17:50:04 -0300)
> 
> ----------------------------------------------------------------
> perf/core improvements and fixes:
> 
> - libbpf error reporting improvements, using a strerror interface to
>   more precisely tell the user about problems with the provided
>   scriptlet, be it in C or as a ready made object file (Wang Nan)
> 
> - Do not be case sensitive when searching for matching 'perf test'
>   entries (Arnaldo Carvalho de Melo)
> 
> - Inform the user about objdump failures in 'perf annotate' (Andi Kleen)
> 
> Infrastructure:
> 
> - Improve the LLVM 'perf test' entry, introduce new ones for
>   BPF and kbuild to check the environment used by clang to
>   compile .c scriptlets (Wang Nan)
> 
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> ----------------------------------------------------------------
> Andi Kleen (1):
>       perf annotate: Inform the user about objdump failures in --stdio
> 
> Arnaldo Carvalho de Melo (1):
>       perf test: Do not be case sensitive when searching for matching tests
> 
> Jiri Olsa (1):
>       perf stat: Make stat options global
> 
> Masami Hiramatsu (1):
>       perf probe: Cleanup find_perf_probe_point_from_map to reduce redundancy
> 
> Wang Nan (7):
>       bpf tools: Improve libbpf error reporting
>       bpf tools: Add new API bpf_object__get_kversion()
>       perf tools: Make fetch_kernel_version() publicly available
>       perf bpf: Improve BPF related error messages
>       perf test: Enhance the LLVM test: update basic BPF test program
>       perf test: Enhance the LLVM tests: add kbuild test
>       perf test: Add 'perf test BPF'
> 
>  tools/lib/bpf/libbpf.c                    | 167 +++++++++++++++++-------
>  tools/lib/bpf/libbpf.h                    |  21 +++
>  tools/perf/builtin-stat.c                 | 163 +++++++++++------------
>  tools/perf/tests/Build                    |  17 ++-
>  tools/perf/tests/bpf-script-example.c     |   4 +
>  tools/perf/tests/bpf-script-test-kbuild.c |  21 +++
>  tools/perf/tests/bpf.c                    | 209 ++++++++++++++++++++++++++++++
>  tools/perf/tests/builtin-test.c           |   6 +-
>  tools/perf/tests/llvm.c                   | 137 +++++++++++++++-----
>  tools/perf/tests/llvm.h                   |  18 +++
>  tools/perf/tests/tests.h                  |   1 +
>  tools/perf/util/annotate.c                |  20 ++-
>  tools/perf/util/bpf-loader.c              | 139 +++++++++++++++++---
>  tools/perf/util/bpf-loader.h              |  33 +++++
>  tools/perf/util/llvm-utils.c              |  49 +++----
>  tools/perf/util/parse-events.c            |  11 +-
>  tools/perf/util/probe-event.c             |   7 +-
>  tools/perf/util/util.c                    |  30 +++++
>  tools/perf/util/util.h                    |   8 ++
>  19 files changed, 836 insertions(+), 225 deletions(-)
>  create mode 100644 tools/perf/tests/bpf-script-test-kbuild.c
>  create mode 100644 tools/perf/tests/bpf.c
>  create mode 100644 tools/perf/tests/llvm.h

Pulled into perf/urgent, thanks a lot Arnaldo!

	Ingo

^ permalink raw reply	[flat|nested] 70+ messages in thread

* [GIT PULL 00/11] perf/core improvements and fixes
@ 2015-11-06 20:54 Arnaldo Carvalho de Melo
  2015-11-08  7:24 ` Ingo Molnar
  0 siblings, 1 reply; 70+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-11-06 20:54 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
	Alexei Starovoitov, Andi Kleen, David Ahern, He Kuang, Jiri Olsa,
	Kan Liang, Masami Hiramatsu, Namhyung Kim, Peter Zijlstra,
	pi3orama, Wang Nan, Zefan Li, Arnaldo Carvalho de Melo

Hi Ingo,

	Please consider pulling, this is on top of the perf-core-for-mingo tag,
that is outstanding.

Best regards,

- Arnaldo

The following changes since commit 0014de172d228e450377d1fd079d94e67128d27f:

  perf sched latency: Fix thread pid reuse issue (2015-11-05 12:51:00 -0300)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-2

for you to fetch changes up to 345c99a303e1d97b407bf99190314a878d59ca92:

  perf test: Do not be case sensitive when searching for matching tests (2015-11-06 17:50:04 -0300)

----------------------------------------------------------------
perf/core improvements and fixes:

- libbpf error reporting improvements, using a strerror interface to
  more precisely tell the user about problems with the provided
  scriptlet, be it in C or as a ready made object file (Wang Nan)

- Do not be case sensitive when searching for matching 'perf test'
  entries (Arnaldo Carvalho de Melo)

- Inform the user about objdump failures in 'perf annotate' (Andi Kleen)

Infrastructure:

- Improve the LLVM 'perf test' entry, introduce new ones for
  BPF and kbuild to check the environment used by clang to
  compile .c scriptlets (Wang Nan)

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

----------------------------------------------------------------
Andi Kleen (1):
      perf annotate: Inform the user about objdump failures in --stdio

Arnaldo Carvalho de Melo (1):
      perf test: Do not be case sensitive when searching for matching tests

Jiri Olsa (1):
      perf stat: Make stat options global

Masami Hiramatsu (1):
      perf probe: Cleanup find_perf_probe_point_from_map to reduce redundancy

Wang Nan (7):
      bpf tools: Improve libbpf error reporting
      bpf tools: Add new API bpf_object__get_kversion()
      perf tools: Make fetch_kernel_version() publicly available
      perf bpf: Improve BPF related error messages
      perf test: Enhance the LLVM test: update basic BPF test program
      perf test: Enhance the LLVM tests: add kbuild test
      perf test: Add 'perf test BPF'

 tools/lib/bpf/libbpf.c                    | 167 +++++++++++++++++-------
 tools/lib/bpf/libbpf.h                    |  21 +++
 tools/perf/builtin-stat.c                 | 163 +++++++++++------------
 tools/perf/tests/Build                    |  17 ++-
 tools/perf/tests/bpf-script-example.c     |   4 +
 tools/perf/tests/bpf-script-test-kbuild.c |  21 +++
 tools/perf/tests/bpf.c                    | 209 ++++++++++++++++++++++++++++++
 tools/perf/tests/builtin-test.c           |   6 +-
 tools/perf/tests/llvm.c                   | 137 +++++++++++++++-----
 tools/perf/tests/llvm.h                   |  18 +++
 tools/perf/tests/tests.h                  |   1 +
 tools/perf/util/annotate.c                |  20 ++-
 tools/perf/util/bpf-loader.c              | 139 +++++++++++++++++---
 tools/perf/util/bpf-loader.h              |  33 +++++
 tools/perf/util/llvm-utils.c              |  49 +++----
 tools/perf/util/parse-events.c            |  11 +-
 tools/perf/util/probe-event.c             |   7 +-
 tools/perf/util/util.c                    |  30 +++++
 tools/perf/util/util.h                    |   8 ++
 19 files changed, 836 insertions(+), 225 deletions(-)
 create mode 100644 tools/perf/tests/bpf-script-test-kbuild.c
 create mode 100644 tools/perf/tests/bpf.c
 create mode 100644 tools/perf/tests/llvm.h

^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [GIT PULL 00/11] perf/core improvements and fixes
  2015-07-06 15:41 ` Arnaldo Carvalho de Melo
@ 2015-07-06 15:47   ` Ingo Molnar
  -1 siblings, 0 replies; 70+ messages in thread
From: Ingo Molnar @ 2015-07-06 15:47 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Adrian Hunter, Borislav Petkov, David Ahern,
	Don Zickus, Frederic Weisbecker, Jiri Olsa, Julia Lawall,
	kernel-janitors, Markus Elfring, Masami Hiramatsu, Namhyung Kim,
	Peter Zijlstra, Stephane Eranian, Arnaldo Carvalho de Melo


* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:

> Hi Ingo,
> 
> 	Please consider pulling,
> 
> - Arnaldo
> 
> The following changes since commit d2d61ed55f8375a10ff606e83e2196880a775fb4:
> 
>   Merge branch 'perf/rbtree_copy' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent (2015-07-06 09:24:41 +0200)
> 
> are available in the git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo
> 
> for you to fetch changes up to ab85785aa13c36440a91a8e9f7616357de411a1f:
> 
>   tools lib api debugfs: Check for tracefs when reporting errors (2015-07-06 12:22:14 -0300)
> 
> ----------------------------------------------------------------
> perf/core improvements and fixes:
> 
> User visible:
> 
> - Take tracefs into account when reporting errors about accessing
>   tracepoint information in tools like 'perf trace' (Arnaldo Carvalho de Melo)
> 
> - Let user have timestamps with per-thread recording in 'perf record' (Adrian Hunter)
> 
> Infrastructure:
> 
> - Introduce series of functions to build event filters so that we
>   can set them in just one ioctl call, useful to set up common_pid,
>   raw_syscalls:sys_{enter,exit}'s "id" filters to use with
>   'perf trace' (Arnaldo Carvalho de Melo)
> 
> - Delete an unnecessary check before calling strfilter__delete() (Markus Elfring)
> 
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> ----------------------------------------------------------------
> Adrian Hunter (1):
>       perf record: Let user have timestamps with per-thread recording
> 
> Arnaldo Carvalho de Melo (9):
>       perf tools: Asprintf like functions to format integer filter expression
>       perf trace: Remember what are the syscalls tracepoint evsels
>       perf trace: Store the syscall ids for the event qualifiers in a table
>       perf evsel: Rename set_filter to apply_filter
>       perf evsel: Introduce set_filter method
>       perf evlist: Make perf_evlist__set_filter use perf_evsel__set_filter
>       perf evsel: Introduce append_filter() method
>       perf trace: Use event filters for the event qualifier list
>       tools lib api debugfs: Check for tracefs when reporting errors
> 
> Markus Elfring (1):
>       perf probe: Delete an unnecessary check before the function call "strfilter__delete"
> 
>  tools/lib/api/fs/debugfs.c     |  15 +++-
>  tools/perf/builtin-probe.c     |   3 +-
>  tools/perf/builtin-record.c    |   4 +-
>  tools/perf/builtin-trace.c     | 178 ++++++++++++++++++++++++++---------------
>  tools/perf/perf.h              |   1 +
>  tools/perf/util/evlist.c       |   6 +-
>  tools/perf/util/evsel.c        |  37 ++++++++-
>  tools/perf/util/evsel.h        |   7 +-
>  tools/perf/util/parse-events.c |   3 +-
>  tools/perf/util/string.c       |  39 +++++++++
>  tools/perf/util/util.h         |  12 +++
>  11 files changed, 224 insertions(+), 81 deletions(-)

Pulled, thanks a lot Arnaldo!

	Ingo

^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [GIT PULL 00/11] perf/core improvements and fixes
@ 2015-07-06 15:47   ` Ingo Molnar
  0 siblings, 0 replies; 70+ messages in thread
From: Ingo Molnar @ 2015-07-06 15:47 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Adrian Hunter, Borislav Petkov, David Ahern,
	Don Zickus, Frederic Weisbecker, Jiri Olsa, Julia Lawall,
	kernel-janitors, Markus Elfring, Masami Hiramatsu, Namhyung Kim,
	Peter Zijlstra, Stephane Eranian, Arnaldo Carvalho de Melo


* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:

> Hi Ingo,
> 
> 	Please consider pulling,
> 
> - Arnaldo
> 
> The following changes since commit d2d61ed55f8375a10ff606e83e2196880a775fb4:
> 
>   Merge branch 'perf/rbtree_copy' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent (2015-07-06 09:24:41 +0200)
> 
> are available in the git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo
> 
> for you to fetch changes up to ab85785aa13c36440a91a8e9f7616357de411a1f:
> 
>   tools lib api debugfs: Check for tracefs when reporting errors (2015-07-06 12:22:14 -0300)
> 
> ----------------------------------------------------------------
> perf/core improvements and fixes:
> 
> User visible:
> 
> - Take tracefs into account when reporting errors about accessing
>   tracepoint information in tools like 'perf trace' (Arnaldo Carvalho de Melo)
> 
> - Let user have timestamps with per-thread recording in 'perf record' (Adrian Hunter)
> 
> Infrastructure:
> 
> - Introduce series of functions to build event filters so that we
>   can set them in just one ioctl call, useful to set up common_pid,
>   raw_syscalls:sys_{enter,exit}'s "id" filters to use with
>   'perf trace' (Arnaldo Carvalho de Melo)
> 
> - Delete an unnecessary check before calling strfilter__delete() (Markus Elfring)
> 
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> ----------------------------------------------------------------
> Adrian Hunter (1):
>       perf record: Let user have timestamps with per-thread recording
> 
> Arnaldo Carvalho de Melo (9):
>       perf tools: Asprintf like functions to format integer filter expression
>       perf trace: Remember what are the syscalls tracepoint evsels
>       perf trace: Store the syscall ids for the event qualifiers in a table
>       perf evsel: Rename set_filter to apply_filter
>       perf evsel: Introduce set_filter method
>       perf evlist: Make perf_evlist__set_filter use perf_evsel__set_filter
>       perf evsel: Introduce append_filter() method
>       perf trace: Use event filters for the event qualifier list
>       tools lib api debugfs: Check for tracefs when reporting errors
> 
> Markus Elfring (1):
>       perf probe: Delete an unnecessary check before the function call "strfilter__delete"
> 
>  tools/lib/api/fs/debugfs.c     |  15 +++-
>  tools/perf/builtin-probe.c     |   3 +-
>  tools/perf/builtin-record.c    |   4 +-
>  tools/perf/builtin-trace.c     | 178 ++++++++++++++++++++++++++---------------
>  tools/perf/perf.h              |   1 +
>  tools/perf/util/evlist.c       |   6 +-
>  tools/perf/util/evsel.c        |  37 ++++++++-
>  tools/perf/util/evsel.h        |   7 +-
>  tools/perf/util/parse-events.c |   3 +-
>  tools/perf/util/string.c       |  39 +++++++++
>  tools/perf/util/util.h         |  12 +++
>  11 files changed, 224 insertions(+), 81 deletions(-)

Pulled, thanks a lot Arnaldo!

	Ingo

^ permalink raw reply	[flat|nested] 70+ messages in thread

* [GIT PULL 00/11] perf/core improvements and fixes
@ 2015-07-06 15:41 ` Arnaldo Carvalho de Melo
  0 siblings, 0 replies; 70+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-07-06 15:41 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, Julia Lawall, kernel-janitors, Markus Elfring,
	Masami Hiramatsu, Namhyung Kim, Peter Zijlstra, Stephane Eranian,
	Arnaldo Carvalho de Melo

Hi Ingo,

	Please consider pulling,

- Arnaldo

The following changes since commit d2d61ed55f8375a10ff606e83e2196880a775fb4:

  Merge branch 'perf/rbtree_copy' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent (2015-07-06 09:24:41 +0200)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo

for you to fetch changes up to ab85785aa13c36440a91a8e9f7616357de411a1f:

  tools lib api debugfs: Check for tracefs when reporting errors (2015-07-06 12:22:14 -0300)

----------------------------------------------------------------
perf/core improvements and fixes:

User visible:

- Take tracefs into account when reporting errors about accessing
  tracepoint information in tools like 'perf trace' (Arnaldo Carvalho de Melo)

- Let user have timestamps with per-thread recording in 'perf record' (Adrian Hunter)

Infrastructure:

- Introduce series of functions to build event filters so that we
  can set them in just one ioctl call, useful to set up common_pid,
  raw_syscalls:sys_{enter,exit}'s "id" filters to use with
  'perf trace' (Arnaldo Carvalho de Melo)

- Delete an unnecessary check before calling strfilter__delete() (Markus Elfring)

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

----------------------------------------------------------------
Adrian Hunter (1):
      perf record: Let user have timestamps with per-thread recording

Arnaldo Carvalho de Melo (9):
      perf tools: Asprintf like functions to format integer filter expression
      perf trace: Remember what are the syscalls tracepoint evsels
      perf trace: Store the syscall ids for the event qualifiers in a table
      perf evsel: Rename set_filter to apply_filter
      perf evsel: Introduce set_filter method
      perf evlist: Make perf_evlist__set_filter use perf_evsel__set_filter
      perf evsel: Introduce append_filter() method
      perf trace: Use event filters for the event qualifier list
      tools lib api debugfs: Check for tracefs when reporting errors

Markus Elfring (1):
      perf probe: Delete an unnecessary check before the function call "strfilter__delete"

 tools/lib/api/fs/debugfs.c     |  15 +++-
 tools/perf/builtin-probe.c     |   3 +-
 tools/perf/builtin-record.c    |   4 +-
 tools/perf/builtin-trace.c     | 178 ++++++++++++++++++++++++++---------------
 tools/perf/perf.h              |   1 +
 tools/perf/util/evlist.c       |   6 +-
 tools/perf/util/evsel.c        |  37 ++++++++-
 tools/perf/util/evsel.h        |   7 +-
 tools/perf/util/parse-events.c |   3 +-
 tools/perf/util/string.c       |  39 +++++++++
 tools/perf/util/util.h         |  12 +++
 11 files changed, 224 insertions(+), 81 deletions(-)

^ permalink raw reply	[flat|nested] 70+ messages in thread

* [GIT PULL 00/11] perf/core improvements and fixes
@ 2015-07-06 15:41 ` Arnaldo Carvalho de Melo
  0 siblings, 0 replies; 70+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-07-06 15:41 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, Julia Lawall, kernel-janitors, Markus Elfring,
	Masami Hiramatsu, Namhyung Kim, Peter Zijlstra, Stephane Eranian,
	Arnaldo Carvalho de Melo

Hi Ingo,

	Please consider pulling,

- Arnaldo

The following changes since commit d2d61ed55f8375a10ff606e83e2196880a775fb4:

  Merge branch 'perf/rbtree_copy' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent (2015-07-06 09:24:41 +0200)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo

for you to fetch changes up to ab85785aa13c36440a91a8e9f7616357de411a1f:

  tools lib api debugfs: Check for tracefs when reporting errors (2015-07-06 12:22:14 -0300)

----------------------------------------------------------------
perf/core improvements and fixes:

User visible:

- Take tracefs into account when reporting errors about accessing
  tracepoint information in tools like 'perf trace' (Arnaldo Carvalho de Melo)

- Let user have timestamps with per-thread recording in 'perf record' (Adrian Hunter)

Infrastructure:

- Introduce series of functions to build event filters so that we
  can set them in just one ioctl call, useful to set up common_pid,
  raw_syscalls:sys_{enter,exit}'s "id" filters to use with
  'perf trace' (Arnaldo Carvalho de Melo)

- Delete an unnecessary check before calling strfilter__delete() (Markus Elfring)

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

----------------------------------------------------------------
Adrian Hunter (1):
      perf record: Let user have timestamps with per-thread recording

Arnaldo Carvalho de Melo (9):
      perf tools: Asprintf like functions to format integer filter expression
      perf trace: Remember what are the syscalls tracepoint evsels
      perf trace: Store the syscall ids for the event qualifiers in a table
      perf evsel: Rename set_filter to apply_filter
      perf evsel: Introduce set_filter method
      perf evlist: Make perf_evlist__set_filter use perf_evsel__set_filter
      perf evsel: Introduce append_filter() method
      perf trace: Use event filters for the event qualifier list
      tools lib api debugfs: Check for tracefs when reporting errors

Markus Elfring (1):
      perf probe: Delete an unnecessary check before the function call "strfilter__delete"

 tools/lib/api/fs/debugfs.c     |  15 +++-
 tools/perf/builtin-probe.c     |   3 +-
 tools/perf/builtin-record.c    |   4 +-
 tools/perf/builtin-trace.c     | 178 ++++++++++++++++++++++++++---------------
 tools/perf/perf.h              |   1 +
 tools/perf/util/evlist.c       |   6 +-
 tools/perf/util/evsel.c        |  37 ++++++++-
 tools/perf/util/evsel.h        |   7 +-
 tools/perf/util/parse-events.c |   3 +-
 tools/perf/util/string.c       |  39 +++++++++
 tools/perf/util/util.h         |  12 +++
 11 files changed, 224 insertions(+), 81 deletions(-)

^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [GIT PULL 00/11] perf/core improvements and fixes
  2015-06-19 21:58 Arnaldo Carvalho de Melo
@ 2015-06-19 23:12 ` Ingo Molnar
  0 siblings, 0 replies; 70+ messages in thread
From: Ingo Molnar @ 2015-06-19 23:12 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Adrian Hunter, Andi Kleen, Borislav Petkov,
	David Ahern, Don Zickus, Frederic Weisbecker, Jiri Olsa,
	Kan Liang, kernel-team, Martin Liska, Namhyung Kim,
	Paul Mackerras, Peter Zijlstra, Stephane Eranian,
	Yannick Brosseau, Ying Huang, Arnaldo Carvalho de Melo


* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:

> Hi Ingo,
> 
> 	Please consider pulling,
> 
> - Arnaldo
> 
> The following changes since commit 79928928c5a27d58ae48285d2a3f7aa835db7547:
> 
>   Merge tag 'perf-core-for-mingo-2' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-06-18 09:40:46 +0200)
> 
> are available in the git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo
> 
> for you to fetch changes up to 9d9cad763ca79dd3697e9f2d1df648e37496582b:
> 
>   perf tools: Configurable per thread proc map processing time out (2015-06-19 18:27:13 -0300)
> 
> ----------------------------------------------------------------
> perf/core improvements and fixes:
> 
> User visible:
> 
> - Replace CTRL+z with 'f' as hotkey for enable/disable events (Arnaldo Carvalho de Melo)
> 
> - Do not exit when 'f' is pressed in 'report' mode (Arnaldo Carvalho de Melo)
> 
> - Tell the user how to unfreeze events after pressing 'f' in 'perf top' (Arnaldo Carvalho de Melo)
> 
> - React to unassigned hotkey pressing in 'top/report' (Arnaldo Carvalho de Melo)
> 
> - Display total number of samples with --show-total-period in 'annotate' (Martin Liška)
> 
> - Add timeout to make procfs mmap processing more robust (Kan Liang)
> 
> - Fix sort__sym_cmp to also compare end of symbol (Yannick Brosseau)
> 
> Infrastructure:
> 
> - Ensure thread-stack is flushed (Adrian Hunter)
> 
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> ----------------------------------------------------------------
> Adrian Hunter (1):
>       perf tools: Ensure thread-stack is flushed
> 
> Arnaldo Carvalho de Melo (6):
>       perf annotate: Rename source_line_percent to source_line_samples
>       perf top: Replace CTRL+z with 'f' as hotkey for enable/disable events
>       perf hists browser: Do not exit when 'f' is pressed in 'report' mode
>       perf hists browser: Honour the help line provided by builtin-{top,report}.c
>       perf top: Tell the user how to unfreeze events after pressing 'f'
>       perf hists browser: React to unassigned hotkey pressing
> 
> Kan Liang (2):
>       perf tools: Add time out to force stop proc map processing
>       perf tools: Configurable per thread proc map processing time out
> 
> Martin Liška (1):
>       perf annotate: Display total number of samples with --show-total-period
> 
> Yannick Brosseau (1):
>       perf report: Fix sort__sym_cmp to also compare end of symbol
> 
>  include/uapi/linux/perf_event.h          |  4 +++
>  tools/perf/Documentation/perf-kvm.txt    |  6 ++++
>  tools/perf/Documentation/perf-record.txt |  5 +++
>  tools/perf/Documentation/perf-top.txt    |  6 ++++
>  tools/perf/Documentation/perf-trace.txt  |  5 +++
>  tools/perf/builtin-annotate.c            |  2 ++
>  tools/perf/builtin-kvm.c                 |  5 ++-
>  tools/perf/builtin-record.c              |  6 +++-
>  tools/perf/builtin-top.c                 | 15 ++++++--
>  tools/perf/builtin-trace.c               |  6 +++-
>  tools/perf/perf.h                        |  1 +
>  tools/perf/tests/code-reading.c          |  2 +-
>  tools/perf/tests/dwarf-unwind.c          |  2 +-
>  tools/perf/tests/mmap-thread-lookup.c    |  4 +--
>  tools/perf/ui/browsers/annotate.c        | 60 +++++++++++++++++++++++---------
>  tools/perf/ui/browsers/hists.c           | 15 ++++----
>  tools/perf/util/annotate.c               | 52 ++++++++++++++++++---------
>  tools/perf/util/annotate.h               |  7 ++--
>  tools/perf/util/event.c                  | 46 +++++++++++++++++++-----
>  tools/perf/util/event.h                  | 10 ++++--
>  tools/perf/util/machine.c                | 28 +++++++++++++--
>  tools/perf/util/machine.h                | 12 +++++--
>  tools/perf/util/session.c                | 33 ++++++++++++++++++
>  tools/perf/util/sort.c                   |  8 ++---
>  tools/perf/util/thread-stack.c           | 18 +++++++---
>  tools/perf/util/thread-stack.h           |  1 +
>  26 files changed, 278 insertions(+), 81 deletions(-)

Pulled, thanks a lot Arnaldo!

	Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
Please read the FAQ at  http://www.tux.org/lkml/

^ permalink raw reply	[flat|nested] 70+ messages in thread

* [GIT PULL 00/11] perf/core improvements and fixes
@ 2015-06-19 21:58 Arnaldo Carvalho de Melo
  2015-06-19 23:12 ` Ingo Molnar
  0 siblings, 1 reply; 70+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-06-19 21:58 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
	Andi Kleen, Borislav Petkov, David Ahern, Don Zickus,
	Frederic Weisbecker, Jiri Olsa, Kan Liang, kernel-team,
	Martin Liska, Namhyung Kim, Paul Mackerras, Peter Zijlstra,
	Stephane Eranian, Yannick Brosseau, Ying Huang,
	Arnaldo Carvalho de Melo

Hi Ingo,

	Please consider pulling,

- Arnaldo

The following changes since commit 79928928c5a27d58ae48285d2a3f7aa835db7547:

  Merge tag 'perf-core-for-mingo-2' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-06-18 09:40:46 +0200)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo

for you to fetch changes up to 9d9cad763ca79dd3697e9f2d1df648e37496582b:

  perf tools: Configurable per thread proc map processing time out (2015-06-19 18:27:13 -0300)

----------------------------------------------------------------
perf/core improvements and fixes:

User visible:

- Replace CTRL+z with 'f' as hotkey for enable/disable events (Arnaldo Carvalho de Melo)

- Do not exit when 'f' is pressed in 'report' mode (Arnaldo Carvalho de Melo)

- Tell the user how to unfreeze events after pressing 'f' in 'perf top' (Arnaldo Carvalho de Melo)

- React to unassigned hotkey pressing in 'top/report' (Arnaldo Carvalho de Melo)

- Display total number of samples with --show-total-period in 'annotate' (Martin Liška)

- Add timeout to make procfs mmap processing more robust (Kan Liang)

- Fix sort__sym_cmp to also compare end of symbol (Yannick Brosseau)

Infrastructure:

- Ensure thread-stack is flushed (Adrian Hunter)

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

----------------------------------------------------------------
Adrian Hunter (1):
      perf tools: Ensure thread-stack is flushed

Arnaldo Carvalho de Melo (6):
      perf annotate: Rename source_line_percent to source_line_samples
      perf top: Replace CTRL+z with 'f' as hotkey for enable/disable events
      perf hists browser: Do not exit when 'f' is pressed in 'report' mode
      perf hists browser: Honour the help line provided by builtin-{top,report}.c
      perf top: Tell the user how to unfreeze events after pressing 'f'
      perf hists browser: React to unassigned hotkey pressing

Kan Liang (2):
      perf tools: Add time out to force stop proc map processing
      perf tools: Configurable per thread proc map processing time out

Martin Liška (1):
      perf annotate: Display total number of samples with --show-total-period

Yannick Brosseau (1):
      perf report: Fix sort__sym_cmp to also compare end of symbol

 include/uapi/linux/perf_event.h          |  4 +++
 tools/perf/Documentation/perf-kvm.txt    |  6 ++++
 tools/perf/Documentation/perf-record.txt |  5 +++
 tools/perf/Documentation/perf-top.txt    |  6 ++++
 tools/perf/Documentation/perf-trace.txt  |  5 +++
 tools/perf/builtin-annotate.c            |  2 ++
 tools/perf/builtin-kvm.c                 |  5 ++-
 tools/perf/builtin-record.c              |  6 +++-
 tools/perf/builtin-top.c                 | 15 ++++++--
 tools/perf/builtin-trace.c               |  6 +++-
 tools/perf/perf.h                        |  1 +
 tools/perf/tests/code-reading.c          |  2 +-
 tools/perf/tests/dwarf-unwind.c          |  2 +-
 tools/perf/tests/mmap-thread-lookup.c    |  4 +--
 tools/perf/ui/browsers/annotate.c        | 60 +++++++++++++++++++++++---------
 tools/perf/ui/browsers/hists.c           | 15 ++++----
 tools/perf/util/annotate.c               | 52 ++++++++++++++++++---------
 tools/perf/util/annotate.h               |  7 ++--
 tools/perf/util/event.c                  | 46 +++++++++++++++++++-----
 tools/perf/util/event.h                  | 10 ++++--
 tools/perf/util/machine.c                | 28 +++++++++++++--
 tools/perf/util/machine.h                | 12 +++++--
 tools/perf/util/session.c                | 33 ++++++++++++++++++
 tools/perf/util/sort.c                   |  8 ++---
 tools/perf/util/thread-stack.c           | 18 +++++++---
 tools/perf/util/thread-stack.h           |  1 +
 26 files changed, 278 insertions(+), 81 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
Please read the FAQ at  http://www.tux.org/lkml/

^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [GIT PULL 00/11] perf/core improvements and fixes
  2014-06-19 21:13 Arnaldo Carvalho de Melo
@ 2014-06-25  5:43 ` Ingo Molnar
  0 siblings, 0 replies; 70+ messages in thread
From: Ingo Molnar @ 2014-06-25  5:43 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Adrian Hunter, Aswin Chandramouleeswaran,
	Corey Ashford, David Ahern, Davidlohr Bueso, Don Zickus,
	Frederic Weisbecker, Hitoshi Mitake, Jiri Olsa, Mike Galbraith,
	Namhyung Kim, Paul Mackerras, Peter Zijlstra, Stephane Eranian,
	Arnaldo Carvalho de Melo


* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:

> Hi Ingo,
> 
> 	Please conseider pulling,
> 
> - Arnaldo
> 
> The following changes since commit a10d60c08cc3bbea9195e2b36440f557373623eb:
> 
>   sh, perf: Use common PMU interrupt disabled code (2014-06-19 19:37:51 +0200)
> 
> are available in the git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo
> 
> for you to fetch changes up to ecdac96899e3db3f428e4d2e978f25e3f8d35a6c:
> 
>   perf bench sched-messaging: Drop barf() (2014-06-19 16:13:17 -0300)
> 
> ----------------------------------------------------------------
> perf/core improvements and fixes:
> 
> User visible:
> 
> . Add --repeat global option to 'perf bench' to be used in benchmarks
>   such as the existing 'futex' one, that was modified to use it instead
>   of a local option. (Davidlohr Bueso)
> 
> . Fix fd -> pathname resolution in 'trace', be it using /proc or
>   a vfs_getname probe point. (Arnaldo Carvalho de Melo)
> 
> . Add suggestion of how to set perf_event_paranoid sysctl, to help
>   non-root users trying tools like 'trace' to get a working environment.
>   (Arnaldo Carvalho de Melo)
> 
> Fixes:
> 
> . Fix memory leak in the 'sched-messaging' perf bench test. (Davidlohr Bueso)
> 
> . The -o and -n 'perf bench mem' options are mutually exclusive, emit error
>   when both are specified. (Davidlohr Bueso)
> 
> . Fix scrollbar refresh row index in the ui browser, problem exposed now
>   that headers will be added and will be allowed to be switched on/off.
>   (Jiri Olsa)
> 
> Cleanups:
> 
> . Remove needless reassignments in 'trace' (Arnaldo Carvalho de Melo)
> 
> . Cache the is_exit syscall test in 'trace) (Arnaldo Carvalho de Melo)
> 
> . No need to reimplement err() in 'perf bench sched-messaging', drop barf().
>   (Davidlohr Bueso).
> 
> . Remove ev_name argument from perf_evsel__hists_browse, can be obtained
>   from the other parameters. (Jiri Olsa)
> 
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (4):
>       perf trace: Fix up fd -> pathname resolution
>       perf evlist: Add suggestion of how to set perf_event_paranoid sysctl
>       perf trace: Remove needless reassignments
>       perf trace: Cache the is_exit syscall test
> 
> Davidlohr Bueso (5):
>       perf bench sched-messaging: Plug memleak
>       perf bench: Add --repeat option
>       perf bench futex: Use global --repeat option
>       perf bench mem: The -o and -n options are mutually exclusive
>       perf bench sched-messaging: Drop barf()
> 
> Jiri Olsa (2):
>       perf hists browser: Remove ev_name argument from perf_evsel__hists_browse
>       perf ui browser: Fix scrollbar refresh row index
> 
>  tools/perf/Documentation/perf-bench.txt |  4 +++
>  tools/perf/bench/bench.h                |  1 +
>  tools/perf/bench/futex-requeue.c        | 10 +------
>  tools/perf/bench/futex-wake.c           | 12 ++-------
>  tools/perf/bench/mem-memcpy.c           |  5 ++++
>  tools/perf/bench/mem-memset.c           |  5 ++++
>  tools/perf/bench/sched-messaging.c      | 47 +++++++++++++++------------------
>  tools/perf/builtin-bench.c              |  7 +++++
>  tools/perf/builtin-trace.c              | 12 ++++-----
>  tools/perf/ui/browser.c                 |  2 +-
>  tools/perf/ui/browsers/hists.c          | 25 ++++++++----------
>  tools/perf/util/evlist.c                |  5 ++--
>  12 files changed, 67 insertions(+), 68 deletions(-)

Pulled, thanks a lot Arnaldo!

	Ingo

^ permalink raw reply	[flat|nested] 70+ messages in thread

* [GIT PULL 00/11] perf/core improvements and fixes
@ 2014-06-19 21:13 Arnaldo Carvalho de Melo
  2014-06-25  5:43 ` Ingo Molnar
  0 siblings, 1 reply; 70+ messages in thread
From: Arnaldo Carvalho de Melo @ 2014-06-19 21:13 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
	Aswin Chandramouleeswaran, Corey Ashford, David Ahern,
	Davidlohr Bueso, Don Zickus, Frederic Weisbecker, Hitoshi Mitake,
	Jiri Olsa, Mike Galbraith, Namhyung Kim, Paul Mackerras,
	Peter Zijlstra, Stephane Eranian, Arnaldo Carvalho de Melo

Hi Ingo,

	Please conseider pulling,

- Arnaldo

The following changes since commit a10d60c08cc3bbea9195e2b36440f557373623eb:

  sh, perf: Use common PMU interrupt disabled code (2014-06-19 19:37:51 +0200)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo

for you to fetch changes up to ecdac96899e3db3f428e4d2e978f25e3f8d35a6c:

  perf bench sched-messaging: Drop barf() (2014-06-19 16:13:17 -0300)

----------------------------------------------------------------
perf/core improvements and fixes:

User visible:

. Add --repeat global option to 'perf bench' to be used in benchmarks
  such as the existing 'futex' one, that was modified to use it instead
  of a local option. (Davidlohr Bueso)

. Fix fd -> pathname resolution in 'trace', be it using /proc or
  a vfs_getname probe point. (Arnaldo Carvalho de Melo)

. Add suggestion of how to set perf_event_paranoid sysctl, to help
  non-root users trying tools like 'trace' to get a working environment.
  (Arnaldo Carvalho de Melo)

Fixes:

. Fix memory leak in the 'sched-messaging' perf bench test. (Davidlohr Bueso)

. The -o and -n 'perf bench mem' options are mutually exclusive, emit error
  when both are specified. (Davidlohr Bueso)

. Fix scrollbar refresh row index in the ui browser, problem exposed now
  that headers will be added and will be allowed to be switched on/off.
  (Jiri Olsa)

Cleanups:

. Remove needless reassignments in 'trace' (Arnaldo Carvalho de Melo)

. Cache the is_exit syscall test in 'trace) (Arnaldo Carvalho de Melo)

. No need to reimplement err() in 'perf bench sched-messaging', drop barf().
  (Davidlohr Bueso).

. Remove ev_name argument from perf_evsel__hists_browse, can be obtained
  from the other parameters. (Jiri Olsa)

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

----------------------------------------------------------------
Arnaldo Carvalho de Melo (4):
      perf trace: Fix up fd -> pathname resolution
      perf evlist: Add suggestion of how to set perf_event_paranoid sysctl
      perf trace: Remove needless reassignments
      perf trace: Cache the is_exit syscall test

Davidlohr Bueso (5):
      perf bench sched-messaging: Plug memleak
      perf bench: Add --repeat option
      perf bench futex: Use global --repeat option
      perf bench mem: The -o and -n options are mutually exclusive
      perf bench sched-messaging: Drop barf()

Jiri Olsa (2):
      perf hists browser: Remove ev_name argument from perf_evsel__hists_browse
      perf ui browser: Fix scrollbar refresh row index

 tools/perf/Documentation/perf-bench.txt |  4 +++
 tools/perf/bench/bench.h                |  1 +
 tools/perf/bench/futex-requeue.c        | 10 +------
 tools/perf/bench/futex-wake.c           | 12 ++-------
 tools/perf/bench/mem-memcpy.c           |  5 ++++
 tools/perf/bench/mem-memset.c           |  5 ++++
 tools/perf/bench/sched-messaging.c      | 47 +++++++++++++++------------------
 tools/perf/builtin-bench.c              |  7 +++++
 tools/perf/builtin-trace.c              | 12 ++++-----
 tools/perf/ui/browser.c                 |  2 +-
 tools/perf/ui/browsers/hists.c          | 25 ++++++++----------
 tools/perf/util/evlist.c                |  5 ++--
 12 files changed, 67 insertions(+), 68 deletions(-)

^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [GIT PULL 00/11] perf/core improvements and fixes
  2014-04-24 15:40 Jiri Olsa
@ 2014-04-25  8:05 ` Ingo Molnar
  0 siblings, 0 replies; 70+ messages in thread
From: Ingo Molnar @ 2014-04-25  8:05 UTC (permalink / raw)
  To: Jiri Olsa
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Corey Ashford,
	David Ahern, Frederic Weisbecker, Jiri Olsa, Namhyung Kim,
	Paul Mackerras, Peter Zijlstra


* Jiri Olsa <jolsa@kernel.org> wrote:

> hi Ingo,
> please consider pulling
> 
> thanks,
> jirka
> 
> 
> The following changes since commit a81fef347b32dea2b31275826afe1c93fa0d2d54:
> 
>   Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf into perf/core (2014-04-22 20:28:23 +0200)
> 
> are available in the git repository at:
> 
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git tags/perf-core-for-mingo
> 
> for you to fetch changes up to c3b789527b236873557f53740ceac47747e0e1cb:
> 
>   perf hists/tui: Count callchain rows separately (2014-04-24 16:34:27 +0200)
> 
> ----------------------------------------------------------------
> perf/core improvements and fixes:
> 
> . Factor hists statistics counts processing which in turn also
>   fixes several bugs in TUI report command (Namhyung Kim)
> 
> Signed-off-by: Jiri Olsa <jolsa@kernel.org>
> 
> ----------------------------------------------------------------
> Namhyung Kim (11):
>       perf report: Count number of entries separately
>       perf hists: Rename hists__inc_stats()
>       perf hists: Move column length calculation out of hists__inc_stats()
>       perf hists: Add a couple of hists stat helper functions
>       perf hists: Collapse expanded callchains after filter is applied
>       perf tools: Account entry stats when it's added to the output tree
>       perf hists: Add missing update on filtered stats in hists__decay_entries()
>       perf ui/tui: Fix off-by-one in hist_browser__update_nr_entries()
>       perf ui/tui: Rename hist_browser__update_nr_entries()
>       perf top/tui: Update nr_entries properly after a filter is applied
>       perf hists/tui: Count callchain rows separately
> 
>  tools/perf/builtin-annotate.c  |  3 +-
>  tools/perf/builtin-diff.c      | 23 ++++++-----
>  tools/perf/builtin-report.c    | 64 ++++++++++++++---------------
>  tools/perf/ui/browsers/hists.c | 92 +++++++++++++++++++++++++++++-------------
>  tools/perf/util/hist.c         | 83 ++++++++++++++++++++++++-------------
>  tools/perf/util/hist.h         |  9 ++++-
>  6 files changed, 171 insertions(+), 103 deletions(-)

Pulled, thanks a lot Jiri!

	Ingo

^ permalink raw reply	[flat|nested] 70+ messages in thread

* [GIT PULL 00/11] perf/core improvements and fixes
@ 2014-04-24 15:40 Jiri Olsa
  2014-04-25  8:05 ` Ingo Molnar
  0 siblings, 1 reply; 70+ messages in thread
From: Jiri Olsa @ 2014-04-24 15:40 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Corey Ashford,
	David Ahern, Frederic Weisbecker, Jiri Olsa, Namhyung Kim,
	Paul Mackerras, Peter Zijlstra, Jiri Olsa

hi Ingo,
please consider pulling

thanks,
jirka


The following changes since commit a81fef347b32dea2b31275826afe1c93fa0d2d54:

  Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf into perf/core (2014-04-22 20:28:23 +0200)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git tags/perf-core-for-mingo

for you to fetch changes up to c3b789527b236873557f53740ceac47747e0e1cb:

  perf hists/tui: Count callchain rows separately (2014-04-24 16:34:27 +0200)

----------------------------------------------------------------
perf/core improvements and fixes:

. Factor hists statistics counts processing which in turn also
  fixes several bugs in TUI report command (Namhyung Kim)

Signed-off-by: Jiri Olsa <jolsa@kernel.org>

----------------------------------------------------------------
Namhyung Kim (11):
      perf report: Count number of entries separately
      perf hists: Rename hists__inc_stats()
      perf hists: Move column length calculation out of hists__inc_stats()
      perf hists: Add a couple of hists stat helper functions
      perf hists: Collapse expanded callchains after filter is applied
      perf tools: Account entry stats when it's added to the output tree
      perf hists: Add missing update on filtered stats in hists__decay_entries()
      perf ui/tui: Fix off-by-one in hist_browser__update_nr_entries()
      perf ui/tui: Rename hist_browser__update_nr_entries()
      perf top/tui: Update nr_entries properly after a filter is applied
      perf hists/tui: Count callchain rows separately

 tools/perf/builtin-annotate.c  |  3 +-
 tools/perf/builtin-diff.c      | 23 ++++++-----
 tools/perf/builtin-report.c    | 64 ++++++++++++++---------------
 tools/perf/ui/browsers/hists.c | 92 +++++++++++++++++++++++++++++-------------
 tools/perf/util/hist.c         | 83 ++++++++++++++++++++++++-------------
 tools/perf/util/hist.h         |  9 ++++-
 6 files changed, 171 insertions(+), 103 deletions(-)

^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [GIT PULL 00/11] perf/core improvements and fixes
  2014-04-16 18:41 Jiri Olsa
@ 2014-04-17  8:07 ` Ingo Molnar
  0 siblings, 0 replies; 70+ messages in thread
From: Ingo Molnar @ 2014-04-17  8:07 UTC (permalink / raw)
  To: Jiri Olsa
  Cc: linux-kernel, Adrian Hunter, Arnaldo Carvalho de Melo,
	Corey Ashford, David Ahern, Frederic Weisbecker, Namhyung Kim,
	Paul Mackerras, Peter Zijlstra, Ramkumar Ramachandra


* Jiri Olsa <jolsa@redhat.com> wrote:

> hi Ingo,
> please consider pulling
> 
> thanks,
> jirka
> 
> 
> The following changes since commit fbdd17ec5ce2e5e4027356fcfde769b88d15702f:
> 
>   Merge branch 'perf-core-for-mingo' into perf/urgent (2014-04-14 16:45:39 +0200)
> 
> are available in the git repository at:
> 
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git tags/perf-core-for-mingo
> 
> for you to fetch changes up to a83edb2dfc5989fbadc594109c933bae528a2809:
> 
>   perf sched: Introduce --list-cmds for use by scripts (2014-04-16 17:16:05 +0200)
> 
> ----------------------------------------------------------------
> perf/core improvements and fixes:
> 
> User visible:
> 
> . Add --percentage option to control absolute/relative percentage output (Namhyung Kim)
> 
> Developer stuff:
> 
> . Add --list-cmds to 'kmem', 'mem', 'lock' and 'sched', for use by completion scripts (Ramkumar Ramachandra)
> 
> Signed-off-by: Jiri Olsa <jolsa@redhat.com>
> 
> ----------------------------------------------------------------
> Namhyung Kim (7):
>       perf hists: Add support for showing relative percentage
>       perf report: Add --percentage option
>       perf top: Add --percentage option
>       perf diff: Add --percentage option
>       perf tools: Add hist.percentage config option
>       perf ui/tui: Add 'F' hotkey to toggle percentage output
>       perf tools: Show absolute percentage by default
> 
> Ramkumar Ramachandra (4):
>       perf kmem: Introduce --list-cmds for use by scripts
>       perf mem: Introduce --list-cmds for use by scripts
>       perf lock: Introduce --list-cmds for use by scripts
>       perf sched: Introduce --list-cmds for use by scripts
> 
>  tools/perf/Documentation/perf-diff.txt   | 21 ++++++++++--
>  tools/perf/Documentation/perf-report.txt | 24 +++++++++----
>  tools/perf/Documentation/perf-top.txt    | 18 ++++++++--
>  tools/perf/builtin-diff.c                | 32 ++++++++++++-----
>  tools/perf/builtin-kmem.c                |  8 +++--
>  tools/perf/builtin-lock.c                | 10 +++---
>  tools/perf/builtin-mem.c                 | 15 ++++----
>  tools/perf/builtin-report.c              | 22 ++++++++++--
>  tools/perf/builtin-sched.c               | 10 +++---
>  tools/perf/builtin-top.c                 |  8 +++--
>  tools/perf/perf-completion.sh            |  4 +--
>  tools/perf/ui/browsers/hists.c           | 39 ++++++++++++++++-----
>  tools/perf/ui/gtk/hists.c                | 11 +++---
>  tools/perf/ui/hist.c                     |  8 ++---
>  tools/perf/util/config.c                 |  4 +++
>  tools/perf/util/hist.c                   | 59 +++++++++++++++++++++++++-------
>  tools/perf/util/hist.h                   | 10 ++++++
>  tools/perf/util/symbol.h                 |  3 +-
>  18 files changed, 230 insertions(+), 76 deletions(-)

Pulled, thanks a lot Jiri!

	Ingo

^ permalink raw reply	[flat|nested] 70+ messages in thread

* [GIT PULL 00/11] perf/core improvements and fixes
@ 2014-04-16 18:41 Jiri Olsa
  2014-04-17  8:07 ` Ingo Molnar
  0 siblings, 1 reply; 70+ messages in thread
From: Jiri Olsa @ 2014-04-16 18:41 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Adrian Hunter, Arnaldo Carvalho de Melo,
	Corey Ashford, David Ahern, Frederic Weisbecker, Jiri Olsa,
	Namhyung Kim, Paul Mackerras, Peter Zijlstra,
	Ramkumar Ramachandra

hi Ingo,
please consider pulling

thanks,
jirka


The following changes since commit fbdd17ec5ce2e5e4027356fcfde769b88d15702f:

  Merge branch 'perf-core-for-mingo' into perf/urgent (2014-04-14 16:45:39 +0200)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git tags/perf-core-for-mingo

for you to fetch changes up to a83edb2dfc5989fbadc594109c933bae528a2809:

  perf sched: Introduce --list-cmds for use by scripts (2014-04-16 17:16:05 +0200)

----------------------------------------------------------------
perf/core improvements and fixes:

User visible:

. Add --percentage option to control absolute/relative percentage output (Namhyung Kim)

Developer stuff:

. Add --list-cmds to 'kmem', 'mem', 'lock' and 'sched', for use by completion scripts (Ramkumar Ramachandra)

Signed-off-by: Jiri Olsa <jolsa@redhat.com>

----------------------------------------------------------------
Namhyung Kim (7):
      perf hists: Add support for showing relative percentage
      perf report: Add --percentage option
      perf top: Add --percentage option
      perf diff: Add --percentage option
      perf tools: Add hist.percentage config option
      perf ui/tui: Add 'F' hotkey to toggle percentage output
      perf tools: Show absolute percentage by default

Ramkumar Ramachandra (4):
      perf kmem: Introduce --list-cmds for use by scripts
      perf mem: Introduce --list-cmds for use by scripts
      perf lock: Introduce --list-cmds for use by scripts
      perf sched: Introduce --list-cmds for use by scripts

 tools/perf/Documentation/perf-diff.txt   | 21 ++++++++++--
 tools/perf/Documentation/perf-report.txt | 24 +++++++++----
 tools/perf/Documentation/perf-top.txt    | 18 ++++++++--
 tools/perf/builtin-diff.c                | 32 ++++++++++++-----
 tools/perf/builtin-kmem.c                |  8 +++--
 tools/perf/builtin-lock.c                | 10 +++---
 tools/perf/builtin-mem.c                 | 15 ++++----
 tools/perf/builtin-report.c              | 22 ++++++++++--
 tools/perf/builtin-sched.c               | 10 +++---
 tools/perf/builtin-top.c                 |  8 +++--
 tools/perf/perf-completion.sh            |  4 +--
 tools/perf/ui/browsers/hists.c           | 39 ++++++++++++++++-----
 tools/perf/ui/gtk/hists.c                | 11 +++---
 tools/perf/ui/hist.c                     |  8 ++---
 tools/perf/util/config.c                 |  4 +++
 tools/perf/util/hist.c                   | 59 +++++++++++++++++++++++++-------
 tools/perf/util/hist.h                   | 10 ++++++
 tools/perf/util/symbol.h                 |  3 +-
 18 files changed, 230 insertions(+), 76 deletions(-)

^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [GIT PULL 00/11] perf/core improvements and fixes
  2013-07-22 20:22 Arnaldo Carvalho de Melo
@ 2013-07-23  7:38 ` Ingo Molnar
  0 siblings, 0 replies; 70+ messages in thread
From: Ingo Molnar @ 2013-07-23  7:38 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Andi Kleen,
	Borislav Petkov, Clark Williams, Corey Ashford, David Ahern,
	Feng Tang, Frederic Weisbecker, Hitoshi Mitake, Jiri Olsa,
	Kirill A. Shutemov, Kirill A. Shutemov, Namhyung Kim,
	Paul Mackerras, Peter Zijlstra


* Arnaldo Carvalho de Melo <acme@infradead.org> wrote:

> From: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> Hi Ingo,
> 
> 	Please consider pulling.
> 
> 	Tomorrow I'll try to process Jiri's group leader patches and David's 'kvm live'
> kits and continue looking for patches not processed during my vacations.
> 
> Thanks,
> 
> - Arnaldo
> 
> The following changes since commit 5a9821321e0a61674fd5c4b5a9e95007d0e7e052:
> 
>   Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2013-07-19 09:35:30 +0200)
> 
> are available in the git repository at:
> 
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux tags/perf-core-for-mingo
> 
> for you to fetch changes up to f9ea55d0ddf66ed030b2a478625cd5792d30df16:
> 
>   perf tools: Move weight back to common sort keys (2013-07-22 16:58:28 -0300)
> 
> ----------------------------------------------------------------
> perf/core improvements and fixes.
> 
> . Fix memcpy benchmark for large sizes, from Andi Kleen.
> 
> . Support callchain sorting based on addresses, from Andi Kleen
> 
> . Move weight back to common sort keys, From Andi Kleen.
> 
> . Fix named threads support in 'perf script', from David Ahern.
> 
> . Handle ENODEV on default cycles event, fix from David Ahern.
> 
> . More install tests, from Jiri Olsa.
> 
> . Fix build with perl 5.18, from Kirill A. Shutemov.
> 
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> ----------------------------------------------------------------
> Andi Kleen (3):
>       perf bench: Fix memcpy benchmark for large sizes
>       perf tools: Support callchain sorting based on addresses
>       perf tools: Move weight back to common sort keys
> 
> David Ahern (2):
>       perf script: Fix named threads support
>       perf evsel: Handle ENODEV on default cycles event
> 
> Jiri Olsa (5):
>       perf tests: Run ctags/cscope make tests only with needed binaries
>       perf tests: Rename TMP to TMP_O tests/make variable
>       perf tests: Add DESTDIR=TMP_DEST tests/make variable
>       perf tests: Add 'make install/install-bin' tests into tests/make
>       perf tests: Add broken install-* tests into tests/make
> 
> Kirill A. Shutemov (1):
>       perf tools: Fix build with perl 5.18
> 
>  tools/perf/Documentation/perf-report.txt           |  8 ++-
>  tools/perf/Makefile                                |  4 +-
>  tools/perf/bench/mem-memcpy.c                      |  2 +
>  tools/perf/builtin-report.c                        | 19 ++++--
>  tools/perf/builtin-script.c                        |  6 +-
>  tools/perf/tests/make                              | 67 +++++++++++++++++++---
>  tools/perf/util/callchain.c                        |  7 ++-
>  tools/perf/util/callchain.h                        |  6 ++
>  tools/perf/util/evsel.c                            |  2 +-
>  tools/perf/util/hist.c                             |  3 +-
>  .../perf/util/scripting-engines/trace-event-perl.c | 14 +++--
>  .../util/scripting-engines/trace-event-python.c    |  9 +--
>  tools/perf/util/sort.c                             |  4 +-
>  tools/perf/util/sort.h                             |  6 +-
>  tools/perf/util/trace-event-scripting.c            |  3 +-
>  tools/perf/util/trace-event.h                      |  4 +-
>  16 files changed, 124 insertions(+), 40 deletions(-)

Pulled, thanks a lot Arnaldo!

	Ingo

^ permalink raw reply	[flat|nested] 70+ messages in thread

* [GIT PULL 00/11] perf/core improvements and fixes
@ 2013-07-22 20:22 Arnaldo Carvalho de Melo
  2013-07-23  7:38 ` Ingo Molnar
  0 siblings, 1 reply; 70+ messages in thread
From: Arnaldo Carvalho de Melo @ 2013-07-22 20:22 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Andi Kleen,
	Borislav Petkov, Clark Williams, Corey Ashford, David Ahern,
	Feng Tang, Frederic Weisbecker, Hitoshi Mitake, Jiri Olsa,
	Kirill A. Shutemov, Kirill A. Shutemov, Namhyung Kim,
	Paul Mackerras, Peter Zijlstra

From: Arnaldo Carvalho de Melo <acme@redhat.com>

Hi Ingo,

	Please consider pulling.

	Tomorrow I'll try to process Jiri's group leader patches and David's 'kvm live'
kits and continue looking for patches not processed during my vacations.

Thanks,

- Arnaldo

The following changes since commit 5a9821321e0a61674fd5c4b5a9e95007d0e7e052:

  Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2013-07-19 09:35:30 +0200)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux tags/perf-core-for-mingo

for you to fetch changes up to f9ea55d0ddf66ed030b2a478625cd5792d30df16:

  perf tools: Move weight back to common sort keys (2013-07-22 16:58:28 -0300)

----------------------------------------------------------------
perf/core improvements and fixes.

. Fix memcpy benchmark for large sizes, from Andi Kleen.

. Support callchain sorting based on addresses, from Andi Kleen

. Move weight back to common sort keys, From Andi Kleen.

. Fix named threads support in 'perf script', from David Ahern.

. Handle ENODEV on default cycles event, fix from David Ahern.

. More install tests, from Jiri Olsa.

. Fix build with perl 5.18, from Kirill A. Shutemov.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

----------------------------------------------------------------
Andi Kleen (3):
      perf bench: Fix memcpy benchmark for large sizes
      perf tools: Support callchain sorting based on addresses
      perf tools: Move weight back to common sort keys

David Ahern (2):
      perf script: Fix named threads support
      perf evsel: Handle ENODEV on default cycles event

Jiri Olsa (5):
      perf tests: Run ctags/cscope make tests only with needed binaries
      perf tests: Rename TMP to TMP_O tests/make variable
      perf tests: Add DESTDIR=TMP_DEST tests/make variable
      perf tests: Add 'make install/install-bin' tests into tests/make
      perf tests: Add broken install-* tests into tests/make

Kirill A. Shutemov (1):
      perf tools: Fix build with perl 5.18

 tools/perf/Documentation/perf-report.txt           |  8 ++-
 tools/perf/Makefile                                |  4 +-
 tools/perf/bench/mem-memcpy.c                      |  2 +
 tools/perf/builtin-report.c                        | 19 ++++--
 tools/perf/builtin-script.c                        |  6 +-
 tools/perf/tests/make                              | 67 +++++++++++++++++++---
 tools/perf/util/callchain.c                        |  7 ++-
 tools/perf/util/callchain.h                        |  6 ++
 tools/perf/util/evsel.c                            |  2 +-
 tools/perf/util/hist.c                             |  3 +-
 .../perf/util/scripting-engines/trace-event-perl.c | 14 +++--
 .../util/scripting-engines/trace-event-python.c    |  9 +--
 tools/perf/util/sort.c                             |  4 +-
 tools/perf/util/sort.h                             |  6 +-
 tools/perf/util/trace-event-scripting.c            |  3 +-
 tools/perf/util/trace-event.h                      |  4 +-
 16 files changed, 124 insertions(+), 40 deletions(-)

^ permalink raw reply	[flat|nested] 70+ messages in thread

* [GIT PULL 00/11] perf/core improvements and fixes
@ 2012-08-08 17:13 Arnaldo Carvalho de Melo
  0 siblings, 0 replies; 70+ messages in thread
From: Arnaldo Carvalho de Melo @ 2012-08-08 17:13 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Andi Kleen,
	Arnaldo Carvalho de Melo, David Ahern, Feng Tang, Peter Zijlstra,
	Robert Richter, Stephane Eranian, arnaldo.melo

Hi Ingo,

	Please consider pulling, on top of my latest pull request,

- Arnaldo

-- 
1.7.9.2.358.g22243

The following changes since commit 9782243353ec135327a80c76c63464e592949cd1:

  perf script: Stop using pevent directly (2012-08-07 23:50:21 -0300)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux tags/perf-core-for-mingo

for you to fetch changes up to 0076d546b4f9b5c15121c6959d108a83fe43fa9a:

  perf scripts python: Add event_analyzing_sample.py as a sample for general event handling (2012-08-08 12:55:38 -0300)

----------------------------------------------------------------
perf/core improvements

. Assorted fixes for Documentation and build in 32 bit, from Robert Richter

. Add support for non-tracepoint events in perf script python, from Feng Tang

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

----------------------------------------------------------------
Feng Tang (5):
      perf script: Add general python handler to process non-tracepoint events
      perf script: Replace "struct thread" with "struct addr_location" as a parameter for "process_event()"
      perf scripts python: Pass event/thread/dso name and symbol info to event handler in python
      perf scripts python: Add a python library EventClass.py
      perf scripts python: Add event_analyzing_sample.py as a sample for general event handling

Robert Richter (6):
      perf tools: Fix version file for perf documentation with OUTPUT variable set
      perf tools: Fix lib/traceevent build dir with OUTPUT variable set
      perf tools: Fix parsing of 64 bit raw config value for 32 bit
      tools lib traceevent: Fix cast from pointer to integer for 32 bit
      perf list: Update documentation about raw event setup
      perf list: Document precise event sampling for AMD IBS

 tools/lib/traceevent/event-parse.c                 |    3 +-
 tools/perf/Documentation/Makefile                  |    6 +-
 tools/perf/Documentation/perf-list.txt             |   48 +++--
 tools/perf/Makefile                                |    8 +-
 tools/perf/builtin-script.c                        |    5 +-
 .../Perf-Trace-Util/lib/Perf/Trace/EventClass.py   |   94 ++++++++++
 .../perf/scripts/python/event_analyzing_sample.py  |  193 ++++++++++++++++++++
 tools/perf/util/parse-events.c                     |    6 +-
 tools/perf/util/parse-events.h                     |    6 +-
 tools/perf/util/parse-events.l                     |    4 +-
 tools/perf/util/parse-events.y                     |   10 +-
 .../perf/util/scripting-engines/trace-event-perl.c |   11 +-
 .../util/scripting-engines/trace-event-python.c    |   85 ++++++++-
 tools/perf/util/trace-event-scripting.c            |    2 +-
 tools/perf/util/trace-event.h                      |    5 +-
 15 files changed, 441 insertions(+), 45 deletions(-)
 create mode 100755 tools/perf/scripts/python/Perf-Trace-Util/lib/Perf/Trace/EventClass.py
 create mode 100644 tools/perf/scripts/python/event_analyzing_sample.py

^ permalink raw reply	[flat|nested] 70+ messages in thread

end of thread, other threads:[~2018-05-16 15:58 UTC | newest]

Thread overview: 70+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-06-06 21:04 [GIT PULL 00/11] perf/core improvements and fixes Arnaldo Carvalho de Melo
2016-06-06 21:04 ` [PATCH 01/11] perf evsel: Provide way to extract integer value from format_field Arnaldo Carvalho de Melo
2016-06-06 21:04 ` [PATCH 02/11] perf evlist: Fix alloc_mmap() failure path Arnaldo Carvalho de Melo
2016-06-06 21:04 ` [PATCH 03/11] tools lib api: Respect CROSS_COMPILE for the linker Arnaldo Carvalho de Melo
2016-06-06 21:04 ` [PATCH 04/11] perf script: Show call graphs when 1st event doesn't have it but some other has Arnaldo Carvalho de Melo
2016-06-06 21:04 ` [PATCH 05/11] perf test: Ignore .scale and other special files Arnaldo Carvalho de Melo
2016-06-06 21:04 ` [PATCH 06/11] perf stat: Basic support for TopDown in perf stat Arnaldo Carvalho de Melo
2016-06-06 21:04 ` [PATCH 07/11] perf stat: Add computation of TopDown formulas Arnaldo Carvalho de Melo
2016-06-06 21:04 ` [PATCH 08/11] perf stat: Print topology/time headers with --metric-only Arnaldo Carvalho de Melo
2016-06-06 21:04 ` [PATCH 09/11] perf stat: Add missing aggregation headers for --metric-only CSV Arnaldo Carvalho de Melo
2016-06-06 21:04 ` [PATCH 10/11] perf config: Fix abnormal termination at perf_parse_file() Arnaldo Carvalho de Melo
2016-06-06 21:04 ` [PATCH 11/11] perf config: Handle the error when config set is NULL at collect_config() Arnaldo Carvalho de Melo
2016-06-08  7:32 ` [GIT PULL 00/11] perf/core improvements and fixes Ingo Molnar
  -- strict thread matches above, loose matches on Subject: below --
2018-05-16 14:48 Arnaldo Carvalho de Melo
2018-05-16 14:48 ` Arnaldo Carvalho de Melo
2018-05-16 14:48 ` Arnaldo Carvalho de Melo
2018-05-16 15:58 ` Ingo Molnar
2018-05-16 15:58   ` Ingo Molnar
2018-05-16 15:58   ` Ingo Molnar
2017-11-24 15:02 Arnaldo Carvalho de Melo
2017-03-21  1:16 Arnaldo Carvalho de Melo
2017-03-21  1:16 ` Arnaldo Carvalho de Melo
2017-03-21  6:43 ` Ingo Molnar
2017-03-21  6:43   ` Ingo Molnar
2016-07-25 15:57 Arnaldo Carvalho de Melo
2016-07-25 17:49 ` Ingo Molnar
2016-06-30 22:16 Arnaldo Carvalho de Melo
2016-07-01  6:43 ` Ingo Molnar
2016-07-01 13:18   ` Arnaldo Carvalho de Melo
2016-05-19 22:21 Arnaldo Carvalho de Melo
2016-05-20 15:05 ` Arnaldo Carvalho de Melo
2016-05-20 17:38   ` Ingo Molnar
2016-05-06 16:08 Arnaldo Carvalho de Melo
2016-05-07  4:52 ` Ingo Molnar
2016-04-14 12:32 Arnaldo Carvalho de Melo
2016-04-14 13:32 ` Ingo Molnar
2016-04-13 14:43 Arnaldo Carvalho de Melo
2016-04-13 18:28 ` Ingo Molnar
2016-03-29 23:41 Arnaldo Carvalho de Melo
2016-03-02 22:16 Arnaldo Carvalho de Melo
2016-02-29 19:21 Arnaldo Carvalho de Melo
2016-03-03  8:21 ` Ingo Molnar
2016-03-03  9:15   ` Jiri Olsa
2016-03-03 14:38   ` Arnaldo Carvalho de Melo
2016-03-05  8:08     ` Ingo Molnar
2016-02-23 20:00 Arnaldo Carvalho de Melo
2016-02-24  7:23 ` Ingo Molnar
2016-01-12 17:59 Arnaldo Carvalho de Melo
2016-01-13  9:37 ` Ingo Molnar
2015-12-10 19:43 Arnaldo Carvalho de Melo
2015-12-11  7:48 ` Ingo Molnar
2015-12-09 16:51 Arnaldo Carvalho de Melo
2015-12-10  8:12 ` Ingo Molnar
2015-11-06 20:54 Arnaldo Carvalho de Melo
2015-11-08  7:24 ` Ingo Molnar
2015-07-06 15:41 Arnaldo Carvalho de Melo
2015-07-06 15:41 ` Arnaldo Carvalho de Melo
2015-07-06 15:47 ` Ingo Molnar
2015-07-06 15:47   ` Ingo Molnar
2015-06-19 21:58 Arnaldo Carvalho de Melo
2015-06-19 23:12 ` Ingo Molnar
2014-06-19 21:13 Arnaldo Carvalho de Melo
2014-06-25  5:43 ` Ingo Molnar
2014-04-24 15:40 Jiri Olsa
2014-04-25  8:05 ` Ingo Molnar
2014-04-16 18:41 Jiri Olsa
2014-04-17  8:07 ` Ingo Molnar
2013-07-22 20:22 Arnaldo Carvalho de Melo
2013-07-23  7:38 ` Ingo Molnar
2012-08-08 17:13 Arnaldo Carvalho de Melo

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.