linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [GIT PULL 00/10] perf/core improvements and fixes
@ 2016-06-20 22:23 Arnaldo Carvalho de Melo
  2016-06-20 22:23 ` [PATCH 01/10] perf tools: Find vdso with the consider of cross-platform Arnaldo Carvalho de Melo
                   ` (10 more replies)
  0 siblings, 11 replies; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-06-20 22:23 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
	Alexander Shishkin, Alexei Starovoitov, Andi Kleen,
	Brendan Gregg, David Ahern, Ekaterina Tumanova, He Kuang,
	Jean Delvare, Jiri Olsa, Josh Poimboeuf, Kan Liang, linux-kbuild,
	Masami Hiramatsu, Michal Marek, Namhyung Kim, Paolo Bonzini,
	Pekka Enberg, Peter Zijlstra, pi3orama, Stephane Eranian,
	Sukadev Bhattiprolu, Wang Nan, Zefan Li,
	Arnaldo Carvalho de Melo

Hi Ingo,

	Please consider pulling,

- Arnaldo

The following changes since commit 02469a95096a549508c5adf61d84a1d72851c85b:

  Merge tag 'perf-core-for-mingo-20160615' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2016-06-16 10:27:35 +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-20160620

for you to fetch changes up to 2a0a7c72702bac1b87cd4d49196a334483386fab:

  perf script: Add stackcollapse.py script (2016-06-20 17:50:39 -0300)

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

New features:

. Add --dry-run option to 'perf record' to check if command line options can be
  parsed, but not doing any recording (Wang Nan)

. Allow dumping the object files generated by llvm when processing eBPF
  scriptlet events (Wang Nan)

- Add stackcollapse.py script to help generating flame graphs (Paolo Bonzini)

Documentation:

. Fix 'perf script'  documentation of '-f' when it should be '-F' (Adrian Hunter)

Infrastructure:

- Fix write_backwards fallback when using a new tool on older kernels
  without support for this feature (Arnaldo Carvalho de Melo)

- Find vdso file in cross-platform perf.data file processing scenarios (He Kuang)

- Remove some leftovers from the initial codebase copying from git
  (Arnaldo Carvalho de Melo)

- List libelf-devel as an alternative, as this is how the libelf
  development package is called on OpenSuSE (Jean Delvare)

- Rename __hists__add_entry to hists__add_entry (Jiri Olsa)

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

----------------------------------------------------------------
Adrian Hunter (1):
      perf script: Fix documentation of '-f' when it should be '-F'

Arnaldo Carvalho de Melo (3):
      perf tools: Remove some unused functions
      perf tools: Remove --perf-dir and --work-dir
      perf evsel: Fix write_backwards fallback

He Kuang (1):
      perf tools: Find vdso with the consider of cross-platform

Jean Delvare (1):
      kbuild: List libelf-devel as an alternative

Jiri Olsa (1):
      perf hists: Rename __hists__add_entry to hists__add_entry

Paolo Bonzini (1):
      perf script: Add stackcollapse.py script

Wang Nan (2):
      perf llvm: Allow dump llvm output object file using llvm.dump-obj
      perf record: Add --dry-run option to check cmdline options

 Makefile                                           |   2 +-
 tools/perf/Documentation/perf-record.txt           |   7 ++
 tools/perf/Documentation/perf-script.txt           |  20 ++--
 tools/perf/builtin-annotate.c                      |   2 +-
 tools/perf/builtin-diff.c                          |  12 +-
 tools/perf/builtin-record.c                        |   7 ++
 tools/perf/config/Makefile                         |   2 +-
 tools/perf/perf.c                                  |  36 ------
 tools/perf/scripts/python/bin/stackcollapse-record |   8 ++
 tools/perf/scripts/python/bin/stackcollapse-report |   3 +
 tools/perf/scripts/python/stackcollapse.py         | 127 +++++++++++++++++++++
 tools/perf/tests/hists_link.c                      |   4 +-
 tools/perf/util/cache.h                            |   9 --
 tools/perf/util/config.c                           |   2 +-
 tools/perf/util/evsel.c                            |  23 ++--
 tools/perf/util/hist.c                             |  34 +++---
 tools/perf/util/hist.h                             |  14 +--
 tools/perf/util/llvm-utils.c                       |  42 +++++++
 tools/perf/util/llvm-utils.h                       |   5 +
 tools/perf/util/path.c                             |  65 +----------
 tools/perf/util/vdso.c                             |  40 ++++++-
 21 files changed, 288 insertions(+), 176 deletions(-)
 create mode 100755 tools/perf/scripts/python/bin/stackcollapse-record
 create mode 100755 tools/perf/scripts/python/bin/stackcollapse-report
 create mode 100755 tools/perf/scripts/python/stackcollapse.py

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

* [PATCH 01/10] perf tools: Find vdso with the consider of cross-platform
  2016-06-20 22:23 [GIT PULL 00/10] perf/core improvements and fixes Arnaldo Carvalho de Melo
@ 2016-06-20 22:23 ` Arnaldo Carvalho de Melo
  2016-06-20 22:23 ` [PATCH 02/10] kbuild: List libelf-devel as an alternative Arnaldo Carvalho de Melo
                   ` (9 subsequent siblings)
  10 siblings, 0 replies; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-06-20 22:23 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, He Kuang, Alexander Shishkin, Andi Kleen,
	David Ahern, Ekaterina Tumanova, Jiri Olsa, Josh Poimboeuf,
	Kan Liang, Masami Hiramatsu, Namhyung Kim, Pekka Enberg,
	Peter Zijlstra, Stephane Eranian, Sukadev Bhattiprolu, Wang Nan,
	Arnaldo Carvalho de Melo

From: He Kuang <hekuang@huawei.com>

There's a problem in machine__findnew_vdso(), vdso buildid generated by a
32-bit machine stores it with the name 'vdso', but when processing buildid on a
64-bit machine with the same 'perf.data', perf will search for vdso named as
'vdso32' and get failed.

This patch tries to find the existing dsos in machine->dsos by thread dso_type.
64-bit thread tries to find vdso with name 'vdso', because all 64-bit vdso is
named as that. 32-bit thread first tries to find vdso with name 'vdso32' if
this thread was run on 64-bit machine, if failed, then it tries 'vdso' which
indicates that the thread was run on 32-bit machine when recording.

Committer note:

Additional explanation by Adrian Hunter:

We match maps to builds ids using the file name - consider
machine__findnew_[v]dso() called in map__new().  So in the context of a perf
data file, we consider the file name to be unique.

A vdso map does not have a file name - all we know is that it is vdso.  We look
at the thread to tell if it is 32-bit, 64-bit or x32.  Then we need to get the
build id which has been recorded using short name "[vdso]" or "[vdso32]" or
"[vdsox32]".

The problem is that on a 32-bit machine, we use the name "[vdso]".  If you take
a 32-bit perf data file to a 64-bit machine, it gets hard to figure out if
"[vdso]" is 32-bit or 64-bit.

This patch solves that problem.

Signed-off-by: He Kuang <hekuang@huawei.com>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Ekaterina Tumanova <tumanova@linux.vnet.ibm.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Kan Liang <kan.liang@intel.com>
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Pekka Enberg <penberg@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Cc: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/r/1463475894-163531-1-git-send-email-hekuang@huawei.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/util/vdso.c | 40 +++++++++++++++++++++++++++++++++++++---
 1 file changed, 37 insertions(+), 3 deletions(-)

diff --git a/tools/perf/util/vdso.c b/tools/perf/util/vdso.c
index 44d440da15dc..8f81c415723d 100644
--- a/tools/perf/util/vdso.c
+++ b/tools/perf/util/vdso.c
@@ -134,8 +134,6 @@ static struct dso *__machine__addnew_vdso(struct machine *machine, const char *s
 	return dso;
 }
 
-#if BITS_PER_LONG == 64
-
 static enum dso_type machine__thread_dso_type(struct machine *machine,
 					      struct thread *thread)
 {
@@ -156,6 +154,8 @@ static enum dso_type machine__thread_dso_type(struct machine *machine,
 	return dso_type;
 }
 
+#if BITS_PER_LONG == 64
+
 static int vdso__do_copy_compat(FILE *f, int fd)
 {
 	char buf[4096];
@@ -283,8 +283,38 @@ static int __machine__findnew_vdso_compat(struct machine *machine,
 
 #endif
 
+static struct dso *machine__find_vdso(struct machine *machine,
+				      struct thread *thread)
+{
+	struct dso *dso = NULL;
+	enum dso_type dso_type;
+
+	dso_type = machine__thread_dso_type(machine, thread);
+	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;
+		}
+		break;
+	case DSO__TYPE_X32BIT:
+		dso = __dsos__find(&machine->dsos, DSO__NAME_VDSOX32, true);
+		break;
+	case DSO__TYPE_64BIT:
+	case DSO__TYPE_UNKNOWN:
+	default:
+		dso = __dsos__find(&machine->dsos, DSO__NAME_VDSO, true);
+		break;
+	}
+
+	return dso;
+}
+
 struct dso *machine__findnew_vdso(struct machine *machine,
-				  struct thread *thread __maybe_unused)
+				  struct thread *thread)
 {
 	struct vdso_info *vdso_info;
 	struct dso *dso = NULL;
@@ -297,6 +327,10 @@ struct dso *machine__findnew_vdso(struct machine *machine,
 	if (!vdso_info)
 		goto out_unlock;
 
+	dso = machine__find_vdso(machine, thread);
+	if (dso)
+		goto out_unlock;
+
 #if BITS_PER_LONG == 64
 	if (__machine__findnew_vdso_compat(machine, thread, vdso_info, &dso))
 		goto out_unlock;
-- 
2.5.5

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

* [PATCH 02/10] kbuild: List libelf-devel as an alternative
  2016-06-20 22:23 [GIT PULL 00/10] perf/core improvements and fixes Arnaldo Carvalho de Melo
  2016-06-20 22:23 ` [PATCH 01/10] perf tools: Find vdso with the consider of cross-platform Arnaldo Carvalho de Melo
@ 2016-06-20 22:23 ` Arnaldo Carvalho de Melo
  2016-06-20 22:23 ` [PATCH 03/10] perf script: Fix documentation of '-f' when it should be '-F' Arnaldo Carvalho de Melo
                   ` (8 subsequent siblings)
  10 siblings, 0 replies; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-06-20 22:23 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Jean Delvare, Jiri Olsa, Michal Marek,
	Peter Zijlstra, linux-kbuild, Arnaldo Carvalho de Melo

From: Jean Delvare <jdelvare@suse.de>

On openSUSE, the libelf development files are in package libelf-devel.

Signed-off-by: Jean Delvare <jdelvare@suse.de>
Acked-by: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Michal Marek <mmarek@suse.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: linux-kbuild@vger.kernel.org
Link: http://lkml.kernel.org/n/tip-s8nyk3pyy2927sd7qp7u42oi@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 Makefile                   | 2 +-
 tools/perf/config/Makefile | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/Makefile b/Makefile
index b409076c7c18..4a1fe88d6839 100644
--- a/Makefile
+++ b/Makefile
@@ -1038,7 +1038,7 @@ ifdef CONFIG_STACK_VALIDATION
   ifeq ($(has_libelf),1)
     objtool_target := tools/objtool FORCE
   else
-    $(warning "Cannot use CONFIG_STACK_VALIDATION, please install libelf-dev or elfutils-libelf-devel")
+    $(warning "Cannot use CONFIG_STACK_VALIDATION, please install libelf-dev, libelf-devel or elfutils-libelf-devel")
     SKIP_STACK_VALIDATION := 1
     export SKIP_STACK_VALIDATION
   endif
diff --git a/tools/perf/config/Makefile b/tools/perf/config/Makefile
index 80018feb99c0..534c81176f6c 100644
--- a/tools/perf/config/Makefile
+++ b/tools/perf/config/Makefile
@@ -257,7 +257,7 @@ else
       LIBC_SUPPORT := 1
     endif
     ifeq ($(LIBC_SUPPORT),1)
-      msg := $(warning No libelf found, disables 'probe' tool and BPF support in 'perf record', please install elfutils-libelf-devel/libelf-dev);
+      msg := $(warning No libelf found, disables 'probe' tool and BPF support in 'perf record', please install libelf-dev, libelf-devel or elfutils-libelf-devel);
 
       NO_LIBELF := 1
       NO_DWARF := 1
-- 
2.5.5

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

* [PATCH 03/10] perf script: Fix documentation of '-f' when it should be '-F'
  2016-06-20 22:23 [GIT PULL 00/10] perf/core improvements and fixes Arnaldo Carvalho de Melo
  2016-06-20 22:23 ` [PATCH 01/10] perf tools: Find vdso with the consider of cross-platform Arnaldo Carvalho de Melo
  2016-06-20 22:23 ` [PATCH 02/10] kbuild: List libelf-devel as an alternative Arnaldo Carvalho de Melo
@ 2016-06-20 22:23 ` Arnaldo Carvalho de Melo
  2016-06-20 22:23 ` [PATCH 04/10] perf hists: Rename __hists__add_entry to hists__add_entry Arnaldo Carvalho de Melo
                   ` (7 subsequent siblings)
  10 siblings, 0 replies; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-06-20 22:23 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Adrian Hunter, Andi Kleen, Jiri Olsa,
	Arnaldo Carvalho de Melo

From: Adrian Hunter <adrian.hunter@intel.com>

The documentation for perf script mixes up '-f' and '-F'. Fix it.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Link: http://lkml.kernel.org/r/None
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/Documentation/perf-script.txt | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/tools/perf/Documentation/perf-script.txt b/tools/perf/Documentation/perf-script.txt
index 4fc44c75263f..4f34379ebd77 100644
--- a/tools/perf/Documentation/perf-script.txt
+++ b/tools/perf/Documentation/perf-script.txt
@@ -119,13 +119,13 @@ OPTIONS
 	srcline, period, iregs, brstack, brstacksym, flags.
         Field list can be prepended with the type, trace, sw or hw,
         to indicate to which event type the field list applies.
-        e.g., -f sw:comm,tid,time,ip,sym  and -f trace:time,cpu,trace
+        e.g., -F sw:comm,tid,time,ip,sym  and -F trace:time,cpu,trace
 
-		perf script -f <fields>
+		perf script -F <fields>
 
 	is equivalent to:
 
-		perf script -f trace:<fields> -f sw:<fields> -f hw:<fields>
+		perf script -F trace:<fields> -F sw:<fields> -F hw:<fields>
 
 	i.e., the specified fields apply to all event types if the type string
 	is not given.
@@ -133,9 +133,9 @@ OPTIONS
 	The arguments are processed in the order received. A later usage can
 	reset a prior request. e.g.:
 
-		-f trace: -f comm,tid,time,ip,sym
+		-F trace: -F comm,tid,time,ip,sym
 
-	The first -f suppresses trace events (field list is ""), but then the
+	The first -F suppresses trace events (field list is ""), but then the
 	second invocation sets the fields to comm,tid,time,ip,sym. In this case a
 	warning is given to the user:
 
@@ -143,9 +143,9 @@ OPTIONS
 
 	Alternatively, consider the order:
 
-		-f comm,tid,time,ip,sym -f trace:
+		-F comm,tid,time,ip,sym -F trace:
 
-	The first -f sets the fields for all events and the second -f
+	The first -F sets the fields for all events and the second -F
 	suppresses trace events. The user is given a warning message about
 	the override, and the result of the above is that only S/W and H/W
 	events are displayed with the given fields.
@@ -154,14 +154,14 @@ OPTIONS
 	event type, a message is displayed to the user that the option is
 	ignored for that type. For example:
 
-		$ perf script -f comm,tid,trace
+		$ perf script -F comm,tid,trace
 		'trace' not valid for hardware events. Ignoring.
 		'trace' not valid for software events. Ignoring.
 
 	Alternatively, if the type is given an invalid field is specified it
 	is an error. For example:
 
-        perf script -v -f sw:comm,tid,trace
+        perf script -v -F sw:comm,tid,trace
         'trace' not valid for software events.
 
 	At this point usage is displayed, and perf-script exits.
@@ -173,7 +173,7 @@ OPTIONS
 	respectively.
 
 	Finally, a user may not set fields to none for all event types.
-	i.e., -f "" is not allowed.
+	i.e., -F "" is not allowed.
 
 	The brstack output includes branch related information with raw addresses using the
 	/v/v/v/v/ syntax in the following order:
-- 
2.5.5

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

* [PATCH 04/10] perf hists: Rename __hists__add_entry to hists__add_entry
  2016-06-20 22:23 [GIT PULL 00/10] perf/core improvements and fixes Arnaldo Carvalho de Melo
                   ` (2 preceding siblings ...)
  2016-06-20 22:23 ` [PATCH 03/10] perf script: Fix documentation of '-f' when it should be '-F' Arnaldo Carvalho de Melo
@ 2016-06-20 22:23 ` Arnaldo Carvalho de Melo
  2016-06-20 22:23 ` [PATCH 05/10] perf tools: Remove some unused functions Arnaldo Carvalho de Melo
                   ` (6 subsequent siblings)
  10 siblings, 0 replies; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-06-20 22:23 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Jiri Olsa, David Ahern, Namhyung Kim,
	Peter Zijlstra, Arnaldo Carvalho de Melo

From: Jiri Olsa <jolsa@kernel.org>

There's no reason we should suffer the '__' prefix for the base global
function.

Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1465928361-2442-12-git-send-email-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/builtin-annotate.c |  2 +-
 tools/perf/builtin-diff.c     | 12 +-----------
 tools/perf/tests/hists_link.c |  4 ++--
 tools/perf/util/hist.c        | 34 +++++++++++++++++-----------------
 tools/perf/util/hist.h        | 14 +++++++-------
 5 files changed, 28 insertions(+), 38 deletions(-)

diff --git a/tools/perf/builtin-annotate.c b/tools/perf/builtin-annotate.c
index 25c81734a950..a2324e1892aa 100644
--- a/tools/perf/builtin-annotate.c
+++ b/tools/perf/builtin-annotate.c
@@ -75,7 +75,7 @@ static int perf_evsel__add_sample(struct perf_evsel *evsel,
 	sample->period = 1;
 	sample->weight = 1;
 
-	he = __hists__add_entry(hists, al, NULL, NULL, NULL, sample, true);
+	he = hists__add_entry(hists, al, NULL, NULL, NULL, sample, true);
 	if (he == NULL)
 		return -ENOMEM;
 
diff --git a/tools/perf/builtin-diff.c b/tools/perf/builtin-diff.c
index 7f628f9c2fb4..8b6735f35179 100644
--- a/tools/perf/builtin-diff.c
+++ b/tools/perf/builtin-diff.c
@@ -310,16 +310,6 @@ static int formula_fprintf(struct hist_entry *he, struct hist_entry *pair,
 	return -1;
 }
 
-static int hists__add_entry(struct hists *hists,
-			    struct addr_location *al,
-			    struct perf_sample *sample)
-{
-	if (__hists__add_entry(hists, al, NULL, NULL, NULL,
-			       sample, true) != NULL)
-		return 0;
-	return -ENOMEM;
-}
-
 static int diff__process_sample_event(struct perf_tool *tool __maybe_unused,
 				      union perf_event *event,
 				      struct perf_sample *sample,
@@ -336,7 +326,7 @@ static int diff__process_sample_event(struct perf_tool *tool __maybe_unused,
 		return -1;
 	}
 
-	if (hists__add_entry(hists, &al, sample)) {
+	if (!hists__add_entry(hists, &al, NULL, NULL, NULL, sample, true)) {
 		pr_warning("problem incrementing symbol period, skipping event\n");
 		goto out_put;
 	}
diff --git a/tools/perf/tests/hists_link.c b/tools/perf/tests/hists_link.c
index acf5a1301c07..6f96ca4d4fc0 100644
--- a/tools/perf/tests/hists_link.c
+++ b/tools/perf/tests/hists_link.c
@@ -84,7 +84,7 @@ static int add_hist_entries(struct perf_evlist *evlist, struct machine *machine)
 			if (machine__resolve(machine, &al, &sample) < 0)
 				goto out;
 
-			he = __hists__add_entry(hists, &al, NULL,
+			he = hists__add_entry(hists, &al, NULL,
 						NULL, NULL, &sample, true);
 			if (he == NULL) {
 				addr_location__put(&al);
@@ -103,7 +103,7 @@ static int add_hist_entries(struct perf_evlist *evlist, struct machine *machine)
 			if (machine__resolve(machine, &al, &sample) < 0)
 				goto out;
 
-			he = __hists__add_entry(hists, &al, NULL,
+			he = hists__add_entry(hists, &al, NULL,
 						NULL, NULL, &sample, true);
 			if (he == NULL) {
 				addr_location__put(&al);
diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
index 2515cfdb7365..d2647b1d82c0 100644
--- a/tools/perf/util/hist.c
+++ b/tools/perf/util/hist.c
@@ -531,13 +531,13 @@ out:
 	return he;
 }
 
-struct hist_entry *__hists__add_entry(struct hists *hists,
-				      struct addr_location *al,
-				      struct symbol *sym_parent,
-				      struct branch_info *bi,
-				      struct mem_info *mi,
-				      struct perf_sample *sample,
-				      bool sample_self)
+struct hist_entry *hists__add_entry(struct hists *hists,
+				    struct addr_location *al,
+				    struct symbol *sym_parent,
+				    struct branch_info *bi,
+				    struct mem_info *mi,
+				    struct perf_sample *sample,
+				    bool sample_self)
 {
 	struct hist_entry entry = {
 		.thread	= al->thread,
@@ -622,8 +622,8 @@ iter_add_single_mem_entry(struct hist_entry_iter *iter, struct addr_location *al
 	 */
 	sample->period = cost;
 
-	he = __hists__add_entry(hists, al, iter->parent, NULL, mi,
-				sample, true);
+	he = hists__add_entry(hists, al, iter->parent, NULL, mi,
+			      sample, true);
 	if (!he)
 		return -ENOMEM;
 
@@ -727,8 +727,8 @@ iter_add_next_branch_entry(struct hist_entry_iter *iter, struct addr_location *a
 	sample->period = 1;
 	sample->weight = bi->flags.cycles ? bi->flags.cycles : 1;
 
-	he = __hists__add_entry(hists, al, iter->parent, &bi[i], NULL,
-				sample, true);
+	he = hists__add_entry(hists, al, iter->parent, &bi[i], NULL,
+			      sample, true);
 	if (he == NULL)
 		return -ENOMEM;
 
@@ -764,8 +764,8 @@ iter_add_single_normal_entry(struct hist_entry_iter *iter, struct addr_location
 	struct perf_sample *sample = iter->sample;
 	struct hist_entry *he;
 
-	he = __hists__add_entry(evsel__hists(evsel), al, iter->parent, NULL, NULL,
-				sample, true);
+	he = hists__add_entry(evsel__hists(evsel), al, iter->parent, NULL, NULL,
+			      sample, true);
 	if (he == NULL)
 		return -ENOMEM;
 
@@ -825,8 +825,8 @@ iter_add_single_cumulative_entry(struct hist_entry_iter *iter,
 	struct hist_entry *he;
 	int err = 0;
 
-	he = __hists__add_entry(hists, al, iter->parent, NULL, NULL,
-				sample, true);
+	he = hists__add_entry(hists, al, iter->parent, NULL, NULL,
+			      sample, true);
 	if (he == NULL)
 		return -ENOMEM;
 
@@ -900,8 +900,8 @@ iter_add_next_cumulative_entry(struct hist_entry_iter *iter,
 		}
 	}
 
-	he = __hists__add_entry(evsel__hists(evsel), al, iter->parent, NULL, NULL,
-				sample, false);
+	he = hists__add_entry(evsel__hists(evsel), al, iter->parent, NULL, NULL,
+			      sample, false);
 	if (he == NULL)
 		return -ENOMEM;
 
diff --git a/tools/perf/util/hist.h b/tools/perf/util/hist.h
index a19112872ff9..0a03e08be503 100644
--- a/tools/perf/util/hist.h
+++ b/tools/perf/util/hist.h
@@ -120,13 +120,13 @@ extern const struct hist_iter_ops hist_iter_branch;
 extern const struct hist_iter_ops hist_iter_mem;
 extern const struct hist_iter_ops hist_iter_cumulative;
 
-struct hist_entry *__hists__add_entry(struct hists *hists,
-				      struct addr_location *al,
-				      struct symbol *parent,
-				      struct branch_info *bi,
-				      struct mem_info *mi,
-				      struct perf_sample *sample,
-				      bool sample_self);
+struct hist_entry *hists__add_entry(struct hists *hists,
+				    struct addr_location *al,
+				    struct symbol *parent,
+				    struct branch_info *bi,
+				    struct mem_info *mi,
+				    struct perf_sample *sample,
+				    bool sample_self);
 int hist_entry_iter__add(struct hist_entry_iter *iter, struct addr_location *al,
 			 int max_stack_depth, void *arg);
 
-- 
2.5.5

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

* [PATCH 05/10] perf tools: Remove some unused functions
  2016-06-20 22:23 [GIT PULL 00/10] perf/core improvements and fixes Arnaldo Carvalho de Melo
                   ` (3 preceding siblings ...)
  2016-06-20 22:23 ` [PATCH 04/10] perf hists: Rename __hists__add_entry to hists__add_entry Arnaldo Carvalho de Melo
@ 2016-06-20 22:23 ` Arnaldo Carvalho de Melo
  2016-06-20 22:23 ` [PATCH 06/10] perf tools: Remove --perf-dir and --work-dir Arnaldo Carvalho de Melo
                   ` (5 subsequent siblings)
  10 siblings, 0 replies; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-06-20 22:23 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
	David Ahern, Jiri Olsa, Namhyung Kim, Wang Nan

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

Probably are there since the beginning, taken from git but never used.

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-lr65jeefffjeaywoapps9a6i@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/util/cache.h  |  4 ---
 tools/perf/util/config.c |  2 +-
 tools/perf/util/path.c   | 65 +-----------------------------------------------
 3 files changed, 2 insertions(+), 69 deletions(-)

diff --git a/tools/perf/util/cache.h b/tools/perf/util/cache.h
index 0d814bb74661..f260040abc90 100644
--- a/tools/perf/util/cache.h
+++ b/tools/perf/util/cache.h
@@ -32,7 +32,6 @@ int perf_config_int(const char *, const char *);
 u64 perf_config_u64(const char *, const char *);
 int perf_config_bool(const char *, const char *);
 int config_error_nonbool(const char *);
-const char *perf_config_dirname(const char *, const char *);
 const char *perf_etc_perfconfig(void);
 
 char *alias_lookup(const char *alias);
@@ -45,9 +44,6 @@ static inline int is_absolute_path(const char *path)
 	return path[0] == '/';
 }
 
-char *strip_path_suffix(const char *path, const char *suffix);
-
 char *mkpath(const char *fmt, ...) __attribute__((format (printf, 1, 2)));
-char *perf_path(const char *fmt, ...) __attribute__((format (printf, 1, 2)));
 
 #endif /* __PERF_CACHE_H */
diff --git a/tools/perf/util/config.c b/tools/perf/util/config.c
index 31e09a4e8862..d15c59267644 100644
--- a/tools/perf/util/config.c
+++ b/tools/perf/util/config.c
@@ -372,7 +372,7 @@ int perf_config_bool(const char *name, const char *value)
 	return !!perf_config_bool_or_int(name, value, &discard);
 }
 
-const char *perf_config_dirname(const char *name, const char *value)
+static const char *perf_config_dirname(const char *name, const char *value)
 {
 	if (!name)
 		return NULL;
diff --git a/tools/perf/util/path.c b/tools/perf/util/path.c
index 3bf6bf82ff2d..cff8bf0f87e8 100644
--- a/tools/perf/util/path.c
+++ b/tools/perf/util/path.c
@@ -14,14 +14,8 @@
 
 static char bad_path[] = "/bad-path/";
 /*
- * Two hacks:
+ * One hack:
  */
-
-static const char *get_perf_dir(void)
-{
-	return ".";
-}
-
 static char *get_pathname(void)
 {
 	static char pathname_array[4][PATH_MAX];
@@ -54,60 +48,3 @@ char *mkpath(const char *fmt, ...)
 		return bad_path;
 	return cleanup_path(pathname);
 }
-
-char *perf_path(const char *fmt, ...)
-{
-	const char *perf_dir = get_perf_dir();
-	char *pathname = get_pathname();
-	va_list args;
-	unsigned len;
-
-	len = strlen(perf_dir);
-	if (len > PATH_MAX-100)
-		return bad_path;
-	memcpy(pathname, perf_dir, len);
-	if (len && perf_dir[len-1] != '/')
-		pathname[len++] = '/';
-	va_start(args, fmt);
-	len += vsnprintf(pathname + len, PATH_MAX - len, fmt, args);
-	va_end(args);
-	if (len >= PATH_MAX)
-		return bad_path;
-	return cleanup_path(pathname);
-}
-
-/* strip arbitrary amount of directory separators at end of path */
-static inline int chomp_trailing_dir_sep(const char *path, int len)
-{
-	while (len && is_dir_sep(path[len - 1]))
-		len--;
-	return len;
-}
-
-/*
- * If path ends with suffix (complete path components), returns the
- * part before suffix (sans trailing directory separators).
- * Otherwise returns NULL.
- */
-char *strip_path_suffix(const char *path, const char *suffix)
-{
-	int path_len = strlen(path), suffix_len = strlen(suffix);
-
-	while (suffix_len) {
-		if (!path_len)
-			return NULL;
-
-		if (is_dir_sep(path[path_len - 1])) {
-			if (!is_dir_sep(suffix[suffix_len - 1]))
-				return NULL;
-			path_len = chomp_trailing_dir_sep(path, path_len);
-			suffix_len = chomp_trailing_dir_sep(suffix, suffix_len);
-		}
-		else if (path[--path_len] != suffix[--suffix_len])
-			return NULL;
-	}
-
-	if (path_len && !is_dir_sep(path[path_len - 1]))
-		return NULL;
-	return strndup(path, chomp_trailing_dir_sep(path, path_len));
-}
-- 
2.5.5

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

* [PATCH 06/10] perf tools: Remove --perf-dir and --work-dir
  2016-06-20 22:23 [GIT PULL 00/10] perf/core improvements and fixes Arnaldo Carvalho de Melo
                   ` (4 preceding siblings ...)
  2016-06-20 22:23 ` [PATCH 05/10] perf tools: Remove some unused functions Arnaldo Carvalho de Melo
@ 2016-06-20 22:23 ` Arnaldo Carvalho de Melo
  2016-06-20 22:23 ` [PATCH 07/10] perf llvm: Allow dump llvm output object file using llvm.dump-obj Arnaldo Carvalho de Melo
                   ` (4 subsequent siblings)
  10 siblings, 0 replies; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-06-20 22:23 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
	David Ahern, Jiri Olsa, Namhyung Kim, Wang Nan

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

Completely unused in perf, carried along all this time from the initial
copy of git infrastructure, ditch'em.

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-wtiln26gyqndprmkl0kdswvi@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/perf.c       | 36 ------------------------------------
 tools/perf/util/cache.h |  5 -----
 2 files changed, 41 deletions(-)

diff --git a/tools/perf/perf.c b/tools/perf/perf.c
index 15982cee5ef3..634bf7c6c477 100644
--- a/tools/perf/perf.c
+++ b/tools/perf/perf.c
@@ -139,8 +139,6 @@ struct option options[] = {
 	OPT_ARGUMENT("html-path", "html-path"),
 	OPT_ARGUMENT("paginate", "paginate"),
 	OPT_ARGUMENT("no-pager", "no-pager"),
-	OPT_ARGUMENT("perf-dir", "perf-dir"),
-	OPT_ARGUMENT("work-tree", "work-tree"),
 	OPT_ARGUMENT("debugfs-dir", "debugfs-dir"),
 	OPT_ARGUMENT("buildid-dir", "buildid-dir"),
 	OPT_ARGUMENT("list-cmds", "list-cmds"),
@@ -200,35 +198,6 @@ static int handle_options(const char ***argv, int *argc, int *envchanged)
 			use_pager = 0;
 			if (envchanged)
 				*envchanged = 1;
-		} else if (!strcmp(cmd, "--perf-dir")) {
-			if (*argc < 2) {
-				fprintf(stderr, "No directory given for --perf-dir.\n");
-				usage(perf_usage_string);
-			}
-			setenv(PERF_DIR_ENVIRONMENT, (*argv)[1], 1);
-			if (envchanged)
-				*envchanged = 1;
-			(*argv)++;
-			(*argc)--;
-			handled++;
-		} else if (!prefixcmp(cmd, CMD_PERF_DIR)) {
-			setenv(PERF_DIR_ENVIRONMENT, cmd + strlen(CMD_PERF_DIR), 1);
-			if (envchanged)
-				*envchanged = 1;
-		} else if (!strcmp(cmd, "--work-tree")) {
-			if (*argc < 2) {
-				fprintf(stderr, "No directory given for --work-tree.\n");
-				usage(perf_usage_string);
-			}
-			setenv(PERF_WORK_TREE_ENVIRONMENT, (*argv)[1], 1);
-			if (envchanged)
-				*envchanged = 1;
-			(*argv)++;
-			(*argc)--;
-		} else if (!prefixcmp(cmd, CMD_WORK_TREE)) {
-			setenv(PERF_WORK_TREE_ENVIRONMENT, cmd + strlen(CMD_WORK_TREE), 1);
-			if (envchanged)
-				*envchanged = 1;
 		} else if (!strcmp(cmd, "--debugfs-dir")) {
 			if (*argc < 2) {
 				fprintf(stderr, "No directory given for --debugfs-dir.\n");
@@ -363,11 +332,6 @@ const char perf_version_string[] = PERF_VERSION;
 
 #define RUN_SETUP	(1<<0)
 #define USE_PAGER	(1<<1)
-/*
- * require working tree to be present -- anything uses this needs
- * RUN_SETUP for reading from the configuration file.
- */
-#define NEED_WORK_TREE	(1<<2)
 
 static int run_builtin(struct cmd_struct *p, int argc, const char **argv)
 {
diff --git a/tools/perf/util/cache.h b/tools/perf/util/cache.h
index f260040abc90..369f382eedb6 100644
--- a/tools/perf/util/cache.h
+++ b/tools/perf/util/cache.h
@@ -11,14 +11,9 @@
 #include <linux/string.h>
 
 #define CMD_EXEC_PATH "--exec-path"
-#define CMD_PERF_DIR "--perf-dir="
-#define CMD_WORK_TREE "--work-tree="
 #define CMD_DEBUGFS_DIR "--debugfs-dir="
 
-#define PERF_DIR_ENVIRONMENT "PERF_DIR"
-#define PERF_WORK_TREE_ENVIRONMENT "PERF_WORK_TREE"
 #define EXEC_PATH_ENVIRONMENT "PERF_EXEC_PATH"
-#define DEFAULT_PERF_DIR_ENVIRONMENT ".perf"
 #define PERF_DEBUGFS_ENVIRONMENT "PERF_DEBUGFS_DIR"
 #define PERF_TRACEFS_ENVIRONMENT "PERF_TRACEFS_DIR"
 #define PERF_PAGER_ENVIRONMENT "PERF_PAGER"
-- 
2.5.5

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

* [PATCH 07/10] perf llvm: Allow dump llvm output object file using llvm.dump-obj
  2016-06-20 22:23 [GIT PULL 00/10] perf/core improvements and fixes Arnaldo Carvalho de Melo
                   ` (5 preceding siblings ...)
  2016-06-20 22:23 ` [PATCH 06/10] perf tools: Remove --perf-dir and --work-dir Arnaldo Carvalho de Melo
@ 2016-06-20 22:23 ` Arnaldo Carvalho de Melo
  2016-06-20 22:23 ` [PATCH 08/10] perf record: Add --dry-run option to check cmdline options Arnaldo Carvalho de Melo
                   ` (3 subsequent siblings)
  10 siblings, 0 replies; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-06-20 22:23 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Wang Nan, Alexei Starovoitov, Jiri Olsa, pi3orama,
	Arnaldo Carvalho de Melo

From: Wang Nan <wangnan0@huawei.com>

Add a 'llvm.dump-obj' config option to enable perf dump BPF object files
compiled by LLVM.

This option is useful when using BPF objects in embedded platforms.
LLVM compiler won't be deployed in these platforms, and currently we
don't support dynamic compiling library.

Before this patch users have to explicitly issue llvm commands to
compile BPF scripts, and can't use helpers (like include path detection
and default macros) in perf. With this option, user is allowed to use
perf to compile their BPF objects then copy them into their embedded
platforms.

Committer notice:

Testing it:

  # cat ~/.perfconfig
  [llvm]
	dump-obj = true
  #
  # ls -la filter.o
  ls: cannot access filter.o: No such file or directory
  # cat filter.c
  #include <uapi/linux/bpf.h>
  #define SEC(NAME) __attribute__((section(NAME), used))

  SEC("func=hrtimer_nanosleep rqtp->tv_nsec")
  int func(void *ctx, int err, long nsec)
  {
	return nsec > 1000;
  }
  char _license[] SEC("license") = "GPL";
  int _version SEC("version") = LINUX_VERSION_CODE;
  # trace -e nanosleep --event filter.c usleep 6
  LLVM: dumping filter.o
     0.007 ( 0.007 ms): usleep/13976 nanosleep(rqtp: 0x7ffc5847f640                                        ) ...
     0.007 (         ): perf_bpf_probe:func:(ffffffff811137d0) tv_nsec=6000)
     0.070 ( 0.070 ms): usleep/13976  ... [continued]: nanosleep()) = 0
  # ls -la filter.o
  -rw-r--r--. 1 root root 776 Jun 20 17:01 filter.o
  # readelf -SW filter.o
  There are 7 section headers, starting at offset 0x148:

  Section Headers:
   [Nr] Name        Type       Address          Off    Size   ES Flg Lk Inf Al
   [ 0]             NULL       0000000000000000 000000 000000 00      0   0  0
   [ 1] .strtab     STRTAB     0000000000000000 0000e8 00005a 00      0   0  1
   [ 2] .text       PROGBITS   0000000000000000 000040 000000 00  AX  0   0  4
   [ 3] func=hrtimer_nanosleep rqtp->tv_nsec PROGBITS 0000000000000000 000040 000028 00  AX  0   0  8
   [ 4] license     PROGBITS   0000000000000000 000068 000004 00  WA  0   0  1
   [ 5] version     PROGBITS   0000000000000000 00006c 000004 00  WA  0   0  4
   [ 6] .symtab     SYMTAB     0000000000000000 000070 000078 18      1   2  8
  Key to Flags:
   W (write), A (alloc), X (execute), M (merge), S (strings)
   I (info), L (link order), G (group), T (TLS), E (exclude), x (unknown)
   O (extra OS processing required) o (OS specific), p (processor specific)
   #

Signed-off-by: Wang Nan <wangnan0@huawei.com>
Cc: Alexei Starovoitov <ast@kernel.org>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: pi3orama@163.com
Link: http://lkml.kernel.org/r/1466064161-48553-2-git-send-email-wangnan0@huawei.com
[ s/dumpping/dumping/g ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/util/llvm-utils.c | 42 ++++++++++++++++++++++++++++++++++++++++++
 tools/perf/util/llvm-utils.h |  5 +++++
 2 files changed, 47 insertions(+)

diff --git a/tools/perf/util/llvm-utils.c b/tools/perf/util/llvm-utils.c
index 33071d6159bc..878a566763c3 100644
--- a/tools/perf/util/llvm-utils.c
+++ b/tools/perf/util/llvm-utils.c
@@ -42,6 +42,8 @@ int perf_llvm_config(const char *var, const char *value)
 		llvm_param.kbuild_dir = strdup(value);
 	else if (!strcmp(var, "kbuild-opts"))
 		llvm_param.kbuild_opts = strdup(value);
+	else if (!strcmp(var, "dump-obj"))
+		llvm_param.dump_obj = !!perf_config_bool(var, value);
 	else
 		return -1;
 	llvm_param.user_set_param = true;
@@ -326,6 +328,42 @@ get_kbuild_opts(char **kbuild_dir, char **kbuild_include_opts)
 	pr_debug("include option is set to %s\n", *kbuild_include_opts);
 }
 
+static void
+dump_obj(const char *path, void *obj_buf, size_t size)
+{
+	char *obj_path = strdup(path);
+	FILE *fp;
+	char *p;
+
+	if (!obj_path) {
+		pr_warning("WARNING: No enough memory, skip object dumping\n");
+		return;
+	}
+
+	p = strrchr(obj_path, '.');
+	if (!p || (strcmp(p, ".c") != 0)) {
+		pr_warning("WARNING: invalid llvm source path: '%s', skip object dumping\n",
+			   obj_path);
+		goto out;
+	}
+
+	p[1] = 'o';
+	fp = fopen(obj_path, "wb");
+	if (!fp) {
+		pr_warning("WARNING: failed to open '%s': %s, skip object dumping\n",
+			   obj_path, strerror(errno));
+		goto out;
+	}
+
+	pr_info("LLVM: dumping %s\n", obj_path);
+	if (fwrite(obj_buf, size, 1, fp) != 1)
+		pr_warning("WARNING: failed to write to file '%s': %s, skip object dumping\n",
+			   obj_path, strerror(errno));
+	fclose(fp);
+out:
+	free(obj_path);
+}
+
 int llvm__compile_bpf(const char *path, void **p_obj_buf,
 		      size_t *p_obj_buf_sz)
 {
@@ -411,6 +449,10 @@ int llvm__compile_bpf(const char *path, void **p_obj_buf,
 
 	free(kbuild_dir);
 	free(kbuild_include_opts);
+
+	if (llvm_param.dump_obj)
+		dump_obj(path, obj_buf, obj_buf_sz);
+
 	if (!p_obj_buf)
 		free(obj_buf);
 	else
diff --git a/tools/perf/util/llvm-utils.h b/tools/perf/util/llvm-utils.h
index 23b9a743fe72..9f501cef06a1 100644
--- a/tools/perf/util/llvm-utils.h
+++ b/tools/perf/util/llvm-utils.h
@@ -30,6 +30,11 @@ struct llvm_param {
 	 */
 	const char *kbuild_opts;
 	/*
+	 * Default is false. If set to true, write compiling result
+	 * to object file.
+	 */
+	bool dump_obj;
+	/*
 	 * Default is false. If one of the above fields is set by user
 	 * explicitly then user_set_llvm is set to true. This is used
 	 * for perf test. If user doesn't set anything in .perfconfig
-- 
2.5.5

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

* [PATCH 08/10] perf record: Add --dry-run option to check cmdline options
  2016-06-20 22:23 [GIT PULL 00/10] perf/core improvements and fixes Arnaldo Carvalho de Melo
                   ` (6 preceding siblings ...)
  2016-06-20 22:23 ` [PATCH 07/10] perf llvm: Allow dump llvm output object file using llvm.dump-obj Arnaldo Carvalho de Melo
@ 2016-06-20 22:23 ` Arnaldo Carvalho de Melo
  2016-06-20 22:23 ` [PATCH 09/10] perf evsel: Fix write_backwards fallback Arnaldo Carvalho de Melo
                   ` (2 subsequent siblings)
  10 siblings, 0 replies; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-06-20 22:23 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Wang Nan, Alexei Starovoitov, Jiri Olsa, pi3orama,
	Arnaldo Carvalho de Melo

From: Wang Nan <wangnan0@huawei.com>

With '--dry-run', 'perf record' doesn't do reall recording. Combine with
llvm.dump-obj option, --dry-run can be used to help compile BPF objects
for embedded platform.

Signed-off-by: Wang Nan <wangnan0@huawei.com>
Cc: Alexei Starovoitov <ast@kernel.org>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: pi3orama@163.com
Link: http://lkml.kernel.org/r/1466064161-48553-3-git-send-email-wangnan0@huawei.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/Documentation/perf-record.txt | 7 +++++++
 tools/perf/builtin-record.c              | 7 +++++++
 2 files changed, 14 insertions(+)

diff --git a/tools/perf/Documentation/perf-record.txt b/tools/perf/Documentation/perf-record.txt
index 8dbee832abd9..5b46b1d1a37c 100644
--- a/tools/perf/Documentation/perf-record.txt
+++ b/tools/perf/Documentation/perf-record.txt
@@ -360,6 +360,13 @@ particular perf.data snapshot should be kept or not.
 
 Implies --timestamp-filename, --no-buildid and --no-buildid-cache.
 
+--dry-run::
+Parse options then exit. --dry-run can be used to detect errors in cmdline
+options.
+
+'perf record --dry-run -e' can act as a BPF script compiler if llvm.dump-obj
+in config file is set to true.
+
 SEE ALSO
 --------
 linkperf:perf-stat[1], linkperf:perf-list[1]
diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
index d4cf1b0c88f9..b1304ebc8779 100644
--- a/tools/perf/builtin-record.c
+++ b/tools/perf/builtin-record.c
@@ -1274,6 +1274,8 @@ static struct record record = {
 const char record_callchain_help[] = CALLCHAIN_RECORD_HELP
 	"\n\t\t\t\tDefault: fp";
 
+static bool dry_run;
+
 /*
  * XXX Will stay a global variable till we fix builtin-script.c to stop messing
  * with it and switch to use the library functions in perf_evlist that came
@@ -1393,6 +1395,8 @@ struct option __record_options[] = {
 		    "append timestamp to output filename"),
 	OPT_BOOLEAN(0, "switch-output", &record.switch_output,
 		    "Switch output when receive SIGUSR2"),
+	OPT_BOOLEAN(0, "dry-run", &dry_run,
+		    "Parse options then exit"),
 	OPT_END()
 };
 
@@ -1462,6 +1466,9 @@ int cmd_record(int argc, const char **argv, const char *prefix __maybe_unused)
 	if (err)
 		return err;
 
+	if (dry_run)
+		return 0;
+
 	err = bpf__setup_stdout(rec->evlist);
 	if (err) {
 		bpf__strerror_setup_stdout(rec->evlist, err, errbuf, sizeof(errbuf));
-- 
2.5.5

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

* [PATCH 09/10] perf evsel: Fix write_backwards fallback
  2016-06-20 22:23 [GIT PULL 00/10] perf/core improvements and fixes Arnaldo Carvalho de Melo
                   ` (7 preceding siblings ...)
  2016-06-20 22:23 ` [PATCH 08/10] perf record: Add --dry-run option to check cmdline options Arnaldo Carvalho de Melo
@ 2016-06-20 22:23 ` Arnaldo Carvalho de Melo
  2016-06-20 22:23 ` [PATCH 10/10] perf script: Add stackcollapse.py script Arnaldo Carvalho de Melo
  2016-06-21  2:18 ` [GIT PULL 00/10] perf/core improvements and fixes Namhyung Kim
  10 siblings, 0 replies; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-06-20 22:23 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, He Kuang, Jiri Olsa,
	Masami Hiramatsu, Namhyung Kim, Zefan Li, pi3orama, Wang Nan,
	Arnaldo Carvalho de Melo

Commit b90dc17a5d14 "perf evsel: Add overwrite attribute and check
write_backward" misunderstood the 'order' should be obeyed in
__perf_evsel__open.

But the way this was done for attr.write_backwards was buggy, as we need
to check features in the inverse order of their introduction to the
kernel, so that a newer tool checks first the newest perf_event_attr
fields, detecting that the older kernel doesn't have support for them.

Also, we can avoid calling sys_perf_event_open() if we have already
detected the missing of write_backward.

Cc: He Kuang <hekuang@huawei.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Zefan Li <lizefan@huawei.com>
Cc: pi3orama@163.com
Fixes: b90dc17a5d14 ("perf evsel: Add overwrite attribute and check write_backward")
Link: http://lkml.kernel.org/r/1466419645-75551-2-git-send-email-wangnan0@huawei.com
Link: http://lkml.kernel.org/r/20160616214724.GI13337@kernel.org
Signed-off-by: Wang Nan <wangnan0@huawei.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/util/evsel.c | 23 ++++++++++-------------
 1 file changed, 10 insertions(+), 13 deletions(-)

diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
index 9b2e3e624efe..1d8f2bbd38a7 100644
--- a/tools/perf/util/evsel.c
+++ b/tools/perf/util/evsel.c
@@ -1389,8 +1389,11 @@ fallback_missing_features:
 	if (perf_missing_features.lbr_flags)
 		evsel->attr.branch_sample_type &= ~(PERF_SAMPLE_BRANCH_NO_FLAGS |
 				     PERF_SAMPLE_BRANCH_NO_CYCLES);
-	if (perf_missing_features.write_backward)
+	if (perf_missing_features.write_backward) {
+		if (evsel->overwrite)
+			return -EINVAL;
 		evsel->attr.write_backward = false;
+	}
 retry_sample_id:
 	if (perf_missing_features.sample_id_all)
 		evsel->attr.sample_id_all = 0;
@@ -1453,12 +1456,6 @@ retry_open:
 				err = -EINVAL;
 				goto out_close;
 			}
-
-			if (evsel->overwrite &&
-			    perf_missing_features.write_backward) {
-				err = -EINVAL;
-				goto out_close;
-			}
 		}
 	}
 
@@ -1496,7 +1493,10 @@ try_fallback:
 	 * Must probe features in the order they were added to the
 	 * perf_event_attr interface.
 	 */
-	if (!perf_missing_features.clockid_wrong && evsel->attr.use_clockid) {
+	if (!perf_missing_features.write_backward && evsel->attr.write_backward) {
+		perf_missing_features.write_backward = true;
+		goto fallback_missing_features;
+	} else if (!perf_missing_features.clockid_wrong && evsel->attr.use_clockid) {
 		perf_missing_features.clockid_wrong = true;
 		goto fallback_missing_features;
 	} else if (!perf_missing_features.clockid && evsel->attr.use_clockid) {
@@ -1521,12 +1521,7 @@ try_fallback:
 			  PERF_SAMPLE_BRANCH_NO_FLAGS))) {
 		perf_missing_features.lbr_flags = true;
 		goto fallback_missing_features;
-	} else if (!perf_missing_features.write_backward &&
-			evsel->attr.write_backward) {
-		perf_missing_features.write_backward = true;
-		goto fallback_missing_features;
 	}
-
 out_close:
 	do {
 		while (--thread >= 0) {
@@ -2409,6 +2404,8 @@ int perf_evsel__open_strerror(struct perf_evsel *evsel, struct target *target,
 	"We found oprofile daemon running, please stop it and try again.");
 		break;
 	case EINVAL:
+		if (evsel->overwrite && perf_missing_features.write_backward)
+			return scnprintf(msg, size, "Reading from overwrite event is not supported by this kernel.");
 		if (perf_missing_features.clockid)
 			return scnprintf(msg, size, "clockid feature not supported.");
 		if (perf_missing_features.clockid_wrong)
-- 
2.5.5

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

* [PATCH 10/10] perf script: Add stackcollapse.py script
  2016-06-20 22:23 [GIT PULL 00/10] perf/core improvements and fixes Arnaldo Carvalho de Melo
                   ` (8 preceding siblings ...)
  2016-06-20 22:23 ` [PATCH 09/10] perf evsel: Fix write_backwards fallback Arnaldo Carvalho de Melo
@ 2016-06-20 22:23 ` Arnaldo Carvalho de Melo
  2016-06-21 18:36   ` Brendan Gregg
  2016-06-21  2:18 ` [GIT PULL 00/10] perf/core improvements and fixes Namhyung Kim
  10 siblings, 1 reply; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-06-20 22:23 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Paolo Bonzini, Brendan Gregg, Arnaldo Carvalho de Melo

From: Paolo Bonzini <pbonzini@redhat.com>

Add stackcollapse.py script as an example of parsing call chains, and
also of using optparse to access command line options.

The flame graph tools include a set of scripts that parse output from
various tools (including "perf script"), remove the offsets in the
function and collapse each stack to a single line.  The website also
says "perf report could have a report style [...] that output folded
stacks directly, obviating the need for stackcollapse-perf.pl", so here
it is.

This script is a Python rewrite of stackcollapse-perf.pl, using the perf
scripting interface to access the perf data directly from Python.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: Brendan Gregg <bgregg@netflix.com>
Link: http://lkml.kernel.org/r/1460467573-22989-1-git-send-email-pbonzini@redhat.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/scripts/python/bin/stackcollapse-record |   8 ++
 tools/perf/scripts/python/bin/stackcollapse-report |   3 +
 tools/perf/scripts/python/stackcollapse.py         | 127 +++++++++++++++++++++
 3 files changed, 138 insertions(+)
 create mode 100755 tools/perf/scripts/python/bin/stackcollapse-record
 create mode 100755 tools/perf/scripts/python/bin/stackcollapse-report
 create mode 100755 tools/perf/scripts/python/stackcollapse.py

diff --git a/tools/perf/scripts/python/bin/stackcollapse-record b/tools/perf/scripts/python/bin/stackcollapse-record
new file mode 100755
index 000000000000..9d8f9f0f3a17
--- /dev/null
+++ b/tools/perf/scripts/python/bin/stackcollapse-record
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+#
+# stackcollapse.py can cover all type of perf samples including
+# the tracepoints, so no special record requirements, just record what
+# you want to analyze.
+#
+perf record "$@"
diff --git a/tools/perf/scripts/python/bin/stackcollapse-report b/tools/perf/scripts/python/bin/stackcollapse-report
new file mode 100755
index 000000000000..356b9656393d
--- /dev/null
+++ b/tools/perf/scripts/python/bin/stackcollapse-report
@@ -0,0 +1,3 @@
+#!/bin/sh
+# description: produce callgraphs in short form for scripting use
+perf script -s "$PERF_EXEC_PATH"/scripts/python/stackcollapse.py -- "$@"
diff --git a/tools/perf/scripts/python/stackcollapse.py b/tools/perf/scripts/python/stackcollapse.py
new file mode 100755
index 000000000000..a2dfcda41ae6
--- /dev/null
+++ b/tools/perf/scripts/python/stackcollapse.py
@@ -0,0 +1,127 @@
+#!/usr/bin/perl -w
+#
+# stackcollapse.py - format perf samples with one line per distinct call stack
+#
+# This script's output has two space-separated fields.  The first is a semicolon
+# separated stack including the program name (from the "comm" field) and the
+# function names from the call stack.  The second is a count:
+#
+#  swapper;start_kernel;rest_init;cpu_idle;default_idle;native_safe_halt 2
+#
+# The file is sorted according to the first field.
+#
+# Input may be created and processed using:
+#
+#  perf record -a -g -F 99 sleep 60
+#  perf script report stackcollapse > out.stacks-folded
+#
+# (perf script record stackcollapse works too).
+#
+# Written by Paolo Bonzini <pbonzini@redhat.com>
+# Based on Brendan Gregg's stackcollapse-perf.pl script.
+
+import os
+import sys
+from collections import defaultdict
+from optparse import OptionParser, make_option
+
+sys.path.append(os.environ['PERF_EXEC_PATH'] + \
+                '/scripts/python/Perf-Trace-Util/lib/Perf/Trace')
+
+from perf_trace_context import *
+from Core import *
+from EventClass import *
+
+# command line parsing
+
+option_list = [
+    # formatting options for the bottom entry of the stack
+    make_option("--include-tid", dest="include_tid",
+                 action="store_true", default=False,
+                 help="include thread id in stack"),
+    make_option("--include-pid", dest="include_pid",
+                 action="store_true", default=False,
+                 help="include process id in stack"),
+    make_option("--no-comm", dest="include_comm",
+                 action="store_false", default=True,
+                 help="do not separate stacks according to comm"),
+    make_option("--tidy-java", dest="tidy_java",
+                 action="store_true", default=False,
+                 help="beautify Java signatures"),
+    make_option("--kernel", dest="annotate_kernel",
+                 action="store_true", default=False,
+                 help="annotate kernel functions with _[k]")
+]
+
+parser = OptionParser(option_list=option_list)
+(opts, args) = parser.parse_args()
+
+if len(args) != 0:
+    parser.error("unexpected command line argument")
+if opts.include_tid and not opts.include_comm:
+    parser.error("requesting tid but not comm is invalid")
+if opts.include_pid and not opts.include_comm:
+    parser.error("requesting pid but not comm is invalid")
+
+# event handlers
+
+lines = defaultdict(lambda: 0)
+
+def process_event(param_dict):
+    def tidy_function_name(sym, dso):
+        if sym is None:
+            sym = '[unknown]'
+
+        sym = sym.replace(';', ':')
+        if opts.tidy_java:
+            # the original stackcollapse-perf.pl script gives the
+            # example of converting this:
+            #    Lorg/mozilla/javascript/MemberBox;.<init>(Ljava/lang/reflect/Method;)V
+            # to this:
+            #    org/mozilla/javascript/MemberBox:.init
+            sym = sym.replace('<', '')
+            sym = sym.replace('>', '')
+            if sym[0] == 'L' and sym.find('/'):
+                sym = sym[1:]
+            try:
+                sym = sym[:sym.index('(')]
+            except ValueError:
+                pass
+
+        if opts.annotate_kernel and dso == '[kernel.kallsyms]':
+            return sym + '_[k]'
+        else:
+            return sym
+
+    stack = list()
+    if 'callchain' in param_dict:
+        for entry in param_dict['callchain']:
+            entry.setdefault('sym', dict())
+            entry['sym'].setdefault('name', None)
+            entry.setdefault('dso', None)
+            stack.append(tidy_function_name(entry['sym']['name'],
+                                            entry['dso']))
+    else:
+        param_dict.setdefault('symbol', None)
+        param_dict.setdefault('dso', None)
+        stack.append(tidy_function_name(param_dict['symbol'],
+                                        param_dict['dso']))
+
+    if opts.include_comm:
+        comm = param_dict["comm"].replace(' ', '_')
+        sep = "-"
+        if opts.include_pid:
+            comm = comm + sep + str(param_dict['sample']['pid'])
+            sep = "/"
+        if opts.include_tid:
+            comm = comm + sep + str(param_dict['sample']['tid'])
+        stack.append(comm)
+
+    stack_string = ';'.join(reversed(stack))
+    lines[stack_string] = lines[stack_string] + 1
+
+def trace_end():
+    list = lines.keys()
+    list.sort()
+    for stack in list:
+        print "%s %d" % (stack, lines[stack])
-- 
2.5.5

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

* Re: [GIT PULL 00/10] perf/core improvements and fixes
  2016-06-20 22:23 [GIT PULL 00/10] perf/core improvements and fixes Arnaldo Carvalho de Melo
                   ` (9 preceding siblings ...)
  2016-06-20 22:23 ` [PATCH 10/10] perf script: Add stackcollapse.py script Arnaldo Carvalho de Melo
@ 2016-06-21  2:18 ` Namhyung Kim
  2016-06-21  3:11   ` Brendan Gregg
  10 siblings, 1 reply; 59+ messages in thread
From: Namhyung Kim @ 2016-06-21  2:18 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Ingo Molnar, linux-kernel, Adrian Hunter, Alexander Shishkin,
	Alexei Starovoitov, Andi Kleen, Brendan Gregg, David Ahern,
	Ekaterina Tumanova, He Kuang, Jean Delvare, Jiri Olsa,
	Josh Poimboeuf, Kan Liang, linux-kbuild, Masami Hiramatsu,
	Michal Marek, Paolo Bonzini, Pekka Enberg, Peter Zijlstra,
	pi3orama, Stephane Eranian, Sukadev Bhattiprolu, Wang Nan,
	Zefan Li, Arnaldo Carvalho de Melo

Hi Arnaldo,

On Mon, Jun 20, 2016 at 07:23:20PM -0300, Arnaldo Carvalho de Melo wrote:
> Hi Ingo,
> 
> 	Please consider pulling,
> 
> - Arnaldo
> 
> The following changes since commit 02469a95096a549508c5adf61d84a1d72851c85b:
> 
>   Merge tag 'perf-core-for-mingo-20160615' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2016-06-16 10:27:35 +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-20160620
> 
> for you to fetch changes up to 2a0a7c72702bac1b87cd4d49196a334483386fab:
> 
>   perf script: Add stackcollapse.py script (2016-06-20 17:50:39 -0300)
> 
> ----------------------------------------------------------------
> perf/core improvements and fixes:
> 
> New features:
> 
> . Add --dry-run option to 'perf record' to check if command line options can be
>   parsed, but not doing any recording (Wang Nan)
> 
> . Allow dumping the object files generated by llvm when processing eBPF
>   scriptlet events (Wang Nan)
> 
> - Add stackcollapse.py script to help generating flame graphs (Paolo Bonzini)

I think this is already done by '-g folded'.  Please see:

  http://www.brendangregg.com/blog/2016-04-30/linux-perf-folded.html

Thanks,
Namhyung


> 
> Documentation:
> 
> . Fix 'perf script'  documentation of '-f' when it should be '-F' (Adrian Hunter)
> 
> Infrastructure:
> 
> - Fix write_backwards fallback when using a new tool on older kernels
>   without support for this feature (Arnaldo Carvalho de Melo)
> 
> - Find vdso file in cross-platform perf.data file processing scenarios (He Kuang)
> 
> - Remove some leftovers from the initial codebase copying from git
>   (Arnaldo Carvalho de Melo)
> 
> - List libelf-devel as an alternative, as this is how the libelf
>   development package is called on OpenSuSE (Jean Delvare)
> 
> - Rename __hists__add_entry to hists__add_entry (Jiri Olsa)
> 
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> ----------------------------------------------------------------
> Adrian Hunter (1):
>       perf script: Fix documentation of '-f' when it should be '-F'
> 
> Arnaldo Carvalho de Melo (3):
>       perf tools: Remove some unused functions
>       perf tools: Remove --perf-dir and --work-dir
>       perf evsel: Fix write_backwards fallback
> 
> He Kuang (1):
>       perf tools: Find vdso with the consider of cross-platform
> 
> Jean Delvare (1):
>       kbuild: List libelf-devel as an alternative
> 
> Jiri Olsa (1):
>       perf hists: Rename __hists__add_entry to hists__add_entry
> 
> Paolo Bonzini (1):
>       perf script: Add stackcollapse.py script
> 
> Wang Nan (2):
>       perf llvm: Allow dump llvm output object file using llvm.dump-obj
>       perf record: Add --dry-run option to check cmdline options
> 
>  Makefile                                           |   2 +-
>  tools/perf/Documentation/perf-record.txt           |   7 ++
>  tools/perf/Documentation/perf-script.txt           |  20 ++--
>  tools/perf/builtin-annotate.c                      |   2 +-
>  tools/perf/builtin-diff.c                          |  12 +-
>  tools/perf/builtin-record.c                        |   7 ++
>  tools/perf/config/Makefile                         |   2 +-
>  tools/perf/perf.c                                  |  36 ------
>  tools/perf/scripts/python/bin/stackcollapse-record |   8 ++
>  tools/perf/scripts/python/bin/stackcollapse-report |   3 +
>  tools/perf/scripts/python/stackcollapse.py         | 127 +++++++++++++++++++++
>  tools/perf/tests/hists_link.c                      |   4 +-
>  tools/perf/util/cache.h                            |   9 --
>  tools/perf/util/config.c                           |   2 +-
>  tools/perf/util/evsel.c                            |  23 ++--
>  tools/perf/util/hist.c                             |  34 +++---
>  tools/perf/util/hist.h                             |  14 +--
>  tools/perf/util/llvm-utils.c                       |  42 +++++++
>  tools/perf/util/llvm-utils.h                       |   5 +
>  tools/perf/util/path.c                             |  65 +----------
>  tools/perf/util/vdso.c                             |  40 ++++++-
>  21 files changed, 288 insertions(+), 176 deletions(-)
>  create mode 100755 tools/perf/scripts/python/bin/stackcollapse-record
>  create mode 100755 tools/perf/scripts/python/bin/stackcollapse-report
>  create mode 100755 tools/perf/scripts/python/stackcollapse.py

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

* Re: [GIT PULL 00/10] perf/core improvements and fixes
  2016-06-21  2:18 ` [GIT PULL 00/10] perf/core improvements and fixes Namhyung Kim
@ 2016-06-21  3:11   ` Brendan Gregg
  2016-06-21 10:08     ` Paolo Bonzini
  0 siblings, 1 reply; 59+ messages in thread
From: Brendan Gregg @ 2016-06-21  3:11 UTC (permalink / raw)
  To: Namhyung Kim
  Cc: Arnaldo Carvalho de Melo, Ingo Molnar, linux-kernel,
	Adrian Hunter, Alexander Shishkin, Alexei Starovoitov,
	Andi Kleen, David Ahern, Ekaterina Tumanova, He Kuang,
	Jean Delvare, Jiri Olsa, Josh Poimboeuf, Kan Liang, linux-kbuild,
	Masami Hiramatsu, Michal Marek, Paolo Bonzini, Pekka Enberg,
	Peter Zijlstra, pi3orama, Stephane Eranian, Sukadev Bhattiprolu,
	Wang Nan, Zefan Li, Arnaldo Carvalho de Melo

On Mon, Jun 20, 2016 at 7:18 PM, Namhyung Kim <namhyung@kernel.org> wrote:
>
> Hi Arnaldo,
>
> On Mon, Jun 20, 2016 at 07:23:20PM -0300, Arnaldo Carvalho de Melo wrote:
> > Hi Ingo,
> >
> >       Please consider pulling,
> >
> > - Arnaldo
> >
> > The following changes since commit 02469a95096a549508c5adf61d84a1d72851c85b:
> >
> >   Merge tag 'perf-core-for-mingo-20160615' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2016-06-16 10:27:35 +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-20160620
> >
> > for you to fetch changes up to 2a0a7c72702bac1b87cd4d49196a334483386fab:
> >
> >   perf script: Add stackcollapse.py script (2016-06-20 17:50:39 -0300)
> >
> > ----------------------------------------------------------------
> > perf/core improvements and fixes:
> >
> > New features:
> >
> > . Add --dry-run option to 'perf record' to check if command line options can be
> >   parsed, but not doing any recording (Wang Nan)
> >
> > . Allow dumping the object files generated by llvm when processing eBPF
> >   scriptlet events (Wang Nan)
> >
> > - Add stackcollapse.py script to help generating flame graphs (Paolo Bonzini)
>
> I think this is already done by '-g folded'.  Please see:
>
>   http://www.brendangregg.com/blog/2016-04-30/linux-perf-folded.html
>

Pretty much. Two similar solutions were developed around the same
time. Although I have to use some awk to get "perf -g folded" in the
exact right format, and stackcollapse-perf.py does that directly.

Brendan

Brendan Gregg, Senior Performance Architect, Netflix

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

* Re: [GIT PULL 00/10] perf/core improvements and fixes
  2016-06-21  3:11   ` Brendan Gregg
@ 2016-06-21 10:08     ` Paolo Bonzini
  2016-06-21 16:14       ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 59+ messages in thread
From: Paolo Bonzini @ 2016-06-21 10:08 UTC (permalink / raw)
  To: Brendan Gregg, Namhyung Kim
  Cc: Arnaldo Carvalho de Melo, Ingo Molnar, linux-kernel,
	Adrian Hunter, Alexander Shishkin, Alexei Starovoitov,
	Andi Kleen, David Ahern, Ekaterina Tumanova, He Kuang,
	Jean Delvare, Jiri Olsa, Josh Poimboeuf, Kan Liang, linux-kbuild,
	Masami Hiramatsu, Michal Marek, Pekka Enberg, Peter Zijlstra,
	pi3orama, Stephane Eranian, Sukadev Bhattiprolu, Wang Nan,
	Zefan Li, Arnaldo Carvalho de Melo



On 21/06/2016 05:11, Brendan Gregg wrote:
>>> > > - Add stackcollapse.py script to help generating flame graphs (Paolo Bonzini)
>> >
>> > I think this is already done by '-g folded'.  Please see:
>> >
>> >   http://www.brendangregg.com/blog/2016-04-30/linux-perf-folded.html
>> >
> Pretty much. Two similar solutions were developed around the same
> time. Although I have to use some awk to get "perf -g folded" in the
> exact right format, and stackcollapse-perf.py does that directly.

Yes, the idea for stackcollapse-perf.py was:

- to do everything directly and emit "the right" format for the
flamegraph tools.  This however is a very minimal output, and it's not
necessarily the best for perf in general.

- to provide an example of visiting callgraphs from the scripting
interface, since it's not really documented.  From the commit message:
"Add stackcollapse.py script as an example of parsing call chains, and
also of using optparse to access command line options".

Paolo

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

* Re: [GIT PULL 00/10] perf/core improvements and fixes
  2016-06-21 10:08     ` Paolo Bonzini
@ 2016-06-21 16:14       ` Arnaldo Carvalho de Melo
  0 siblings, 0 replies; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-06-21 16:14 UTC (permalink / raw)
  To: Paolo Bonzini
  Cc: Brendan Gregg, Namhyung Kim, Arnaldo Carvalho de Melo,
	Ingo Molnar, linux-kernel, Adrian Hunter, Alexander Shishkin,
	Alexei Starovoitov, Andi Kleen, David Ahern, Ekaterina Tumanova,
	He Kuang, Jean Delvare, Jiri Olsa, Josh Poimboeuf, Kan Liang,
	linux-kbuild, Masami Hiramatsu, Michal Marek, Pekka Enberg,
	Peter Zijlstra, pi3orama, Stephane Eranian, Sukadev Bhattiprolu,
	Wang Nan, Zefan Li

Em Tue, Jun 21, 2016 at 12:08:47PM +0200, Paolo Bonzini escreveu:
> On 21/06/2016 05:11, Brendan Gregg wrote:
> >>> > > - Add stackcollapse.py script to help generating flame graphs (Paolo Bonzini)
> >> >
> >> > I think this is already done by '-g folded'.  Please see:
> >> >
> >> >   http://www.brendangregg.com/blog/2016-04-30/linux-perf-folded.html
> >> >
> > Pretty much. Two similar solutions were developed around the same
> > time. Although I have to use some awk to get "perf -g folded" in the
> > exact right format, and stackcollapse-perf.py does that directly.
> 
> Yes, the idea for stackcollapse-perf.py was:
> 
> - to do everything directly and emit "the right" format for the
> flamegraph tools.  This however is a very minimal output, and it's not
> necessarily the best for perf in general.
> 
> - to provide an example of visiting callgraphs from the scripting
> interface, since it's not really documented.  From the commit message:
> "Add stackcollapse.py script as an example of parsing call chains, and
> also of using optparse to access command line options".

Yeah, agreed, its short, and it provides the output ready to be used, no
need for extra processing, up to the user to decide if one or the other
is more suitable to their needs.

As a bonus, it documents callgraphs in scripts, good deal :-)

- Arnaldo

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

* Re: [PATCH 10/10] perf script: Add stackcollapse.py script
  2016-06-20 22:23 ` [PATCH 10/10] perf script: Add stackcollapse.py script Arnaldo Carvalho de Melo
@ 2016-06-21 18:36   ` Brendan Gregg
  2016-06-21 20:19     ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 59+ messages in thread
From: Brendan Gregg @ 2016-06-21 18:36 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Ingo Molnar, LKML, Paolo Bonzini, Brendan Gregg,
	Arnaldo Carvalho de Melo

On Mon, Jun 20, 2016 at 3:23 PM, Arnaldo Carvalho de Melo
<acme@kernel.org> wrote:
> From: Paolo Bonzini <pbonzini@redhat.com>
>
> Add stackcollapse.py script as an example of parsing call chains, and
> also of using optparse to access command line options.
>
> The flame graph tools include a set of scripts that parse output from
> various tools (including "perf script"), remove the offsets in the
> function and collapse each stack to a single line.  The website also
> says "perf report could have a report style [...] that output folded
> stacks directly, obviating the need for stackcollapse-perf.pl", so here
> it is.
>
> This script is a Python rewrite of stackcollapse-perf.pl, using the perf
> scripting interface to access the perf data directly from Python.
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> Acked-by: Jiri Olsa <jolsa@kernel.org>
> Cc: Brendan Gregg <bgregg@netflix.com>
> Link: http://lkml.kernel.org/r/1460467573-22989-1-git-send-email-pbonzini@redhat.com
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> ---
>  tools/perf/scripts/python/bin/stackcollapse-record |   8 ++
>  tools/perf/scripts/python/bin/stackcollapse-report |   3 +
>  tools/perf/scripts/python/stackcollapse.py         | 127 +++++++++++++++++++++
>  3 files changed, 138 insertions(+)
>  create mode 100755 tools/perf/scripts/python/bin/stackcollapse-record
>  create mode 100755 tools/perf/scripts/python/bin/stackcollapse-report
>  create mode 100755 tools/perf/scripts/python/stackcollapse.py
>
> diff --git a/tools/perf/scripts/python/bin/stackcollapse-record b/tools/perf/scripts/python/bin/stackcollapse-record
> new file mode 100755
> index 000000000000..9d8f9f0f3a17
> --- /dev/null
> +++ b/tools/perf/scripts/python/bin/stackcollapse-record
> @@ -0,0 +1,8 @@
> +#!/bin/sh
> +
> +#
> +# stackcollapse.py can cover all type of perf samples including
> +# the tracepoints, so no special record requirements, just record what
> +# you want to analyze.
> +#
> +perf record "$@"
> diff --git a/tools/perf/scripts/python/bin/stackcollapse-report b/tools/perf/scripts/python/bin/stackcollapse-report
> new file mode 100755
> index 000000000000..356b9656393d
> --- /dev/null
> +++ b/tools/perf/scripts/python/bin/stackcollapse-report
> @@ -0,0 +1,3 @@
> +#!/bin/sh
> +# description: produce callgraphs in short form for scripting use
> +perf script -s "$PERF_EXEC_PATH"/scripts/python/stackcollapse.py -- "$@"
> diff --git a/tools/perf/scripts/python/stackcollapse.py b/tools/perf/scripts/python/stackcollapse.py
> new file mode 100755
> index 000000000000..a2dfcda41ae6
> --- /dev/null
> +++ b/tools/perf/scripts/python/stackcollapse.py
> @@ -0,0 +1,127 @@
> +#!/usr/bin/perl -w

Perl? I guess this line is ignored when invoked.

Rest looks good. Glad it supports tidy_java code, and kernel annotations.

Brendan

> +#
> +# stackcollapse.py - format perf samples with one line per distinct call stack
> +#
> +# This script's output has two space-separated fields.  The first is a semicolon
> +# separated stack including the program name (from the "comm" field) and the
> +# function names from the call stack.  The second is a count:
> +#
> +#  swapper;start_kernel;rest_init;cpu_idle;default_idle;native_safe_halt 2
> +#
> +# The file is sorted according to the first field.
> +#
> +# Input may be created and processed using:
> +#
> +#  perf record -a -g -F 99 sleep 60
> +#  perf script report stackcollapse > out.stacks-folded
> +#
> +# (perf script record stackcollapse works too).
> +#
> +# Written by Paolo Bonzini <pbonzini@redhat.com>
> +# Based on Brendan Gregg's stackcollapse-perf.pl script.
> +
> +import os
> +import sys
> +from collections import defaultdict
> +from optparse import OptionParser, make_option
> +
> +sys.path.append(os.environ['PERF_EXEC_PATH'] + \
> +                '/scripts/python/Perf-Trace-Util/lib/Perf/Trace')
> +
> +from perf_trace_context import *
> +from Core import *
> +from EventClass import *
> +
> +# command line parsing
> +
> +option_list = [
> +    # formatting options for the bottom entry of the stack
> +    make_option("--include-tid", dest="include_tid",
> +                 action="store_true", default=False,
> +                 help="include thread id in stack"),
> +    make_option("--include-pid", dest="include_pid",
> +                 action="store_true", default=False,
> +                 help="include process id in stack"),
> +    make_option("--no-comm", dest="include_comm",
> +                 action="store_false", default=True,
> +                 help="do not separate stacks according to comm"),
> +    make_option("--tidy-java", dest="tidy_java",
> +                 action="store_true", default=False,
> +                 help="beautify Java signatures"),
> +    make_option("--kernel", dest="annotate_kernel",
> +                 action="store_true", default=False,
> +                 help="annotate kernel functions with _[k]")
> +]
> +
> +parser = OptionParser(option_list=option_list)
> +(opts, args) = parser.parse_args()
> +
> +if len(args) != 0:
> +    parser.error("unexpected command line argument")
> +if opts.include_tid and not opts.include_comm:
> +    parser.error("requesting tid but not comm is invalid")
> +if opts.include_pid and not opts.include_comm:
> +    parser.error("requesting pid but not comm is invalid")
> +
> +# event handlers
> +
> +lines = defaultdict(lambda: 0)
> +
> +def process_event(param_dict):
> +    def tidy_function_name(sym, dso):
> +        if sym is None:
> +            sym = '[unknown]'
> +
> +        sym = sym.replace(';', ':')
> +        if opts.tidy_java:
> +            # the original stackcollapse-perf.pl script gives the
> +            # example of converting this:
> +            #    Lorg/mozilla/javascript/MemberBox;.<init>(Ljava/lang/reflect/Method;)V
> +            # to this:
> +            #    org/mozilla/javascript/MemberBox:.init
> +            sym = sym.replace('<', '')
> +            sym = sym.replace('>', '')
> +            if sym[0] == 'L' and sym.find('/'):
> +                sym = sym[1:]
> +            try:
> +                sym = sym[:sym.index('(')]
> +            except ValueError:
> +                pass
> +
> +        if opts.annotate_kernel and dso == '[kernel.kallsyms]':
> +            return sym + '_[k]'
> +        else:
> +            return sym
> +
> +    stack = list()
> +    if 'callchain' in param_dict:
> +        for entry in param_dict['callchain']:
> +            entry.setdefault('sym', dict())
> +            entry['sym'].setdefault('name', None)
> +            entry.setdefault('dso', None)
> +            stack.append(tidy_function_name(entry['sym']['name'],
> +                                            entry['dso']))
> +    else:
> +        param_dict.setdefault('symbol', None)
> +        param_dict.setdefault('dso', None)
> +        stack.append(tidy_function_name(param_dict['symbol'],
> +                                        param_dict['dso']))
> +
> +    if opts.include_comm:
> +        comm = param_dict["comm"].replace(' ', '_')
> +        sep = "-"
> +        if opts.include_pid:
> +            comm = comm + sep + str(param_dict['sample']['pid'])
> +            sep = "/"
> +        if opts.include_tid:
> +            comm = comm + sep + str(param_dict['sample']['tid'])
> +        stack.append(comm)
> +
> +    stack_string = ';'.join(reversed(stack))
> +    lines[stack_string] = lines[stack_string] + 1
> +
> +def trace_end():
> +    list = lines.keys()
> +    list.sort()
> +    for stack in list:
> +        print "%s %d" % (stack, lines[stack])

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

* Re: [PATCH 10/10] perf script: Add stackcollapse.py script
  2016-06-21 18:36   ` Brendan Gregg
@ 2016-06-21 20:19     ` Arnaldo Carvalho de Melo
  0 siblings, 0 replies; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-06-21 20:19 UTC (permalink / raw)
  To: Brendan Gregg
  Cc: Ingo Molnar, LKML, Paolo Bonzini, Brendan Gregg,
	Arnaldo Carvalho de Melo

Em Tue, Jun 21, 2016 at 11:36:10AM -0700, Brendan Gregg escreveu:
> On Mon, Jun 20, 2016 at 3:23 PM, Arnaldo Carvalho de Melo
> <acme@kernel.org> wrote:
> > From: Paolo Bonzini <pbonzini@redhat.com>
> >
> > Add stackcollapse.py script as an example of parsing call chains, and
> > also of using optparse to access command line options.
> >
> > The flame graph tools include a set of scripts that parse output from
> > various tools (including "perf script"), remove the offsets in the
> > function and collapse each stack to a single line.  The website also
> > says "perf report could have a report style [...] that output folded
> > stacks directly, obviating the need for stackcollapse-perf.pl", so here
> > it is.
> >
> > This script is a Python rewrite of stackcollapse-perf.pl, using the perf
> > scripting interface to access the perf data directly from Python.
> >
> > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> > Acked-by: Jiri Olsa <jolsa@kernel.org>
> > Cc: Brendan Gregg <bgregg@netflix.com>
> > Link: http://lkml.kernel.org/r/1460467573-22989-1-git-send-email-pbonzini@redhat.com
> > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> > ---
> >  tools/perf/scripts/python/bin/stackcollapse-record |   8 ++
> >  tools/perf/scripts/python/bin/stackcollapse-report |   3 +
> >  tools/perf/scripts/python/stackcollapse.py         | 127 +++++++++++++++++++++
> >  3 files changed, 138 insertions(+)
> >  create mode 100755 tools/perf/scripts/python/bin/stackcollapse-record
> >  create mode 100755 tools/perf/scripts/python/bin/stackcollapse-report
> >  create mode 100755 tools/perf/scripts/python/stackcollapse.py
> >
> > diff --git a/tools/perf/scripts/python/bin/stackcollapse-record b/tools/perf/scripts/python/bin/stackcollapse-record
> > new file mode 100755
> > index 000000000000..9d8f9f0f3a17
> > --- /dev/null
> > +++ b/tools/perf/scripts/python/bin/stackcollapse-record
> > @@ -0,0 +1,8 @@
> > +#!/bin/sh
> > +
> > +#
> > +# stackcollapse.py can cover all type of perf samples including
> > +# the tracepoints, so no special record requirements, just record what
> > +# you want to analyze.
> > +#
> > +perf record "$@"
> > diff --git a/tools/perf/scripts/python/bin/stackcollapse-report b/tools/perf/scripts/python/bin/stackcollapse-report
> > new file mode 100755
> > index 000000000000..356b9656393d
> > --- /dev/null
> > +++ b/tools/perf/scripts/python/bin/stackcollapse-report
> > @@ -0,0 +1,3 @@
> > +#!/bin/sh
> > +# description: produce callgraphs in short form for scripting use
> > +perf script -s "$PERF_EXEC_PATH"/scripts/python/stackcollapse.py -- "$@"
> > diff --git a/tools/perf/scripts/python/stackcollapse.py b/tools/perf/scripts/python/stackcollapse.py
> > new file mode 100755
> > index 000000000000..a2dfcda41ae6
> > --- /dev/null
> > +++ b/tools/perf/scripts/python/stackcollapse.py
> > @@ -0,0 +1,127 @@
> > +#!/usr/bin/perl -w
> 
> Perl? I guess this line is ignored when invoked.

Bummer, will fix and add another check on my .git/hooks/pre-commit
 
> Rest looks good. Glad it supports tidy_java code, and kernel annotations.

Glad you liked it,

- Arnaldo
 
> Brendan
> 
> > +#
> > +# stackcollapse.py - format perf samples with one line per distinct call stack
> > +#
> > +# This script's output has two space-separated fields.  The first is a semicolon
> > +# separated stack including the program name (from the "comm" field) and the
> > +# function names from the call stack.  The second is a count:
> > +#
> > +#  swapper;start_kernel;rest_init;cpu_idle;default_idle;native_safe_halt 2
> > +#
> > +# The file is sorted according to the first field.
> > +#
> > +# Input may be created and processed using:
> > +#
> > +#  perf record -a -g -F 99 sleep 60
> > +#  perf script report stackcollapse > out.stacks-folded
> > +#
> > +# (perf script record stackcollapse works too).
> > +#
> > +# Written by Paolo Bonzini <pbonzini@redhat.com>
> > +# Based on Brendan Gregg's stackcollapse-perf.pl script.
> > +
> > +import os
> > +import sys
> > +from collections import defaultdict
> > +from optparse import OptionParser, make_option
> > +
> > +sys.path.append(os.environ['PERF_EXEC_PATH'] + \
> > +                '/scripts/python/Perf-Trace-Util/lib/Perf/Trace')
> > +
> > +from perf_trace_context import *
> > +from Core import *
> > +from EventClass import *
> > +
> > +# command line parsing
> > +
> > +option_list = [
> > +    # formatting options for the bottom entry of the stack
> > +    make_option("--include-tid", dest="include_tid",
> > +                 action="store_true", default=False,
> > +                 help="include thread id in stack"),
> > +    make_option("--include-pid", dest="include_pid",
> > +                 action="store_true", default=False,
> > +                 help="include process id in stack"),
> > +    make_option("--no-comm", dest="include_comm",
> > +                 action="store_false", default=True,
> > +                 help="do not separate stacks according to comm"),
> > +    make_option("--tidy-java", dest="tidy_java",
> > +                 action="store_true", default=False,
> > +                 help="beautify Java signatures"),
> > +    make_option("--kernel", dest="annotate_kernel",
> > +                 action="store_true", default=False,
> > +                 help="annotate kernel functions with _[k]")
> > +]
> > +
> > +parser = OptionParser(option_list=option_list)
> > +(opts, args) = parser.parse_args()
> > +
> > +if len(args) != 0:
> > +    parser.error("unexpected command line argument")
> > +if opts.include_tid and not opts.include_comm:
> > +    parser.error("requesting tid but not comm is invalid")
> > +if opts.include_pid and not opts.include_comm:
> > +    parser.error("requesting pid but not comm is invalid")
> > +
> > +# event handlers
> > +
> > +lines = defaultdict(lambda: 0)
> > +
> > +def process_event(param_dict):
> > +    def tidy_function_name(sym, dso):
> > +        if sym is None:
> > +            sym = '[unknown]'
> > +
> > +        sym = sym.replace(';', ':')
> > +        if opts.tidy_java:
> > +            # the original stackcollapse-perf.pl script gives the
> > +            # example of converting this:
> > +            #    Lorg/mozilla/javascript/MemberBox;.<init>(Ljava/lang/reflect/Method;)V
> > +            # to this:
> > +            #    org/mozilla/javascript/MemberBox:.init
> > +            sym = sym.replace('<', '')
> > +            sym = sym.replace('>', '')
> > +            if sym[0] == 'L' and sym.find('/'):
> > +                sym = sym[1:]
> > +            try:
> > +                sym = sym[:sym.index('(')]
> > +            except ValueError:
> > +                pass
> > +
> > +        if opts.annotate_kernel and dso == '[kernel.kallsyms]':
> > +            return sym + '_[k]'
> > +        else:
> > +            return sym
> > +
> > +    stack = list()
> > +    if 'callchain' in param_dict:
> > +        for entry in param_dict['callchain']:
> > +            entry.setdefault('sym', dict())
> > +            entry['sym'].setdefault('name', None)
> > +            entry.setdefault('dso', None)
> > +            stack.append(tidy_function_name(entry['sym']['name'],
> > +                                            entry['dso']))
> > +    else:
> > +        param_dict.setdefault('symbol', None)
> > +        param_dict.setdefault('dso', None)
> > +        stack.append(tidy_function_name(param_dict['symbol'],
> > +                                        param_dict['dso']))
> > +
> > +    if opts.include_comm:
> > +        comm = param_dict["comm"].replace(' ', '_')
> > +        sep = "-"
> > +        if opts.include_pid:
> > +            comm = comm + sep + str(param_dict['sample']['pid'])
> > +            sep = "/"
> > +        if opts.include_tid:
> > +            comm = comm + sep + str(param_dict['sample']['tid'])
> > +        stack.append(comm)
> > +
> > +    stack_string = ';'.join(reversed(stack))
> > +    lines[stack_string] = lines[stack_string] + 1
> > +
> > +def trace_end():
> > +    list = lines.keys()
> > +    list.sort()
> > +    for stack in list:
> > +        print "%s %d" % (stack, lines[stack])

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

* Re: [GIT PULL 00/10] perf/core improvements and fixes
  2017-08-16 20:20 Arnaldo Carvalho de Melo
@ 2017-08-17  7:45 ` Ingo Molnar
  0 siblings, 0 replies; 59+ messages in thread
From: Ingo Molnar @ 2017-08-17  7:45 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, linux-perf-users, Arnaldo Carvalho de Melo,
	Adrian Hunter, David Ahern, Hendrik Brueckner, Jiri Olsa,
	Kim Phillips, Michael Petlan, Namhyung Kim, Thomas-Mich Richter,
	Wang Nan


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

> From: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> Hi Ingo,
> 
> 	Please consider pulling,
> 
> - Arnaldo
> 
> Test results at the end of this message, as usual.
> 
> The following changes since commit cf31b7dd51b542f9a9b2d0de416b5524dfdb1cf2:
> 
>   Merge tag 'perf-core-for-mingo-4.14-20170814' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2017-08-14 19:38:40 +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-4.14-20170816
> 
> for you to fetch changes up to 35435cd06081d7db96bc617b65ba556f8e24340e:
> 
>   perf test shell: Replace '|&' with '2>&1 |' to work with more shells (2017-08-16 16:23:26 -0300)
> 
> ----------------------------------------------------------------
> perf core improvements and fixes:
> 
> New features:
> 
> - Support exporting Intel PT data to sqlite3 with python perf scripts,
>   this is in addition to the postgresql support that was already there (Adrian Hunter)
> 
> Infrastructure:
> 
> - Handle perf tool builds with less features in perf shell tests, such
>   as those with NO_LIBDWARF=1 or even without 'perf probe' (Arnaldo Carvalho de Melo)
> 
> - Replace '|&' with '2>&1 |' to work with more shells in the just
>   introduced perf test shell harness (Kim Phillips)
> 
> Architecture related fixes:
> 
> - Fix endianness problem when loading parameters in the BPF prologue
>   generated by perf, noticed using 'perf test BPF' in s390x systems (Wang Nan, Thomas Richter)
> 
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> ----------------------------------------------------------------
> Adrian Hunter (5):
>       perf scripts python: Fix missing call_path_id in export-to-postgresql script
>       perf scripts python: Fix query in call-graph-from-postgresql.py
>       perf script python: Add support for exporting to sqlite3
>       perf script python: Rename call-graph-from-postgresql.py to call-graph-from-sql.py
>       perf script python: Add support for sqlite3 to call-graph-from-sql.py
> 
> Arnaldo Carvalho de Melo (3):
>       perf tests shell: Remove duplicate skip_if_no_debuginfo() function
>       perf test shell: Check if 'perf probe' is available, skip tests if not
>       perf test shell vfs_getname: Skip for tools built with NO_LIBDWARF=1
> 
> Kim Phillips (1):
>       perf test shell: Replace '|&' with '2>&1 |' to work with more shells
> 
> Wang Nan (1):
>       perf bpf: Fix endianness problem when loading parameters in prologue
> 
>  tools/perf/Documentation/intel-pt.txt              |   6 +-
>  .../scripts/python/bin/export-to-sqlite-record     |   8 +
>  .../scripts/python/bin/export-to-sqlite-report     |  29 ++
>  ...h-from-postgresql.py => call-graph-from-sql.py} |  70 ++--
>  tools/perf/scripts/python/export-to-postgresql.py  |   5 +-
>  tools/perf/scripts/python/export-to-sqlite.py      | 451 +++++++++++++++++++++
>  tools/perf/tests/bpf-script-test-prologue.c        |   4 +-
>  tools/perf/tests/shell/lib/probe.sh                |   6 +
>  tools/perf/tests/shell/lib/probe_vfs_getname.sh    |  13 +-
>  tools/perf/tests/shell/probe_vfs_getname.sh        |   4 +
>  .../tests/shell/record+script_probe_vfs_getname.sh |   4 +
>  .../perf/tests/shell/trace+probe_libc_inet_pton.sh |   5 +-
>  tools/perf/tests/shell/trace+probe_vfs_getname.sh  |   4 +
>  tools/perf/util/bpf-prologue.c                     |  49 ++-
>  14 files changed, 611 insertions(+), 47 deletions(-)
>  create mode 100644 tools/perf/scripts/python/bin/export-to-sqlite-record
>  create mode 100644 tools/perf/scripts/python/bin/export-to-sqlite-report
>  rename tools/perf/scripts/python/{call-graph-from-postgresql.py => call-graph-from-sql.py} (87%)
>  create mode 100644 tools/perf/scripts/python/export-to-sqlite.py
>  create mode 100644 tools/perf/tests/shell/lib/probe.sh

Pulled, thanks a lot Arnaldo!

	Ingo

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

* [GIT PULL 00/10] perf/core improvements and fixes
@ 2017-08-16 20:20 Arnaldo Carvalho de Melo
  2017-08-17  7:45 ` Ingo Molnar
  0 siblings, 1 reply; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2017-08-16 20:20 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, linux-perf-users, Arnaldo Carvalho de Melo,
	Adrian Hunter, David Ahern, Hendrik Brueckner, Jiri Olsa,
	Kim Phillips, Michael Petlan, Namhyung Kim, Thomas-Mich Richter,
	Wang Nan

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

Hi Ingo,

	Please consider pulling,

- Arnaldo

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

The following changes since commit cf31b7dd51b542f9a9b2d0de416b5524dfdb1cf2:

  Merge tag 'perf-core-for-mingo-4.14-20170814' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2017-08-14 19:38:40 +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-4.14-20170816

for you to fetch changes up to 35435cd06081d7db96bc617b65ba556f8e24340e:

  perf test shell: Replace '|&' with '2>&1 |' to work with more shells (2017-08-16 16:23:26 -0300)

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

New features:

- Support exporting Intel PT data to sqlite3 with python perf scripts,
  this is in addition to the postgresql support that was already there (Adrian Hunter)

Infrastructure:

- Handle perf tool builds with less features in perf shell tests, such
  as those with NO_LIBDWARF=1 or even without 'perf probe' (Arnaldo Carvalho de Melo)

- Replace '|&' with '2>&1 |' to work with more shells in the just
  introduced perf test shell harness (Kim Phillips)

Architecture related fixes:

- Fix endianness problem when loading parameters in the BPF prologue
  generated by perf, noticed using 'perf test BPF' in s390x systems (Wang Nan, Thomas Richter)

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

----------------------------------------------------------------
Adrian Hunter (5):
      perf scripts python: Fix missing call_path_id in export-to-postgresql script
      perf scripts python: Fix query in call-graph-from-postgresql.py
      perf script python: Add support for exporting to sqlite3
      perf script python: Rename call-graph-from-postgresql.py to call-graph-from-sql.py
      perf script python: Add support for sqlite3 to call-graph-from-sql.py

Arnaldo Carvalho de Melo (3):
      perf tests shell: Remove duplicate skip_if_no_debuginfo() function
      perf test shell: Check if 'perf probe' is available, skip tests if not
      perf test shell vfs_getname: Skip for tools built with NO_LIBDWARF=1

Kim Phillips (1):
      perf test shell: Replace '|&' with '2>&1 |' to work with more shells

Wang Nan (1):
      perf bpf: Fix endianness problem when loading parameters in prologue

 tools/perf/Documentation/intel-pt.txt              |   6 +-
 .../scripts/python/bin/export-to-sqlite-record     |   8 +
 .../scripts/python/bin/export-to-sqlite-report     |  29 ++
 ...h-from-postgresql.py => call-graph-from-sql.py} |  70 ++--
 tools/perf/scripts/python/export-to-postgresql.py  |   5 +-
 tools/perf/scripts/python/export-to-sqlite.py      | 451 +++++++++++++++++++++
 tools/perf/tests/bpf-script-test-prologue.c        |   4 +-
 tools/perf/tests/shell/lib/probe.sh                |   6 +
 tools/perf/tests/shell/lib/probe_vfs_getname.sh    |  13 +-
 tools/perf/tests/shell/probe_vfs_getname.sh        |   4 +
 .../tests/shell/record+script_probe_vfs_getname.sh |   4 +
 .../perf/tests/shell/trace+probe_libc_inet_pton.sh |   5 +-
 tools/perf/tests/shell/trace+probe_vfs_getname.sh  |   4 +
 tools/perf/util/bpf-prologue.c                     |  49 ++-
 14 files changed, 611 insertions(+), 47 deletions(-)
 create mode 100644 tools/perf/scripts/python/bin/export-to-sqlite-record
 create mode 100644 tools/perf/scripts/python/bin/export-to-sqlite-report
 rename tools/perf/scripts/python/{call-graph-from-postgresql.py => call-graph-from-sql.py} (87%)
 create mode 100644 tools/perf/scripts/python/export-to-sqlite.py
 create mode 100644 tools/perf/tests/shell/lib/probe.sh

Test results:

The first ones are container (docker) based builds of tools/perf with and
without libelf support, objtool where it is supported and samples/bpf/, ditto.
Where clang is available, it is also used to build perf with/without libelf.

Several are cross builds, the ones with -x-ARCH, and the android one, and those
may not have all the features built, due to lack of multi-arch devel packages,
available and being used so far on just a few, like
debian:experimental-x-{arm64,mipsel}.

The 'perf test' one will perform a variety of tests exercising
tools/perf/util/, tools/lib/{bpf,traceevent,etc}, as well as run perf
commands with a variety of command line event specifications to then
intercept the sys_perf_event syscall to check that the perf_event_attr
fields are set up as expected, among a variety of other unit tests.

The 'perf test'  also runs shell scripts exercising the tools, checking
if they affect the system in certain ways, like setting up kprobes and
uprobes, request callchains for well known programs and check that they
are the expected ones, see if 'perf trace' beautifies system call
arguments correctly, etc.

Additionally, a new set of tests, script based, runs the tools in a live system,
setting probes in place that then gets used by 'perf trace', with its output
compared against expected results.

Then there is the 'make -C tools/perf build-test' ones, that build tools/perf/
with a variety of feature sets, exercising the build with an incomplete set of
features as well as with a complete one. It is planned to have it run on each
of the containers mentioned above, using some container orchestration
infrastructure. Get in contact if interested in helping having this in place.

  # dm
   1 alpine:3.4: Ok
   2 alpine:3.5: Ok
   3 alpine:3.6: Ok
   4 alpine:edge: Ok
   5 android-ndk:r12b-arm: Ok
   6 archlinux:latest: Ok
   7 centos:5: Ok
   8 centos:6: Ok
   9 centos:7: Ok
  10 debian:7: Ok
  11 debian:8: Ok
  12 debian:9: Ok
  13 debian:experimental: Ok
  14 debian:experimental-x-arm64: Ok
  15 debian:experimental-x-mips: Ok
  16 debian:experimental-x-mips64: Ok
  17 debian:experimental-x-mipsel: Ok
  18 fedora:20: Ok
  19 fedora:21: Ok
  20 fedora:22: Ok
  21 fedora:23: Ok
  22 fedora:24: Ok
  23 fedora:24-x-ARC-uClibc: Ok
  24 fedora:25: Ok
  25 fedora:26: Ok
  26 fedora:rawhide: Ok
  27 mageia:5: Ok
  28 opensuse:13.2: Ok
  29 opensuse:42.1: Ok
  30 opensuse:42.2: Ok
  31 opensuse:tumbleweed: Ok
  32 oraclelinux:6: Ok
  33 oraclelinux:7: Ok
  34 ubuntu:12.04.5: Ok
  35 ubuntu:14.04.4: Ok
  36 ubuntu:14.04.4-x-linaro-arm64: Ok
  37 ubuntu:15.10: Ok
  38 ubuntu:16.04: Ok
  39 ubuntu:16.04-x-arm: Ok
  40 ubuntu:16.04-x-arm64: Ok
  41 ubuntu:16.04-x-powerpc: Ok
  42 ubuntu:16.04-x-powerpc64: Ok
  43 ubuntu:16.04-x-powerpc64el: Ok
  44 ubuntu:16.04-x-s390: Ok
  45 ubuntu:16.10: Ok
  46 ubuntu:17.04: Ok
  47 ubuntu:17.10: Ok
  #

  # uname -a
  Linux jouet 4.13.0-rc4+ #2 SMP Fri Aug 11 12:39:09 -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: Parse event definition strings                        : Ok
   6: Simple expression parser                              : Ok
   7: PERF_RECORD_* events & perf_sample fields             : Ok
   8: Parse perf pmu format                                 : Ok
   9: DSO data read                                         : Ok
  10: DSO data cache                                        : Ok
  11: DSO data reopen                                       : Ok
  12: Roundtrip evsel->name                                 : Ok
  13: Parse sched tracepoints fields                        : Ok
  14: syscalls:sys_enter_openat event fields                : Ok
  15: Setup struct perf_event_attr                          : Ok
  16: Match and link multiple hists                         : Ok
  17: 'import perf' in python                               : Ok
  18: Breakpoint overflow signal handler                    : Ok
  19: Breakpoint overflow sampling                          : Ok
  20: Number of exit events of a simple workload            : Ok
  21: Software clock events period values                   : Ok
  22: Object code reading                                   : Ok
  23: Sample parsing                                        : Ok
  24: Use a dummy software event to keep tracking           : Ok
  25: Parse with no sample_id_all bit set                   : Ok
  26: Filter hist entries                                   : Ok
  27: Lookup mmap thread                                    : Ok
  28: Share thread mg                                       : Ok
  29: Sort output of hist entries                           : Ok
  30: Cumulate child hist entries                           : Ok
  31: Track with sched_switch                               : Ok
  32: Filter fds with revents mask in a fdarray             : Ok
  33: Add fd to a fdarray, making it autogrow               : Ok
  34: kmod_path__parse                                      : Ok
  35: Thread map                                            : Ok
  36: LLVM search and compile                               :
  36.1: Basic BPF llvm compile                              : Ok
  36.2: kbuild searching                                    : Ok
  36.3: Compile source for BPF prologue generation          : Ok
  36.4: Compile source for BPF relocation                   : Ok
  37: Session topology                                      : Ok
  38: BPF filter                                            :
  38.1: Basic BPF filtering                                 : Ok
  38.2: BPF pinning                                         : Ok
  38.3: BPF prologue generation                             : Ok
  38.4: BPF relocation checker                              : Ok
  39: Synthesize thread map                                 : Ok
  40: Remove thread map                                     : Ok
  41: Synthesize cpu map                                    : Ok
  42: Synthesize stat config                                : Ok
  43: Synthesize stat                                       : Ok
  44: Synthesize stat round                                 : Ok
  45: Synthesize attr update                                : Ok
  46: Event times                                           : Ok
  47: Read backward ring buffer                             : Ok
  48: Print cpu map                                         : Ok
  49: Probe SDT events                                      : Ok
  50: is_printable_array                                    : Ok
  51: Print bitmap                                          : Ok
  52: perf hooks                                            : Ok
  53: builtin clang support                                 : Skip (not compiled in)
  54: unit_number__scnprintf                                : Ok
  55: x86 rdpmc                                             : Ok
  56: Convert perf time to TSC                              : Ok
  57: DWARF unwind                                          : Ok
  58: x86 instruction decoder - new instructions            : Ok
  59: Intel cqm nmi context read                            : Skip
  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_no_libelf_O: make NO_LIBELF=1
              make_clean_all_O: make clean all
                   make_tags_O: make tags
                 make_perf_o_O: make perf.o
             make_util_map_o_O: make util/map.o
            make_install_bin_O: make install-bin
                    make_doc_O: make doc
            make_no_demangle_O: make NO_DEMANGLE=1
  make_no_libdw_dwarf_unwind_O: make NO_LIBDW_DWARF_UNWIND=1
   make_install_prefix_slash_O: make install prefix=/tmp/krava/
        make_with_babeltrace_O: make LIBBABELTRACE=1
           make_no_backtrace_O: make NO_BACKTRACE=1
             make_no_libperl_O: make NO_LIBPERL=1
            make_no_libaudit_O: make NO_LIBAUDIT=1
         make_install_prefix_O: make install prefix=/tmp/krava
           make_no_libbionic_O: make NO_LIBBIONIC=1
                make_minimal_O: make NO_LIBPERL=1 NO_LIBPYTHON=1 NO_NEWT=1 NO_GTK2=1 NO_DEMANGLE=1 NO_LIBELF=1 NO_LIBUNWIND=1 NO_BACKTRACE=1 NO_LIBNUMA=1 NO_LIBAUDIT=1 NO_LIBBIONIC=1 NO_LIBDW_DWARF_UNWIND=1 NO_AUXTRACE=1 NO_LIBBPF=1 NO_LIBCRYPTO=1 NO_SDT=1 NO_JVMTI=1
            make_no_auxtrace_O: make NO_AUXTRACE=1
           make_no_libpython_O: make NO_LIBPYTHON=1
                  make_debug_O: make DEBUG=1
              make_no_libbpf_O: make NO_LIBBPF=1
                make_no_newt_O: make NO_NEWT=1
         make_with_clangllvm_O: make LIBCLANGLLVM=1
                make_no_gtk2_O: make NO_GTK2=1
             make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1
                   make_pure_O: make
                  make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1
               make_no_slang_O: make NO_SLANG=1
                make_install_O: make install
             make_no_libnuma_O: make NO_LIBNUMA=1
       make_util_pmu_bison_o_O: make util/pmu-bison.o
                   make_help_O: make help
           make_no_libunwind_O: make NO_LIBUNWIND=1
  OK
  make: Leaving directory '/home/acme/git/linux/tools/perf'
  $

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

* Re: [GIT PULL 00/10] perf/core improvements and fixes
  2017-05-03 13:58 Arnaldo Carvalho de Melo
@ 2017-05-03 17:30 ` Ingo Molnar
  0 siblings, 0 replies; 59+ messages in thread
From: Ingo Molnar @ 2017-05-03 17:30 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Adrian Hunter, David Ahern, Jiri Olsa,
	Josh Poimboeuf, Masami Hiramatsu, Michael Petlan, Namhyung Kim,
	Paul A . Clarke, Taeung Song, Wang Nan, Arnaldo Carvalho de Melo


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

> Hi Ingo,
> 
> 	Please consider pulling,
> 
> - Arnaldo
> 
> Test results at the end of this message, as usual.
> 
> The following changes since commit fd7647979a3948dae4fc6f25dbbdf9ba269bed78:
> 
>   Merge tag 'perf-core-for-mingo-4.12-20170424' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2017-04-24 23:31:35 +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-4.12-20170503
> 
> for you to fetch changes up to 4341ec6b3db4c3e903d6c44958722918baec1e59:
> 
>   perf config: Refactor a duplicated code for obtaining config file name (2017-05-02 18:23:12 -0300)
> 
> ----------------------------------------------------------------
> perf/core improvements and fixes:
> 
> Fixes:
> 
> - Support setting probes in versioned user space symbols, such as
>   pthread_create@@GLIBC_2.1, picking the default one, more work
>   needed to make it possible to set it on the other versions, as
>   the 'perf probe' syntax already uses @ for other purposes.
>   (Paul Clarke)
> 
> - Do not special case address zero as an error for routines that
>   return addresses (symbol lookup), instead use the return as the
>   success/error indication and pass a pointer to return the address,
>   fixing 'perf test vmlinux' (the one that compares address between
>   vmlinux and kallsyms) on s/390, where the '_text' address is equal
>   to zero (Arnaldo Carvalho de Melo)
> 
> Infrastructure:
> 
> - More header sanitization, moving stuff out of util.h into
>   more appropriate headers and objects and sometimes creating
>   new ones (Arnaldo Carvalho de Melo)
> 
> - Refactor a duplicated code for obtaining config file name (Taeung Song)
> 
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (8):
>       perf buildid: Move prototypes from util.h to build-id.h
>       perf tools: Move event prototypes from util.h to event.h
>       perf memswap: Split the byteswap memory range wrappers from util.[ch]
>       perf tools: Move HAS_BOOL define to where perl headers are used
>       perf ui gtk: Move gtk .so name to the only place where it is used
>       perf units: Move parse_tag_value() to units.[ch]
>       tools lib string: Adopt prefixcmp() from perf and subcmd
>       perf symbols: Accept symbols starting at address 0
> 
> Paul Clarke (1):
>       perf symbols: Allow user probes on versioned symbols
> 
> Taeung Song (1):
>       perf config: Refactor a duplicated code for obtaining config file name
> 
>  tools/include/linux/string.h                       |  2 +
>  tools/lib/string.c                                 |  9 +++
>  tools/lib/subcmd/help.c                            |  1 +
>  tools/lib/subcmd/parse-options.c                   |  1 +
>  tools/lib/subcmd/subcmd-util.h                     |  9 ---
>  tools/perf/arch/powerpc/util/sym-handling.c        | 12 ++++
>  tools/perf/builtin-buildid-cache.c                 | 13 ++--
>  tools/perf/builtin-c2c.c                           |  1 +
>  tools/perf/builtin-config.c                        | 19 +++---
>  tools/perf/builtin-top.c                           |  2 +-
>  tools/perf/builtin-trace.c                         |  1 +
>  tools/perf/perf.c                                  |  1 +
>  tools/perf/tests/hists_cumulate.c                  |  1 +
>  tools/perf/tests/hists_filter.c                    |  1 +
>  tools/perf/tests/hists_output.c                    |  1 +
>  tools/perf/tests/sdt.c                             |  1 -
>  tools/perf/ui/setup.c                              |  3 +
>  tools/perf/util/Build                              |  1 +
>  tools/perf/util/build-id.h                         |  4 ++
>  tools/perf/util/event.c                            | 10 +--
>  tools/perf/util/event.h                            | 12 +++-
>  tools/perf/util/evsel.c                            |  1 +
>  tools/perf/util/header.c                           |  1 +
>  tools/perf/util/intel-pt.c                         |  1 +
>  tools/perf/util/machine.c                          | 28 +++++----
>  tools/perf/util/map.c                              |  5 --
>  tools/perf/util/map.h                              |  5 +-
>  tools/perf/util/memswap.c                          | 24 ++++++++
>  tools/perf/util/memswap.h                          |  7 +++
>  .../perf/util/scripting-engines/trace-event-perl.c |  4 +-
>  tools/perf/util/session.c                          |  1 +
>  tools/perf/util/strbuf.c                           |  9 ---
>  tools/perf/util/symbol.c                           | 72 ++++++++++++++++------
>  tools/perf/util/symbol.h                           | 11 ++++
>  tools/perf/util/units.c                            | 29 +++++++++
>  tools/perf/util/units.h                            |  7 +++
>  tools/perf/util/util.c                             | 49 ---------------
>  tools/perf/util/util.h                             | 26 --------
>  38 files changed, 230 insertions(+), 155 deletions(-)
>  create mode 100644 tools/perf/util/memswap.c
>  create mode 100644 tools/perf/util/memswap.h

Pulled, thanks a lot Arnaldo!

	Ingo

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

* [GIT PULL 00/10] perf/core improvements and fixes
@ 2017-05-03 13:58 Arnaldo Carvalho de Melo
  2017-05-03 17:30 ` Ingo Molnar
  0 siblings, 1 reply; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2017-05-03 13:58 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
	David Ahern, Jiri Olsa, Josh Poimboeuf, Masami Hiramatsu,
	Michael Petlan, Namhyung Kim, Paul A . Clarke, Taeung Song,
	Wang Nan, Arnaldo Carvalho de Melo

Hi Ingo,

	Please consider pulling,

- Arnaldo

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

The following changes since commit fd7647979a3948dae4fc6f25dbbdf9ba269bed78:

  Merge tag 'perf-core-for-mingo-4.12-20170424' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2017-04-24 23:31:35 +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-4.12-20170503

for you to fetch changes up to 4341ec6b3db4c3e903d6c44958722918baec1e59:

  perf config: Refactor a duplicated code for obtaining config file name (2017-05-02 18:23:12 -0300)

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

Fixes:

- Support setting probes in versioned user space symbols, such as
  pthread_create@@GLIBC_2.1, picking the default one, more work
  needed to make it possible to set it on the other versions, as
  the 'perf probe' syntax already uses @ for other purposes.
  (Paul Clarke)

- Do not special case address zero as an error for routines that
  return addresses (symbol lookup), instead use the return as the
  success/error indication and pass a pointer to return the address,
  fixing 'perf test vmlinux' (the one that compares address between
  vmlinux and kallsyms) on s/390, where the '_text' address is equal
  to zero (Arnaldo Carvalho de Melo)

Infrastructure:

- More header sanitization, moving stuff out of util.h into
  more appropriate headers and objects and sometimes creating
  new ones (Arnaldo Carvalho de Melo)

- Refactor a duplicated code for obtaining config file name (Taeung Song)

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

----------------------------------------------------------------
Arnaldo Carvalho de Melo (8):
      perf buildid: Move prototypes from util.h to build-id.h
      perf tools: Move event prototypes from util.h to event.h
      perf memswap: Split the byteswap memory range wrappers from util.[ch]
      perf tools: Move HAS_BOOL define to where perl headers are used
      perf ui gtk: Move gtk .so name to the only place where it is used
      perf units: Move parse_tag_value() to units.[ch]
      tools lib string: Adopt prefixcmp() from perf and subcmd
      perf symbols: Accept symbols starting at address 0

Paul Clarke (1):
      perf symbols: Allow user probes on versioned symbols

Taeung Song (1):
      perf config: Refactor a duplicated code for obtaining config file name

 tools/include/linux/string.h                       |  2 +
 tools/lib/string.c                                 |  9 +++
 tools/lib/subcmd/help.c                            |  1 +
 tools/lib/subcmd/parse-options.c                   |  1 +
 tools/lib/subcmd/subcmd-util.h                     |  9 ---
 tools/perf/arch/powerpc/util/sym-handling.c        | 12 ++++
 tools/perf/builtin-buildid-cache.c                 | 13 ++--
 tools/perf/builtin-c2c.c                           |  1 +
 tools/perf/builtin-config.c                        | 19 +++---
 tools/perf/builtin-top.c                           |  2 +-
 tools/perf/builtin-trace.c                         |  1 +
 tools/perf/perf.c                                  |  1 +
 tools/perf/tests/hists_cumulate.c                  |  1 +
 tools/perf/tests/hists_filter.c                    |  1 +
 tools/perf/tests/hists_output.c                    |  1 +
 tools/perf/tests/sdt.c                             |  1 -
 tools/perf/ui/setup.c                              |  3 +
 tools/perf/util/Build                              |  1 +
 tools/perf/util/build-id.h                         |  4 ++
 tools/perf/util/event.c                            | 10 +--
 tools/perf/util/event.h                            | 12 +++-
 tools/perf/util/evsel.c                            |  1 +
 tools/perf/util/header.c                           |  1 +
 tools/perf/util/intel-pt.c                         |  1 +
 tools/perf/util/machine.c                          | 28 +++++----
 tools/perf/util/map.c                              |  5 --
 tools/perf/util/map.h                              |  5 +-
 tools/perf/util/memswap.c                          | 24 ++++++++
 tools/perf/util/memswap.h                          |  7 +++
 .../perf/util/scripting-engines/trace-event-perl.c |  4 +-
 tools/perf/util/session.c                          |  1 +
 tools/perf/util/strbuf.c                           |  9 ---
 tools/perf/util/symbol.c                           | 72 ++++++++++++++++------
 tools/perf/util/symbol.h                           | 11 ++++
 tools/perf/util/units.c                            | 29 +++++++++
 tools/perf/util/units.h                            |  7 +++
 tools/perf/util/util.c                             | 49 ---------------
 tools/perf/util/util.h                             | 26 --------
 38 files changed, 230 insertions(+), 155 deletions(-)
 create mode 100644 tools/perf/util/memswap.c
 create mode 100644 tools/perf/util/memswap.h

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.

  # time 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:9: Ok
  12 debian:experimental: Ok
  13 debian:experimental-x-arm64: Ok
  14 debian:experimental-x-mips: Ok
  15 debian:experimental-x-mips64: Ok
  16 debian:experimental-x-mipsel: Ok
  17 fedora:20: Ok
  18 fedora:21: Ok
  19 fedora:22: Ok
  20 fedora:23: Ok
  21 fedora:24: Ok
  22 fedora:24-x-ARC-uClibc: Ok
  23 fedora:25: Ok
  24 fedora:rawhide: Ok
  25 mageia:5: Ok
  26 opensuse:13.2: Ok
  27 opensuse:42.1: Ok
  28 opensuse:tumbleweed: Ok
  29 ubuntu:12.04.5: Ok
  30 ubuntu:14.04.4: Ok
  31 ubuntu:14.04.4-x-linaro-arm64: Ok
  32 ubuntu:15.10: Ok
  33 ubuntu:16.04: Ok
  34 ubuntu:16.04-x-arm: Ok
  35 ubuntu:16.04-x-arm64: Ok
  36 ubuntu:16.04-x-powerpc: Ok
  37 ubuntu:16.04-x-powerpc64: Ok
  38 ubuntu:16.04-x-s390: Ok
  39 ubuntu:16.10: Ok
  40 ubuntu:17.04: Ok
  #
  # uname -a
  Linux jouet 4.11.0-rc8+ #8 SMP Wed Apr 26 08:50:41 -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: Parse event definition strings             : Ok
   6: Simple expression parser                   : Ok
   7: PERF_RECORD_* events & perf_sample fields  : Ok
   8: Parse perf pmu format                      : Ok
   9: DSO data read                              : Ok
  10: DSO data cache                             : Ok
  11: DSO data reopen                            : Ok
  12: Roundtrip evsel->name                      : Ok
  13: Parse sched tracepoints fields             : Ok
  14: syscalls:sys_enter_openat event fields     : Ok
  15: Setup struct perf_event_attr               : Ok
  16: Match and link multiple hists              : Ok
  17: 'import perf' in python                    : Ok
  18: Breakpoint overflow signal handler         : Ok
  19: Breakpoint overflow sampling               : Ok
  20: Number of exit events of a simple workload : Ok
  21: Software clock events period values        : Ok
  22: Object code reading                        : Ok
  23: Sample parsing                             : Ok
  24: Use a dummy software event to keep tracking: Ok
  25: Parse with no sample_id_all bit set        : Ok
  26: Filter hist entries                        : Ok
  27: Lookup mmap thread                         : Ok
  28: Share thread mg                            : Ok
  29: Sort output of hist entries                : Ok
  30: Cumulate child hist entries                : Ok
  31: Track with sched_switch                    : Ok
  32: Filter fds with revents mask in a fdarray  : Ok
  33: Add fd to a fdarray, making it autogrow    : Ok
  34: kmod_path__parse                           : Ok
  35: Thread map                                 : Ok
  36: LLVM search and compile                    :
  36.1: Basic BPF llvm compile                    : Ok
  36.2: kbuild searching                          : Ok
  36.3: Compile source for BPF prologue generation: Ok
  36.4: Compile source for BPF relocation         : Ok
  37: Session topology                           : Ok
  38: BPF filter                                 :
  38.1: Basic BPF filtering                      : Ok
  38.2: BPF pinning                              : Ok
  38.3: BPF prologue generation                  : Ok
  38.4: BPF relocation checker                   : Ok
  39: Synthesize thread map                      : Ok
  40: Remove thread map                          : Ok
  41: Synthesize cpu map                         : Ok
  42: Synthesize stat config                     : Ok
  43: Synthesize stat                            : Ok
  44: Synthesize stat round                      : Ok
  45: Synthesize attr update                     : Ok
  46: Event times                                : Ok
  47: Read backward ring buffer                  : Ok
  48: Print cpu map                              : Ok
  49: Probe SDT events                           : Ok
  50: is_printable_array                         : Ok
  51: Print bitmap                               : Ok
  52: perf hooks                                 : Ok
  53: builtin clang support                      : Skip (not compiled in)
  54: unit_number__scnprintf                     : Ok
  55: x86 rdpmc                                  : Ok
  56: Convert perf time to TSC                   : Ok
  57: DWARF unwind                               : Ok
  58: x86 instruction decoder - new instructions : Ok
  59: 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_no_libperl_O: make NO_LIBPERL=1
            make_no_libaudit_O: make NO_LIBAUDIT=1
              make_no_libelf_O: make NO_LIBELF=1
                    make_doc_O: make doc
           make_no_libunwind_O: make NO_LIBUNWIND=1
              make_clean_all_O: make clean all
   make_install_prefix_slash_O: make install prefix=/tmp/krava/
       make_util_pmu_bison_o_O: make util/pmu-bison.o
             make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1
             make_util_map_o_O: make util/map.o
             make_no_libnuma_O: make NO_LIBNUMA=1
         make_with_clangllvm_O: make LIBCLANGLLVM=1
            make_no_demangle_O: make NO_DEMANGLE=1
                   make_tags_O: make tags
                  make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1
               make_no_slang_O: make NO_SLANG=1
                   make_help_O: make help
                make_no_gtk2_O: make NO_GTK2=1
         make_install_prefix_O: make install prefix=/tmp/krava
                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_O: make install
           make_no_libbionic_O: make NO_LIBBIONIC=1
           make_no_libpython_O: make NO_LIBPYTHON=1
                 make_perf_o_O: make perf.o
            make_no_auxtrace_O: make NO_AUXTRACE=1
                   make_pure_O: make
              make_no_libbpf_O: make NO_LIBBPF=1
                make_no_newt_O: make NO_NEWT=1
  make_no_libdw_dwarf_unwind_O: make NO_LIBDW_DWARF_UNWIND=1
        make_with_babeltrace_O: make LIBBABELTRACE=1
                 make_static_O: make LDFLAGS=-static
            make_install_bin_O: make install-bin
                  make_debug_O: make DEBUG=1
           make_no_backtrace_O: make NO_BACKTRACE=1
  OK
  make: Leaving directory '/home/acme/git/linux/tools/perf'
  $ 
  

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

* Re: [GIT PULL 00/10] perf/core improvements and fixes
  2017-01-17 16:06 Arnaldo Carvalho de Melo
@ 2017-01-18  9:09 ` Ingo Molnar
  0 siblings, 0 replies; 59+ messages in thread
From: Ingo Molnar @ 2017-01-18  9:09 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Alexander Shishkin,
	Andi Kleen, David Ahern, David Carrillo-Cisneros, Jiri Olsa,
	kernel-team, Mark Drayton, Michael Petlan, Minchan Kim,
	Namhyung Kim, Peter Zijlstra, Soramichi Akiyama,
	Stephane Eranian, Thomas Gleixner, Yannick Brosseau


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

> From: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> Hi Ingo,
> 
> 	Please consider pulling,
> 
> - Arnaldo
> 
> Test results at the end of this message, as usual.
> 
> The following changes since commit 5b485629ba0d5d027880769ff467c587b24b4bde:
> 
>   kprobes, extable: Identify kprobes trampolines as kernel text area (2017-01-14 08:38:05 +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.11-20170117
> 
> for you to fetch changes up to d94386f28abad0c5879f0760712e34e71f88a7da:
> 
>   perf evlist: Fix typo in deliver_sample() (2017-01-17 11:36:45 -0300)
> 
> ----------------------------------------------------------------
> perf/core improvements and fixes:
> 
> New feature:
> 
> - Account thread wait time (off cpu time) separately: sleep, iowait and
>   preempt, based on the prev_state of the last event, show the breakdown
>   when using "perf sched timehist --state" (Namhyumg Kim)
> 
> Infrastructure:
> 
> - Factor out pmu scale conversion code (Andi Kleen)
> 
> - Remove unnecessary feature-dwarf warning (David Carrillo-Cisneros)
> 
> - Add missing member name in OPT_() macros (Soramichi AKIYAMA)
> 
> - Move variables referenced in libperf.a object files from perf's main()
>   file, so that other tools can use libperf.a with a different main()
>   (Soramichi AKIYAMA)
> 
> Documentation:
> 
> - Fix 'perf script' man page about --dump-raw-trace option (Michael Petlan)
> 
> - Also allow forcing reading of non-root owned files by root in 'perf
>   script' (Yannick Brosseau)
> 
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> ----------------------------------------------------------------
> Andi Kleen (1):
>       perf pmu: Factor out scale conversion code
> 
> David Carrillo-Cisneros (1):
>       perf tools: Remove unneccessary feature-dwarf warning
> 
> Michael Petlan (1):
>       perf script: Fix man page about --dump-raw-trace option
> 
> Namhyung Kim (3):
>       perf sched timehist: Account thread wait time separately
>       perf sched timehist: Add --state option
>       perf sched timehist: Show total wait times for summary
> 
> Soramichi AKIYAMA (3):
>       tools lib subcmd: Fix missing member name
>       perf tools: Move two variables usied in libperf from perf.c
>       perf evlist: Fix typo in deliver_sample()
> 
> Yannick Brosseau (1):
>       perf script: Also allow forcing reading of non-root owned files by root
> 
>  tools/lib/subcmd/parse-options.h         |  18 ++---
>  tools/perf/Build                         |   3 +-
>  tools/perf/Documentation/perf-sched.txt  |   2 +
>  tools/perf/Documentation/perf-script.txt |   4 +-
>  tools/perf/Makefile.config               |   6 +-
>  tools/perf/builtin-sched.c               | 130 ++++++++++++++++++++++++++++---
>  tools/perf/builtin-script.c              |   3 +-
>  tools/perf/perf.c                        |   3 -
>  tools/perf/ui/setup.c                    |   1 +
>  tools/perf/util/Build                    |   1 +
>  tools/perf/util/header.c                 |   2 +
>  tools/perf/util/pmu.c                    |  62 ++++++++-------
>  tools/perf/util/session.c                |   2 +-
>  13 files changed, 177 insertions(+), 60 deletions(-)

Pulled, thanks a lot Arnaldo!

	Ingo

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

* [GIT PULL 00/10] perf/core improvements and fixes
@ 2017-01-17 16:06 Arnaldo Carvalho de Melo
  2017-01-18  9:09 ` Ingo Molnar
  0 siblings, 1 reply; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2017-01-17 16:06 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Alexander Shishkin,
	Andi Kleen, David Ahern, David Carrillo-Cisneros, Jiri Olsa,
	kernel-team, Mark Drayton, Michael Petlan, Minchan Kim,
	Namhyung Kim, Peter Zijlstra, Soramichi Akiyama,
	Stephane Eranian, Thomas Gleixner, Yannick Brosseau

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

Hi Ingo,

	Please consider pulling,

- Arnaldo

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

The following changes since commit 5b485629ba0d5d027880769ff467c587b24b4bde:

  kprobes, extable: Identify kprobes trampolines as kernel text area (2017-01-14 08:38:05 +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.11-20170117

for you to fetch changes up to d94386f28abad0c5879f0760712e34e71f88a7da:

  perf evlist: Fix typo in deliver_sample() (2017-01-17 11:36:45 -0300)

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

New feature:

- Account thread wait time (off cpu time) separately: sleep, iowait and
  preempt, based on the prev_state of the last event, show the breakdown
  when using "perf sched timehist --state" (Namhyumg Kim)

Infrastructure:

- Factor out pmu scale conversion code (Andi Kleen)

- Remove unnecessary feature-dwarf warning (David Carrillo-Cisneros)

- Add missing member name in OPT_() macros (Soramichi AKIYAMA)

- Move variables referenced in libperf.a object files from perf's main()
  file, so that other tools can use libperf.a with a different main()
  (Soramichi AKIYAMA)

Documentation:

- Fix 'perf script' man page about --dump-raw-trace option (Michael Petlan)

- Also allow forcing reading of non-root owned files by root in 'perf
  script' (Yannick Brosseau)

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

----------------------------------------------------------------
Andi Kleen (1):
      perf pmu: Factor out scale conversion code

David Carrillo-Cisneros (1):
      perf tools: Remove unneccessary feature-dwarf warning

Michael Petlan (1):
      perf script: Fix man page about --dump-raw-trace option

Namhyung Kim (3):
      perf sched timehist: Account thread wait time separately
      perf sched timehist: Add --state option
      perf sched timehist: Show total wait times for summary

Soramichi AKIYAMA (3):
      tools lib subcmd: Fix missing member name
      perf tools: Move two variables usied in libperf from perf.c
      perf evlist: Fix typo in deliver_sample()

Yannick Brosseau (1):
      perf script: Also allow forcing reading of non-root owned files by root

 tools/lib/subcmd/parse-options.h         |  18 ++---
 tools/perf/Build                         |   3 +-
 tools/perf/Documentation/perf-sched.txt  |   2 +
 tools/perf/Documentation/perf-script.txt |   4 +-
 tools/perf/Makefile.config               |   6 +-
 tools/perf/builtin-sched.c               | 130 ++++++++++++++++++++++++++++---
 tools/perf/builtin-script.c              |   3 +-
 tools/perf/perf.c                        |   3 -
 tools/perf/ui/setup.c                    |   1 +
 tools/perf/util/Build                    |   1 +
 tools/perf/util/header.c                 |   2 +
 tools/perf/util/pmu.c                    |  62 ++++++++-------
 tools/perf/util/session.c                |   2 +-
 13 files changed, 177 insertions(+), 60 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.

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.

  # time dm
   1 alpine:3.4: Ok
   2 android-ndk:r12b-arm: Ok
   3 archlinux:latest: Ok
   4 centos:5: Ok
   5 centos:6: Ok
   6 centos:7: Ok
   7 debian:7: Ok
   8 debian:8: Ok
   9 debian:experimental: Ok
  10 debian:experimental-x-arm64: Ok
  11 debian:experimental-x-mips: Ok
  12 debian:experimental-x-mips64: Ok
  13 debian:experimental-x-mipsel: Ok
  14 fedora:20: Ok
  15 fedora:21: Ok
  16 fedora:22: Ok
  17 fedora:23: Ok
  18 fedora:24: Ok
  19 fedora:24-x-ARC-uClibc: Ok
  20 fedora:25: Ok
  21 fedora:rawhide: Ok
  22 mageia:5: Ok
  23 opensuse:13.2: Ok
  24 opensuse:42.1: Ok
  25 opensuse:tumbleweed: Ok
  26 ubuntu:12.04.5: Ok
  27 ubuntu:14.04.4-x-linaro-arm64: Ok
  28 ubuntu:15.10: Ok
  29 ubuntu:16.04: Ok
  30 ubuntu:16.04-x-arm: Ok
  31 ubuntu:16.04-x-arm64: Ok
  32 ubuntu:16.04-x-powerpc: Ok
  33 ubuntu:16.04-x-powerpc64: Ok
  34 ubuntu:16.04-x-powerpc64el: Ok
  35 ubuntu:16.04-x-s390: Ok
  36 ubuntu:16.10: Ok
  #

  # uname -a
  Linux jouet 4.9.0+ #2 SMP Wed Dec 21 11:54:44 BRT 2016 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: 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                      : Ok
  37.2: BPF prologue generation                  : Ok
  37.3: BPF relocation checker                   : Ok
  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 FEATURE_DUMP_COPY=/home/acme/git/linux/tools/perf/BUILD_TEST_FEATURE_DUMP feature-dump
             make_no_libperl_O: make NO_LIBPERL=1
                    make_doc_O: make doc
           make_no_backtrace_O: make NO_BACKTRACE=1
            make_no_demangle_O: make NO_DEMANGLE=1
                   make_help_O: make help
                make_no_gtk2_O: make NO_GTK2=1
            make_no_auxtrace_O: make NO_AUXTRACE=1
  make_no_libdw_dwarf_unwind_O: make NO_LIBDW_DWARF_UNWIND=1
   make_install_prefix_slash_O: make install prefix=/tmp/krava/
              make_clean_all_O: make clean all
            make_install_bin_O: make install-bin
           make_no_libbionic_O: make NO_LIBBIONIC=1
                make_install_O: make install
                  make_debug_O: make DEBUG=1
       make_util_pmu_bison_o_O: make util/pmu-bison.o
         make_install_prefix_O: make install prefix=/tmp/krava
                 make_perf_o_O: make perf.o
           make_no_libpython_O: make NO_LIBPYTHON=1
        make_with_babeltrace_O: make LIBBABELTRACE=1
           make_no_libunwind_O: make NO_LIBUNWIND=1
               make_no_slang_O: make NO_SLANG=1
                  make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1
                make_no_newt_O: make NO_NEWT=1
              make_no_libbpf_O: make NO_LIBBPF=1
             make_util_map_o_O: make util/map.o
                 make_static_O: make LDFLAGS=-static
         make_with_clangllvm_O: make LIBCLANGLLVM=1
              make_no_libelf_O: make NO_LIBELF=1
            make_no_libaudit_O: make NO_LIBAUDIT=1
                make_minimal_O: make NO_LIBPERL=1 NO_LIBPYTHON=1 NO_NEWT=1 NO_GTK2=1 NO_DEMANGLE=1 NO_LIBELF=1 NO_LIBUNWIND=1 NO_BACKTRACE=1 NO_LIBNUMA=1 NO_LIBAUDIT=1 NO_LIBBIONIC=1 NO_LIBDW_DWARF_UNWIND=1 NO_AUXTRACE=1 NO_LIBBPF=1 NO_LIBCRYPTO=1 NO_SDT=1 NO_JVMTI=1
             make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1
                   make_tags_O: make tags
                   make_pure_O: make
             make_no_libnuma_O: make NO_LIBNUMA=1
  OK
  make: Leaving directory '/home/acme/git/linux/tools/perf'
  $

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

* Re: [GIT PULL 00/10] perf/core improvements and fixes
  2016-12-07 16:53 Arnaldo Carvalho de Melo
@ 2016-12-07 18:17 ` Ingo Molnar
  0 siblings, 0 replies; 59+ messages in thread
From: Ingo Molnar @ 2016-12-07 18:17 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Alexei Starovoitov, Andi Kleen, David Ahern,
	He Kuang, Jiri Olsa, Joe Stringer, kernel-team, Minchan Kim,
	Namhyung Kim, Peter Zijlstra, pi3orama, Wang Nan,
	Yannick Brosseau, Zefan Li, Arnaldo Carvalho de Melo


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

> Hi Ingo,
> 
> 	Please consider pulling, should get linux-next free of perf build fixdep
> related race conditions on high core count machines,
> 
> - Arnaldo
> 
> Test results at the end of this message, as usual.
> 
> The following changes since commit 34c4a42791bbc455e65a15d12dcd0b6b3c52ad13:
> 
>   Merge tag 'perf-core-for-mingo-20161205' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2016-12-06 09:14:56 +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-20161207
> 
> for you to fetch changes up to 108a7c103b761309ccbd997002e8428808cf1e04:
> 
>   perf tools: Explicitly document that --children is enabled by default (2016-12-07 12:00:35 -0300)
> 
> ----------------------------------------------------------------
> perf/core improvements and fixes:
> 
> Improvements:
> 
> - Improve error message when analyzing file with required events in
>   'perf sched timehist' (David Ahern)
> 
> Fixes:
> 
> - Force fixdep compilation to be done at the start of the build, fixing
>   some build race conditions in high core count machines (Jiri Olsa)
> 
> - Fix handling a zero sample->tid in 'perf sched timehist', as
>   sometimes that isn't the idle thread (Namhyung Kim)
> 
> Infrastructure:
> 
> - Check minimal accepted LLVM version in its feature check, 3.9 at this
>   time (Wang Nan)
> 
> Documentation:
> 
> - Explicitly document that --children is enabled by default (Yannick Brosseau)
> 
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> ----------------------------------------------------------------
> David Ahern (1):
>       perf sched timehist: Improve error message when analyzing wrong file
> 
> Jiri Olsa (3):
>       perf tools: Move PERF-VERSION-FILE target into rules area
>       perf tools: Force fixdep compilation at the start of the build
>       perf tools: Move perf build related variables under non fixdep leg
> 
> Namhyung Kim (4):
>       perf sched: Cleanup option processing
>       perf callchain: Introduce callchain_cursor__copy()
>       perf sched timehist: Handle zero sample->tid properly
>       perf sched timehist: Cleanup idle_max_cpu handling
> 
> Wang Nan (1):
>       perf build: Check LLVM version in feature check
> 
> Yannick Brosseau (1):
>       perf tools: Explicitly document that --children is enabled by default
> 
>  tools/build/feature/Makefile              |  8 +++-
>  tools/build/feature/test-llvm-version.cpp | 11 +++++
>  tools/build/feature/test-llvm.cpp         |  5 +++
>  tools/perf/Documentation/perf-report.txt  |  3 +-
>  tools/perf/Documentation/perf-top.txt     |  1 +
>  tools/perf/Makefile.config                |  8 +++-
>  tools/perf/Makefile.perf                  | 68 +++++++++++++++++++++----------
>  tools/perf/builtin-sched.c                | 26 ++++++------
>  tools/perf/util/callchain.c               | 27 ++++++++++++
>  tools/perf/util/callchain.h               |  3 ++
>  10 files changed, 122 insertions(+), 38 deletions(-)
>  create mode 100644 tools/build/feature/test-llvm-version.cpp
> 
>   # uname -a
>   Linux jouet 4.8.8-300.fc25.x86_64 #1 SMP Tue Nov 15 18:10:06 UTC 2016 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: 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                      : Ok
>   37.2: BPF prologue generation                  : Ok
>   37.3: BPF relocation checker                   : Ok
>   38: Synthesize thread map                      : Ok
>   39: Synthesize cpu map                         : Ok
>   40: Synthesize stat config                     : Ok
>   41: Synthesize stat                            : Ok
>   42: Synthesize stat round                      : Ok
>   43: Synthesize attr update                     : Ok
>   44: Event times                                : Ok
>   45: Read backward ring buffer                  : Ok
>   46: Print cpu map                              : Ok
>   47: Probe SDT events                           : Ok
>   48: is_printable_array                         : Ok
>   49: Print bitmap                               : Ok
>   50: perf hooks                                 : Ok
>   51: builtin clang support                      :
>   51.1: builtin clang compile C source to IR        : Ok
>   51.2: builtin clang compile C source to ELF object: Ok
>   52: x86 rdpmc                                  : Ok
>   53: Convert perf time to TSC                   : Ok
>   54: DWARF unwind                               : Ok
>   55: x86 instruction decoder - new instructions : Ok
>   56: Intel cqm nmi context read                 : Skip
>   # 
>   # uname -a
>   Linux zoo 4.7.3-200.fc24.x86_64 #1 SMP Wed Sep 7 17:31:21 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
>   # time dm
>    1 alpine:3.4: Ok
>    2 android-ndk:r12b-arm: Ok
>    3 archlinux:latest: Ok
>    4 centos:5: Ok
>    5 centos:6: Ok
>    6 centos:7: Ok
>    7 debian:7: Ok
>    8 debian:8: Ok
>    9 debian:experimental: Ok
>   10 fedora:20: Ok
>   11 fedora:21: Ok
>   12 fedora:22: Ok
>   13 fedora:23: Ok
>   14 fedora:24: Ok
>   15 fedora:24-x-ARC-uClibc: Ok
>   16 fedora:rawhide: Ok
>   17 mageia:5: Ok
>   18 opensuse:13.2: Ok
>   19 opensuse:42.1: Ok
>   20 opensuse:tumbleweed: Ok
>   21 ubuntu:12.04.5: Ok
>   22 ubuntu:14.04: Ok
>   23 ubuntu:14.04.4: Ok
>   24 ubuntu:15.10: Ok
>   25 ubuntu:16.04: Ok
>   26 ubuntu:16.04-x-arm: Ok
>   27 ubuntu:16.04-x-arm64: Ok
>   28 ubuntu:16.04-x-powerpc: Ok
>   29 ubuntu:16.04-x-powerpc64: Ok
>   30 ubuntu:16.04-x-powerpc64el: Ok
>   31 ubuntu:16.04-x-s390: Ok
>   32 ubuntu:16.10: Ok
>   #
>   $ make -C tools/perf build-test
>   make: Entering directory '/home/acme/git/linux/tools/perf'
>   - tarpkg: ./tests/perf-targz-src-pkg .
>                   make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1
>                    make_help_O: make help
>    make_install_prefix_slash_O: make install prefix=/tmp/krava/
>                 make_install_O: make install
>                  make_static_O: make LDFLAGS=-static
>            make_no_libbionic_O: make NO_LIBBIONIC=1
>            make_no_backtrace_O: make NO_BACKTRACE=1
>            make_no_libunwind_O: make NO_LIBUNWIND=1
>                 make_minimal_O: make NO_LIBPERL=1 NO_LIBPYTHON=1 NO_NEWT=1 NO_GTK2=1 NO_DEMANGLE=1 NO_LIBELF=1 NO_LIBUNWIND=1 NO_BACKTRACE=1 NO_LIBNUMA=1 NO_LIBAUDIT=1 NO_LIBBIONIC=1 NO_LIBDW_DWARF_UNWIND=1 NO_AUXTRACE=1 NO_LIBBPF=1 NO_LIBCRYPTO=1 NO_SDT=1 NO_JVMTI=1
>                     make_doc_O: make doc
>               make_no_libbpf_O: make NO_LIBBPF=1
>              make_util_map_o_O: make util/map.o
>             make_install_bin_O: make install-bin
>             make_no_auxtrace_O: make NO_AUXTRACE=1
>         make_with_babeltrace_O: make LIBBABELTRACE=1
>          make_with_clangllvm_O: make LIBCLANGLLVM=1
>                   make_debug_O: make DEBUG=1
>               make_no_libelf_O: make NO_LIBELF=1
>               make_clean_all_O: make clean all
>              make_no_libperl_O: make NO_LIBPERL=1
>             make_no_libaudit_O: make NO_LIBAUDIT=1
>                make_no_slang_O: make NO_SLANG=1
>        make_util_pmu_bison_o_O: make util/pmu-bison.o
>                 make_no_gtk2_O: make NO_GTK2=1
>                    make_pure_O: make
>              make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1
>          make_install_prefix_O: make install prefix=/tmp/krava
>                    make_tags_O: make tags
>             make_no_demangle_O: make NO_DEMANGLE=1
>                  make_perf_o_O: make perf.o
>   make_no_libdw_dwarf_unwind_O: make NO_LIBDW_DWARF_UNWIND=1
>              make_no_libnuma_O: make NO_LIBNUMA=1
>            make_no_libpython_O: make NO_LIBPYTHON=1
>                 make_no_newt_O: make NO_NEWT=1
>   OK
>   make: Leaving directory '/home/acme/git/linux/tools/perf'
>   $ 

Pulled, thanks a lot Arnaldo!

	Ingo

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

* [GIT PULL 00/10] perf/core improvements and fixes
@ 2016-12-07 16:53 Arnaldo Carvalho de Melo
  2016-12-07 18:17 ` Ingo Molnar
  0 siblings, 1 reply; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-12-07 16:53 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Alexei Starovoitov,
	Andi Kleen, David Ahern, He Kuang, Jiri Olsa, Joe Stringer,
	kernel-team, Minchan Kim, Namhyung Kim, Peter Zijlstra, pi3orama,
	Wang Nan, Yannick Brosseau, Zefan Li, Arnaldo Carvalho de Melo

Hi Ingo,

	Please consider pulling, should get linux-next free of perf build fixdep
related race conditions on high core count machines,

- Arnaldo

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

The following changes since commit 34c4a42791bbc455e65a15d12dcd0b6b3c52ad13:

  Merge tag 'perf-core-for-mingo-20161205' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2016-12-06 09:14:56 +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-20161207

for you to fetch changes up to 108a7c103b761309ccbd997002e8428808cf1e04:

  perf tools: Explicitly document that --children is enabled by default (2016-12-07 12:00:35 -0300)

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

Improvements:

- Improve error message when analyzing file with required events in
  'perf sched timehist' (David Ahern)

Fixes:

- Force fixdep compilation to be done at the start of the build, fixing
  some build race conditions in high core count machines (Jiri Olsa)

- Fix handling a zero sample->tid in 'perf sched timehist', as
  sometimes that isn't the idle thread (Namhyung Kim)

Infrastructure:

- Check minimal accepted LLVM version in its feature check, 3.9 at this
  time (Wang Nan)

Documentation:

- Explicitly document that --children is enabled by default (Yannick Brosseau)

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

----------------------------------------------------------------
David Ahern (1):
      perf sched timehist: Improve error message when analyzing wrong file

Jiri Olsa (3):
      perf tools: Move PERF-VERSION-FILE target into rules area
      perf tools: Force fixdep compilation at the start of the build
      perf tools: Move perf build related variables under non fixdep leg

Namhyung Kim (4):
      perf sched: Cleanup option processing
      perf callchain: Introduce callchain_cursor__copy()
      perf sched timehist: Handle zero sample->tid properly
      perf sched timehist: Cleanup idle_max_cpu handling

Wang Nan (1):
      perf build: Check LLVM version in feature check

Yannick Brosseau (1):
      perf tools: Explicitly document that --children is enabled by default

 tools/build/feature/Makefile              |  8 +++-
 tools/build/feature/test-llvm-version.cpp | 11 +++++
 tools/build/feature/test-llvm.cpp         |  5 +++
 tools/perf/Documentation/perf-report.txt  |  3 +-
 tools/perf/Documentation/perf-top.txt     |  1 +
 tools/perf/Makefile.config                |  8 +++-
 tools/perf/Makefile.perf                  | 68 +++++++++++++++++++++----------
 tools/perf/builtin-sched.c                | 26 ++++++------
 tools/perf/util/callchain.c               | 27 ++++++++++++
 tools/perf/util/callchain.h               |  3 ++
 10 files changed, 122 insertions(+), 38 deletions(-)
 create mode 100644 tools/build/feature/test-llvm-version.cpp

  # uname -a
  Linux jouet 4.8.8-300.fc25.x86_64 #1 SMP Tue Nov 15 18:10:06 UTC 2016 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: 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                      : Ok
  37.2: BPF prologue generation                  : Ok
  37.3: BPF relocation checker                   : Ok
  38: Synthesize thread map                      : Ok
  39: Synthesize cpu map                         : Ok
  40: Synthesize stat config                     : Ok
  41: Synthesize stat                            : Ok
  42: Synthesize stat round                      : Ok
  43: Synthesize attr update                     : Ok
  44: Event times                                : Ok
  45: Read backward ring buffer                  : Ok
  46: Print cpu map                              : Ok
  47: Probe SDT events                           : Ok
  48: is_printable_array                         : Ok
  49: Print bitmap                               : Ok
  50: perf hooks                                 : Ok
  51: builtin clang support                      :
  51.1: builtin clang compile C source to IR        : Ok
  51.2: builtin clang compile C source to ELF object: Ok
  52: x86 rdpmc                                  : Ok
  53: Convert perf time to TSC                   : Ok
  54: DWARF unwind                               : Ok
  55: x86 instruction decoder - new instructions : Ok
  56: Intel cqm nmi context read                 : Skip
  # 
  # uname -a
  Linux zoo 4.7.3-200.fc24.x86_64 #1 SMP Wed Sep 7 17:31:21 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
  # time dm
   1 alpine:3.4: Ok
   2 android-ndk:r12b-arm: Ok
   3 archlinux:latest: Ok
   4 centos:5: Ok
   5 centos:6: Ok
   6 centos:7: Ok
   7 debian:7: Ok
   8 debian:8: Ok
   9 debian:experimental: Ok
  10 fedora:20: Ok
  11 fedora:21: Ok
  12 fedora:22: Ok
  13 fedora:23: Ok
  14 fedora:24: Ok
  15 fedora:24-x-ARC-uClibc: Ok
  16 fedora:rawhide: Ok
  17 mageia:5: Ok
  18 opensuse:13.2: Ok
  19 opensuse:42.1: Ok
  20 opensuse:tumbleweed: Ok
  21 ubuntu:12.04.5: Ok
  22 ubuntu:14.04: Ok
  23 ubuntu:14.04.4: Ok
  24 ubuntu:15.10: Ok
  25 ubuntu:16.04: Ok
  26 ubuntu:16.04-x-arm: Ok
  27 ubuntu:16.04-x-arm64: Ok
  28 ubuntu:16.04-x-powerpc: Ok
  29 ubuntu:16.04-x-powerpc64: Ok
  30 ubuntu:16.04-x-powerpc64el: Ok
  31 ubuntu:16.04-x-s390: Ok
  32 ubuntu:16.10: Ok
  #
  $ make -C tools/perf build-test
  make: Entering directory '/home/acme/git/linux/tools/perf'
  - tarpkg: ./tests/perf-targz-src-pkg .
                  make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1
                   make_help_O: make help
   make_install_prefix_slash_O: make install prefix=/tmp/krava/
                make_install_O: make install
                 make_static_O: make LDFLAGS=-static
           make_no_libbionic_O: make NO_LIBBIONIC=1
           make_no_backtrace_O: make NO_BACKTRACE=1
           make_no_libunwind_O: make NO_LIBUNWIND=1
                make_minimal_O: make NO_LIBPERL=1 NO_LIBPYTHON=1 NO_NEWT=1 NO_GTK2=1 NO_DEMANGLE=1 NO_LIBELF=1 NO_LIBUNWIND=1 NO_BACKTRACE=1 NO_LIBNUMA=1 NO_LIBAUDIT=1 NO_LIBBIONIC=1 NO_LIBDW_DWARF_UNWIND=1 NO_AUXTRACE=1 NO_LIBBPF=1 NO_LIBCRYPTO=1 NO_SDT=1 NO_JVMTI=1
                    make_doc_O: make doc
              make_no_libbpf_O: make NO_LIBBPF=1
             make_util_map_o_O: make util/map.o
            make_install_bin_O: make install-bin
            make_no_auxtrace_O: make NO_AUXTRACE=1
        make_with_babeltrace_O: make LIBBABELTRACE=1
         make_with_clangllvm_O: make LIBCLANGLLVM=1
                  make_debug_O: make DEBUG=1
              make_no_libelf_O: make NO_LIBELF=1
              make_clean_all_O: make clean all
             make_no_libperl_O: make NO_LIBPERL=1
            make_no_libaudit_O: make NO_LIBAUDIT=1
               make_no_slang_O: make NO_SLANG=1
       make_util_pmu_bison_o_O: make util/pmu-bison.o
                make_no_gtk2_O: make NO_GTK2=1
                   make_pure_O: make
             make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1
         make_install_prefix_O: make install prefix=/tmp/krava
                   make_tags_O: make tags
            make_no_demangle_O: make NO_DEMANGLE=1
                 make_perf_o_O: make perf.o
  make_no_libdw_dwarf_unwind_O: make NO_LIBDW_DWARF_UNWIND=1
             make_no_libnuma_O: make NO_LIBNUMA=1
           make_no_libpython_O: make NO_LIBPYTHON=1
                make_no_newt_O: make NO_NEWT=1
  OK
  make: Leaving directory '/home/acme/git/linux/tools/perf'
  $ 

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

* [GIT PULL 00/10] perf/core improvements and fixes
@ 2016-05-25 21:34 Arnaldo Carvalho de Melo
  0 siblings, 0 replies; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-05-25 21:34 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
	Alexander Shishkin, Alexei Starovoitov, Andi Kleen,
	Brendan Gregg, David Ahern, Frederic Weisbecker, He Kuang,
	Jiri Olsa, Linus Torvalds, Masami Hiramatsu, Milian Wolff,
	Namhyung Kim, Peter Zijlstra, pi3orama, Stephane Eranian,
	Thomas Gleixner, Vince Weaver, Wang Nan, Zefan Li,
	Arnaldo Carvalho de Melo

Hi Ingo,

	Please consider pulling,

- Arnaldo

The following changes since commit 275ae411e56f8f900fa364da29c4706f9af4e1f3:

  perf/x86/intel/rapl: Fix pmus free during cleanup (2016-05-25 10:56:43 +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-20160525

for you to fetch changes up to 83e1e314baf9a1424bf2f50953ed7d50612763c4:

  tools: Pass arg to fdarray__filter's call back function (2016-05-25 17:27:25 -0300)

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

User visible/kernel ABI:

- Per event callchain limit: Recently we introduced a sysctl to tune the
  max-stack for all events for which callchains were requested:

  $ sysctl kernel.perf_event_max_stack
  kernel.perf_event_max_stack = 127

  Now this patch introduces a way to configure this per event, i.e. this
  becomes possible:

  $ perf record -e sched:*/max-stack=2/ -e block:*/max-stack=10/ -a

  allowing finer tuning of how much buffer space callchains use.

  This uses an u16 from the reserved space at the end, leaving another
  u16 for future use.

  There has been interest in even finer tuning, namely to control the
  max stack for kernel and userspace callchains separately. Further
  discussion is needed, we may for instance use the remaining u16 for
  that and when it is present, assume that the sample_max_stack introduced
  in this patch applies for the kernel, and the u16 left is used for
  limiting the userspace callchain. (Arnaldo Carvalho de Melo)

- Fix kptr_restrict=2 related 'perf record' segfault (Wang Nan)

Infrastructure;

- Adopt get_main_thread from db-export.c (Andi Kleen)

- More prep work for backward ring buffer support (Wang Nan)

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

----------------------------------------------------------------
Andi Kleen (1):
      perf thread: Adopt get_main_thread from db-export.c

Arnaldo Carvalho de Melo (2):
      perf core: Per event callchain limit
      perf tools: Per event max-stack settings

Wang Nan (7):
      perf symbols: Check kptr_restrict for root
      perf record: Fix crash when kptr is restricted
      perf record: Robustify perf_event__synth_time_conv()
      perf evlist: Don't poll and mmap overwritable events
      perf evlist: Check 'base' pointer before checking refcnt when put a mmap
      perf evlist: Choose correct reading direction according to evlist->backward
      tools: Pass arg to fdarray__filter's call back function

 include/linux/perf_event.h      |  2 +-
 include/uapi/linux/perf_event.h |  6 +++++-
 kernel/bpf/stackmap.c           |  2 +-
 kernel/events/callchain.c       | 14 ++++++++++++--
 kernel/events/core.c            |  5 ++++-
 tools/lib/api/fd/array.c        |  5 +++--
 tools/lib/api/fd/array.h        |  3 ++-
 tools/perf/arch/x86/util/tsc.c  |  2 ++
 tools/perf/builtin-record.c     |  9 ++++++++-
 tools/perf/tests/fdarray.c      |  8 ++++----
 tools/perf/util/callchain.h     |  1 +
 tools/perf/util/db-export.c     | 13 +------------
 tools/perf/util/event.c         |  2 ++
 tools/perf/util/evlist.c        | 43 ++++++++++++++++++++++++++++++++---------
 tools/perf/util/evlist.h        |  2 ++
 tools/perf/util/evsel.c         | 16 +++++++++++++--
 tools/perf/util/evsel.h         |  2 ++
 tools/perf/util/parse-events.c  |  8 ++++++++
 tools/perf/util/parse-events.h  |  1 +
 tools/perf/util/parse-events.l  |  1 +
 tools/perf/util/session.c       |  2 ++
 tools/perf/util/symbol.c        | 16 +++++++--------
 tools/perf/util/thread.c        | 11 +++++++++++
 tools/perf/util/thread.h        |  2 ++
 24 files changed, 131 insertions(+), 45 deletions(-)

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

* Re: [GIT PULL 00/10] perf/core improvements and fixes
  2016-04-01 21:56 Arnaldo Carvalho de Melo
@ 2016-04-06  6:47 ` Ingo Molnar
  0 siblings, 0 replies; 59+ messages in thread
From: Ingo Molnar @ 2016-04-06  6:47 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Adrian Hunter, Alexander Shishkin, Andi Kleen,
	David Ahern, He Kuang, Jiri Olsa, Josh Poimboeuf, Kan Liang,
	Milian Wolff, Namhyung Kim, Peter Zijlstra, pi3orama,
	Stephane Eranian, Sukadev Bhattiprolu, 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 d1b26c70246bc72922ae61d9f972d5c2588409e7:
> 
>   perf/ring_buffer: Prepare writing into the ring-buffer from the end (2016-03-31 10:30:49 +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-20160401
> 
> for you to fetch changes up to d37ba880598654fda10b312331377cdca3edd574:
> 
>   perf bpf: Add sample types for 'bpf-output' event (2016-04-01 18:46:25 -0300)
> 
> ----------------------------------------------------------------
> perf/core improvements and fixes:
> 
> User visible:
> 
> - Do not use events that don't have timestamps when setting 'perf trace's
>   base timestamp, fixing up the timestamp column for syscalls (Arnaldo Carvalho de Melo)
> 
> - Make the 'bpf-output' sample_type be the same as tracepoint's, fixing up
>   'perf trace's timestamp column for bpf events (Wang Nan)
> 
> - Fix PMU term format max value calculation (Kan Liang)
> 
> - Pretty print 'seccomp', 'getrandom' syscalls in 'perf trace' (Arnaldo Carvalho de Melo)
> 
> Infrastructure:
> 
> - Add support for using TSC as an ARCH timestamp when synthesizing
>   JIT records (Adrian Hunter)
> 
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> ----------------------------------------------------------------
> Adrian Hunter (3):
>       perf tools: Add time conversion event
>       perf jit: Add support for using TSC as a timestamp
>       perf intel-pt/bts: Define JITDUMP_USE_ARCH_TIMESTAMP
> 
> Arnaldo Carvalho de Melo (5):
>       perf trace: Do not process PERF_RECORD_LOST twice
>       perf trace: Pretty print seccomp() args
>       perf trace: Pretty print getrandom() args
>       perf trace: Introduce function to set the base timestamp
>       perf trace: Don't set the base timestamp using events without PERF_SAMPLE_TIME
> 
> Kan Liang (1):
>       perf tools: Fix PMU term format max value calculation
> 
> Wang Nan (1):
>       perf bpf: Add sample types for 'bpf-output' event
> 
>  tools/perf/arch/x86/util/intel-bts.c |  5 ++
>  tools/perf/arch/x86/util/intel-pt.c  |  5 ++
>  tools/perf/arch/x86/util/tsc.c       | 32 +++++++++++-
>  tools/perf/arch/x86/util/tsc.h       | 17 -------
>  tools/perf/builtin-inject.c          |  1 +
>  tools/perf/builtin-record.c          | 15 ++++++
>  tools/perf/builtin-trace.c           | 99 ++++++++++++++++++++++++++++++++++--
>  tools/perf/jvmti/jvmti_agent.c       | 43 +++++++++++++++-
>  tools/perf/util/Build                |  3 +-
>  tools/perf/util/event.c              |  1 +
>  tools/perf/util/event.h              |  9 ++++
>  tools/perf/util/evsel.c              |  3 +-
>  tools/perf/util/jitdump.c            | 37 ++++++++++++--
>  tools/perf/util/jitdump.h            |  3 ++
>  tools/perf/util/pmu.c                | 13 +++--
>  tools/perf/util/session.c            |  6 +++
>  tools/perf/util/session.h            |  1 +
>  tools/perf/util/tool.h               |  1 +
>  tools/perf/util/tsc.h                | 21 +++++++-
>  19 files changed, 274 insertions(+), 41 deletions(-)
>  delete mode 100644 tools/perf/arch/x86/util/tsc.h

Pulled, thanks a lot Arnaldo!

	Ingo

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

* [GIT PULL 00/10] perf/core improvements and fixes
@ 2016-04-01 21:56 Arnaldo Carvalho de Melo
  2016-04-06  6:47 ` Ingo Molnar
  0 siblings, 1 reply; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-04-01 21:56 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,
	Josh Poimboeuf, Kan Liang, Milian Wolff, Namhyung Kim,
	Peter Zijlstra, pi3orama, Stephane Eranian, Sukadev Bhattiprolu,
	Wang Nan, Arnaldo Carvalho de Melo

Hi Ingo,

	Please consider pulling,

- Arnaldo

The following changes since commit d1b26c70246bc72922ae61d9f972d5c2588409e7:

  perf/ring_buffer: Prepare writing into the ring-buffer from the end (2016-03-31 10:30:49 +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-20160401

for you to fetch changes up to d37ba880598654fda10b312331377cdca3edd574:

  perf bpf: Add sample types for 'bpf-output' event (2016-04-01 18:46:25 -0300)

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

User visible:

- Do not use events that don't have timestamps when setting 'perf trace's
  base timestamp, fixing up the timestamp column for syscalls (Arnaldo Carvalho de Melo)

- Make the 'bpf-output' sample_type be the same as tracepoint's, fixing up
  'perf trace's timestamp column for bpf events (Wang Nan)

- Fix PMU term format max value calculation (Kan Liang)

- Pretty print 'seccomp', 'getrandom' syscalls in 'perf trace' (Arnaldo Carvalho de Melo)

Infrastructure:

- Add support for using TSC as an ARCH timestamp when synthesizing
  JIT records (Adrian Hunter)

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

----------------------------------------------------------------
Adrian Hunter (3):
      perf tools: Add time conversion event
      perf jit: Add support for using TSC as a timestamp
      perf intel-pt/bts: Define JITDUMP_USE_ARCH_TIMESTAMP

Arnaldo Carvalho de Melo (5):
      perf trace: Do not process PERF_RECORD_LOST twice
      perf trace: Pretty print seccomp() args
      perf trace: Pretty print getrandom() args
      perf trace: Introduce function to set the base timestamp
      perf trace: Don't set the base timestamp using events without PERF_SAMPLE_TIME

Kan Liang (1):
      perf tools: Fix PMU term format max value calculation

Wang Nan (1):
      perf bpf: Add sample types for 'bpf-output' event

 tools/perf/arch/x86/util/intel-bts.c |  5 ++
 tools/perf/arch/x86/util/intel-pt.c  |  5 ++
 tools/perf/arch/x86/util/tsc.c       | 32 +++++++++++-
 tools/perf/arch/x86/util/tsc.h       | 17 -------
 tools/perf/builtin-inject.c          |  1 +
 tools/perf/builtin-record.c          | 15 ++++++
 tools/perf/builtin-trace.c           | 99 ++++++++++++++++++++++++++++++++++--
 tools/perf/jvmti/jvmti_agent.c       | 43 +++++++++++++++-
 tools/perf/util/Build                |  3 +-
 tools/perf/util/event.c              |  1 +
 tools/perf/util/event.h              |  9 ++++
 tools/perf/util/evsel.c              |  3 +-
 tools/perf/util/jitdump.c            | 37 ++++++++++++--
 tools/perf/util/jitdump.h            |  3 ++
 tools/perf/util/pmu.c                | 13 +++--
 tools/perf/util/session.c            |  6 +++
 tools/perf/util/session.h            |  1 +
 tools/perf/util/tool.h               |  1 +
 tools/perf/util/tsc.h                | 21 +++++++-
 19 files changed, 274 insertions(+), 41 deletions(-)
 delete mode 100644 tools/perf/arch/x86/util/tsc.h

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

* Re: [GIT PULL 00/10] perf/core improvements and fixes
  2016-02-16 20:34 Arnaldo Carvalho de Melo
@ 2016-02-17  7:39 ` Ingo Molnar
  0 siblings, 0 replies; 59+ messages in thread
From: Ingo Molnar @ 2016-02-17  7:39 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Adrian Hunter, Andi Kleen, David Ahern, Jiri Olsa,
	Kan Liang, Namhyung Kim, Peter Zijlstra, Stephane Eranian,
	Wang Nan, Arnaldo Carvalho de Melo


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

> Hi Ingo,
> 
> 	Please consider pulling,
> 
> - Arnaldo
> 
> The following changes since commit fe7a2eaa71c55aadbf95d01d32df8dccc0db0646:
> 
>   Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2016-02-16 08:45:56 +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 cb110f471025f3278978aaccb18f3164ea2b8189:
> 
>   perf stat: Move noise/running printing into printout (2016-02-16 17:13:02 -0300)
> 
> ----------------------------------------------------------------
> perf/core improvements and fixes:
> 
> User visible:
> 
> - Make 'perf record' collect CPU cache info in the perf.data file header:
> 
>   $ perf record usleep 1
>   [ perf record: Woken up 1 times to write data ]
>   [ perf record: Captured and wrote 0.017 MB perf.data (7 samples) ]
>   $ perf report --header-only -I | tail -10 | head -8
>   # CPU cache info:
>   #  L1 Data                 32K [0-1]
>   #  L1 Instruction          32K [0-1]
>   #  L1 Data                 32K [2-3]
>   #  L1 Instruction          32K [2-3]
>   #  L2 Unified             256K [0-1]
>   #  L2 Unified             256K [2-3]
>   #  L3 Unified            4096K [0-3]
>   $
> 
>   Will be used in 'perf c2c' and eventually in 'perf diff' to allow, for instance
>   running the same workload in multiple machines and then when using 'diff' show
>   the hardware difference. (Jiri Olsa)
> 
> - 'perf stat' now shows shadow metrics (insn per cycle, etc) in
>   interval mode too. E.g:
> 
>     # perf stat -I 1000 -e instructions,cycles sleep 1
>     #         time   counts unit events
>        1.000215928  519,620      instructions     #  0.69 insn per cycle
>        1.000215928  752,003      cycles
>     <SNIP>
> 
> Infrastructure:
> 
> - libapi now can also use pr_{warning,info,debug}() and that can be
>   set by tools using it (Jiri Olsa)
> 
> - libapi adopts filename__read_str() from perf, adds sysfs__read_str() (Jiri Olsa)
> 
> - Add check for java alternatives cmd in jvmti Makefile, so that it manages
>   to automatically find the right path for the JDK devel files in Ubuntu like
>   systems in addition to Fedora like ones (Stephane Eranian)
> 
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> ----------------------------------------------------------------
> Andi Kleen (3):
>       perf stat: Abstract stat metrics printing
>       perf stat: Add support for metrics in interval mode
>       perf stat: Move noise/running printing into printout
> 
> Arnaldo Carvalho de Melo (1):
>       perf debug: Rename __eprintf(va_list args) to veprintf
> 
> Jiri Olsa (5):
>       tools lib api: Add debug output support
>       tools lib api fs: Adopt filename__read_str from perf
>       tools lib api fs: Add sysfs__read_str function
>       perf tools: Initialize libapi debug output
>       perf tools: Add perf data cache feature
> 
> Stephane Eranian (1):
>       perf jvmti: Add check for java alternatives cmd in Makefile
> 
>  tools/lib/api/Build            |   1 +
>  tools/lib/api/Makefile         |   1 +
>  tools/lib/api/debug-internal.h |  20 +++
>  tools/lib/api/debug.c          |  28 +++++
>  tools/lib/api/debug.h          |  10 ++
>  tools/lib/api/fs/fs.c          |  64 ++++++++++
>  tools/lib/api/fs/fs.h          |   3 +
>  tools/perf/builtin-stat.c      | 202 +++++++++++++++---------------
>  tools/perf/jvmti/Makefile      |   6 +-
>  tools/perf/perf.c              |   2 +
>  tools/perf/util/debug.c        |  36 ++++--
>  tools/perf/util/debug.h        |   1 +
>  tools/perf/util/env.c          |  13 ++
>  tools/perf/util/env.h          |  15 +++
>  tools/perf/util/header.c       | 270 +++++++++++++++++++++++++++++++++++++++++
>  tools/perf/util/header.h       |   1 +
>  tools/perf/util/stat-shadow.c  | 211 +++++++++++++++++---------------
>  tools/perf/util/stat.h         |  15 ++-
>  tools/perf/util/trace-event.c  |   1 +
>  tools/perf/util/util.c         |  48 --------
>  tools/perf/util/util.h         |   1 -
>  21 files changed, 694 insertions(+), 255 deletions(-)
>  create mode 100644 tools/lib/api/debug-internal.h
>  create mode 100644 tools/lib/api/debug.c
>  create mode 100644 tools/lib/api/debug.h

Pulled, thanks a lot Arnaldo!

	Ingo

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

* [GIT PULL 00/10] perf/core improvements and fixes
@ 2016-02-16 20:34 Arnaldo Carvalho de Melo
  2016-02-17  7:39 ` Ingo Molnar
  0 siblings, 1 reply; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-02-16 20:34 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
	Andi Kleen, David Ahern, Jiri Olsa, Kan Liang, Namhyung Kim,
	Peter Zijlstra, Stephane Eranian, Wang Nan,
	Arnaldo Carvalho de Melo

Hi Ingo,

	Please consider pulling,

- Arnaldo

The following changes since commit fe7a2eaa71c55aadbf95d01d32df8dccc0db0646:

  Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2016-02-16 08:45:56 +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 cb110f471025f3278978aaccb18f3164ea2b8189:

  perf stat: Move noise/running printing into printout (2016-02-16 17:13:02 -0300)

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

User visible:

- Make 'perf record' collect CPU cache info in the perf.data file header:

  $ perf record usleep 1
  [ perf record: Woken up 1 times to write data ]
  [ perf record: Captured and wrote 0.017 MB perf.data (7 samples) ]
  $ perf report --header-only -I | tail -10 | head -8
  # CPU cache info:
  #  L1 Data                 32K [0-1]
  #  L1 Instruction          32K [0-1]
  #  L1 Data                 32K [2-3]
  #  L1 Instruction          32K [2-3]
  #  L2 Unified             256K [0-1]
  #  L2 Unified             256K [2-3]
  #  L3 Unified            4096K [0-3]
  $

  Will be used in 'perf c2c' and eventually in 'perf diff' to allow, for instance
  running the same workload in multiple machines and then when using 'diff' show
  the hardware difference. (Jiri Olsa)

- 'perf stat' now shows shadow metrics (insn per cycle, etc) in
  interval mode too. E.g:

    # perf stat -I 1000 -e instructions,cycles sleep 1
    #         time   counts unit events
       1.000215928  519,620      instructions     #  0.69 insn per cycle
       1.000215928  752,003      cycles
    <SNIP>

Infrastructure:

- libapi now can also use pr_{warning,info,debug}() and that can be
  set by tools using it (Jiri Olsa)

- libapi adopts filename__read_str() from perf, adds sysfs__read_str() (Jiri Olsa)

- Add check for java alternatives cmd in jvmti Makefile, so that it manages
  to automatically find the right path for the JDK devel files in Ubuntu like
  systems in addition to Fedora like ones (Stephane Eranian)

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

----------------------------------------------------------------
Andi Kleen (3):
      perf stat: Abstract stat metrics printing
      perf stat: Add support for metrics in interval mode
      perf stat: Move noise/running printing into printout

Arnaldo Carvalho de Melo (1):
      perf debug: Rename __eprintf(va_list args) to veprintf

Jiri Olsa (5):
      tools lib api: Add debug output support
      tools lib api fs: Adopt filename__read_str from perf
      tools lib api fs: Add sysfs__read_str function
      perf tools: Initialize libapi debug output
      perf tools: Add perf data cache feature

Stephane Eranian (1):
      perf jvmti: Add check for java alternatives cmd in Makefile

 tools/lib/api/Build            |   1 +
 tools/lib/api/Makefile         |   1 +
 tools/lib/api/debug-internal.h |  20 +++
 tools/lib/api/debug.c          |  28 +++++
 tools/lib/api/debug.h          |  10 ++
 tools/lib/api/fs/fs.c          |  64 ++++++++++
 tools/lib/api/fs/fs.h          |   3 +
 tools/perf/builtin-stat.c      | 202 +++++++++++++++---------------
 tools/perf/jvmti/Makefile      |   6 +-
 tools/perf/perf.c              |   2 +
 tools/perf/util/debug.c        |  36 ++++--
 tools/perf/util/debug.h        |   1 +
 tools/perf/util/env.c          |  13 ++
 tools/perf/util/env.h          |  15 +++
 tools/perf/util/header.c       | 270 +++++++++++++++++++++++++++++++++++++++++
 tools/perf/util/header.h       |   1 +
 tools/perf/util/stat-shadow.c  | 211 +++++++++++++++++---------------
 tools/perf/util/stat.h         |  15 ++-
 tools/perf/util/trace-event.c  |   1 +
 tools/perf/util/util.c         |  48 --------
 tools/perf/util/util.h         |   1 -
 21 files changed, 694 insertions(+), 255 deletions(-)
 create mode 100644 tools/lib/api/debug-internal.h
 create mode 100644 tools/lib/api/debug.c
 create mode 100644 tools/lib/api/debug.h

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

* Re: [GIT PULL 00/10] perf/core improvements and fixes
  2015-11-28  9:50 ` Ingo Molnar
@ 2015-11-29 13:16   ` Namhyung Kim
  0 siblings, 0 replies; 59+ messages in thread
From: Namhyung Kim @ 2015-11-29 13:16 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Arnaldo Carvalho de Melo, linux-kernel, Arnaldo Carvalho de Melo,
	Adrian Hunter, Alexei Starovoitov, David Ahern, He Kuang,
	Jiri Olsa, Masami Hiramatsu, Michael Petlan, Peter Zijlstra,
	pi3orama, Wang Nan, Zefan Li

Hi Ingo,

On Sat, Nov 28, 2015 at 10:50:19AM +0100, Ingo Molnar wrote:
> 
> * Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> 
> > From: Arnaldo Carvalho de Melo <acme@redhat.com>
> > 
> > Hi Ingo,
> > 
> > 	Please consider applying,
> > 
> > - Arnaldo
> > 
> > The following changes since commit 3f3b1a46bfdbce97dd3f9594d8a95db82baa554b:
> > 
> >   Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-11-27 08:28:44 +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 0bb93490170477224f8bd4cc9ce8920517461643:
> > 
> >   perf bpf: Rename bpf config to program config (2015-11-27 22:00:46 -0300)
> > 
> > ----------------------------------------------------------------
> > perf/core improvements and fixes:
> > 
> > User visible:
> > 
> > - Fix 'perf list' segfault due to lack of support for PERF_CONF_SW_BPF_OUTPUT
> >   in an array used just for printing available events, robustify the code
> >   involved (Arnaldo Carvalho de Melo)
> > 
> > - 'perf test unwind' should create kernel maps, now that entry works and the
> >   test passes (Jiri Olsa)
> > 
> > - Fix showing the running kernel build id in 'perf buildid-list' (Michael Petlan)
> > 
> > - Fix command line symbol filtering in 'perf report' (Namhyung Kim)
> > 
> > Infrastructure:
> > 
> > - Extract and collect map info from BPF object files in libbpf (Wang Nan)
> > 
> > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> > 
> > ----------------------------------------------------------------
> > Arnaldo Carvalho de Melo (2):
> >       perf list: Add support for PERF_COUNT_SW_BPF_OUT
> >       perf list: Robustify event printing routine
> > 
> > Jiri Olsa (1):
> >       perf test: 'unwind' test should create kernel maps
> > 
> > Michael Petlan (1):
> >       perf buildid-list: Show running kernel build id fix
> > 
> > Namhyung Kim (3):
> >       perf report: Show error message when processing sample fails
> >       perf hists: Do not skip elided fields when processing samples
> >       perf hists browser: Update nr entries regardless of min percent
> > 
> > Wang Nan (3):
> >       tools lib bpf: Collect map definition in bpf_object
> >       tools lib bpf: Extract and collect map names from BPF object file
> >       perf bpf: Rename bpf config to program config
> > 
> >  tools/lib/bpf/libbpf.c          | 252 ++++++++++++++++++++++++++++++----------
> >  tools/lib/bpf/libbpf.h          |  24 ++++
> >  tools/perf/builtin-report.c     |  12 +-
> >  tools/perf/tests/dwarf-unwind.c |   5 +
> >  tools/perf/ui/browsers/hists.c  |   5 +-
> >  tools/perf/util/bpf-loader.c    |  65 +++++------
> >  tools/perf/util/bpf-loader.h    |   2 +-
> >  tools/perf/util/build-id.c      |   2 +-
> >  tools/perf/util/hist.c          |   6 -
> >  tools/perf/util/parse-events.c  |   6 +-
> >  10 files changed, 268 insertions(+), 111 deletions(-)
> 
> Pulled, thanks a lot Arnaldo!
> 
> Should any of the above fixes be cherry-picked over into perf/urgent, or are these 
> all new regressions?

At least my changes should go into perf/urgent and probably stable too.

Thanks,
Namhyung

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

* Re: [GIT PULL 00/10] perf/core improvements and fixes
  2015-11-28  1:22 Arnaldo Carvalho de Melo
@ 2015-11-28  9:50 ` Ingo Molnar
  2015-11-29 13:16   ` Namhyung Kim
  0 siblings, 1 reply; 59+ messages in thread
From: Ingo Molnar @ 2015-11-28  9:50 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
	Alexei Starovoitov, David Ahern, He Kuang, Jiri Olsa,
	Masami Hiramatsu, Michael Petlan, Namhyung Kim, Peter Zijlstra,
	pi3orama, Wang Nan, Zefan Li


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

> From: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> Hi Ingo,
> 
> 	Please consider applying,
> 
> - Arnaldo
> 
> The following changes since commit 3f3b1a46bfdbce97dd3f9594d8a95db82baa554b:
> 
>   Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-11-27 08:28:44 +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 0bb93490170477224f8bd4cc9ce8920517461643:
> 
>   perf bpf: Rename bpf config to program config (2015-11-27 22:00:46 -0300)
> 
> ----------------------------------------------------------------
> perf/core improvements and fixes:
> 
> User visible:
> 
> - Fix 'perf list' segfault due to lack of support for PERF_CONF_SW_BPF_OUTPUT
>   in an array used just for printing available events, robustify the code
>   involved (Arnaldo Carvalho de Melo)
> 
> - 'perf test unwind' should create kernel maps, now that entry works and the
>   test passes (Jiri Olsa)
> 
> - Fix showing the running kernel build id in 'perf buildid-list' (Michael Petlan)
> 
> - Fix command line symbol filtering in 'perf report' (Namhyung Kim)
> 
> Infrastructure:
> 
> - Extract and collect map info from BPF object files in libbpf (Wang Nan)
> 
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (2):
>       perf list: Add support for PERF_COUNT_SW_BPF_OUT
>       perf list: Robustify event printing routine
> 
> Jiri Olsa (1):
>       perf test: 'unwind' test should create kernel maps
> 
> Michael Petlan (1):
>       perf buildid-list: Show running kernel build id fix
> 
> Namhyung Kim (3):
>       perf report: Show error message when processing sample fails
>       perf hists: Do not skip elided fields when processing samples
>       perf hists browser: Update nr entries regardless of min percent
> 
> Wang Nan (3):
>       tools lib bpf: Collect map definition in bpf_object
>       tools lib bpf: Extract and collect map names from BPF object file
>       perf bpf: Rename bpf config to program config
> 
>  tools/lib/bpf/libbpf.c          | 252 ++++++++++++++++++++++++++++++----------
>  tools/lib/bpf/libbpf.h          |  24 ++++
>  tools/perf/builtin-report.c     |  12 +-
>  tools/perf/tests/dwarf-unwind.c |   5 +
>  tools/perf/ui/browsers/hists.c  |   5 +-
>  tools/perf/util/bpf-loader.c    |  65 +++++------
>  tools/perf/util/bpf-loader.h    |   2 +-
>  tools/perf/util/build-id.c      |   2 +-
>  tools/perf/util/hist.c          |   6 -
>  tools/perf/util/parse-events.c  |   6 +-
>  10 files changed, 268 insertions(+), 111 deletions(-)

Pulled, thanks a lot Arnaldo!

Should any of the above fixes be cherry-picked over into perf/urgent, or are these 
all new regressions?

Thanks,

	Ingo

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

* [GIT PULL 00/10] perf/core improvements and fixes
@ 2015-11-28  1:22 Arnaldo Carvalho de Melo
  2015-11-28  9:50 ` Ingo Molnar
  0 siblings, 1 reply; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-11-28  1:22 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
	Alexei Starovoitov, David Ahern, He Kuang, Jiri Olsa,
	Masami Hiramatsu, Michael Petlan, Namhyung Kim, Peter Zijlstra,
	pi3orama, Wang Nan, Zefan Li

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

Hi Ingo,

	Please consider applying,

- Arnaldo

The following changes since commit 3f3b1a46bfdbce97dd3f9594d8a95db82baa554b:

  Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-11-27 08:28:44 +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 0bb93490170477224f8bd4cc9ce8920517461643:

  perf bpf: Rename bpf config to program config (2015-11-27 22:00:46 -0300)

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

User visible:

- Fix 'perf list' segfault due to lack of support for PERF_CONF_SW_BPF_OUTPUT
  in an array used just for printing available events, robustify the code
  involved (Arnaldo Carvalho de Melo)

- 'perf test unwind' should create kernel maps, now that entry works and the
  test passes (Jiri Olsa)

- Fix showing the running kernel build id in 'perf buildid-list' (Michael Petlan)

- Fix command line symbol filtering in 'perf report' (Namhyung Kim)

Infrastructure:

- Extract and collect map info from BPF object files in libbpf (Wang Nan)

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

----------------------------------------------------------------
Arnaldo Carvalho de Melo (2):
      perf list: Add support for PERF_COUNT_SW_BPF_OUT
      perf list: Robustify event printing routine

Jiri Olsa (1):
      perf test: 'unwind' test should create kernel maps

Michael Petlan (1):
      perf buildid-list: Show running kernel build id fix

Namhyung Kim (3):
      perf report: Show error message when processing sample fails
      perf hists: Do not skip elided fields when processing samples
      perf hists browser: Update nr entries regardless of min percent

Wang Nan (3):
      tools lib bpf: Collect map definition in bpf_object
      tools lib bpf: Extract and collect map names from BPF object file
      perf bpf: Rename bpf config to program config

 tools/lib/bpf/libbpf.c          | 252 ++++++++++++++++++++++++++++++----------
 tools/lib/bpf/libbpf.h          |  24 ++++
 tools/perf/builtin-report.c     |  12 +-
 tools/perf/tests/dwarf-unwind.c |   5 +
 tools/perf/ui/browsers/hists.c  |   5 +-
 tools/perf/util/bpf-loader.c    |  65 +++++------
 tools/perf/util/bpf-loader.h    |   2 +-
 tools/perf/util/build-id.c      |   2 +-
 tools/perf/util/hist.c          |   6 -
 tools/perf/util/parse-events.c  |   6 +-
 10 files changed, 268 insertions(+), 111 deletions(-)

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

* Re: [GIT PULL 00/10] perf/core improvements and fixes
  2015-08-28 18:06 Arnaldo Carvalho de Melo
@ 2015-08-31  8:28 ` Ingo Molnar
  0 siblings, 0 replies; 59+ messages in thread
From: Ingo Molnar @ 2015-08-31  8:28 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Arnaldo, Carvalho, de, Adrian Hunter, Andi Kleen,
	Andy Lutomirski, Borislav Petkov, David Ahern,
	Frederic Weisbecker, Hemant Kumar, Jiri Olsa, Kan Liang,
	Mark Drayton, Mark Rutland, Masami Hiramatsu, Matt Fleming,
	Mel Gorman, Namhyung Kim, Paul Mackerras, Peter Zijlstra,
	Raphael Beamonte, Stephane Eranian, Steven Rostedt, Tony Jones,
	Vlastimil Babka, Yannick Brosseau, Arnaldo Carvalho de Melo


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

> From: Arnaldo Carvalho de Melo <acme@kernel.org
> 
> Hi Ingo,
> 
> 	Please consider pulling,
> 
> - Arnaldo
> 
> The following changes since commit d1ee8bc195ffedbf91af0245a2406d6ebd2578f8:
> 
>   Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-08-28 08:22:02 +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 2c07144dfce366e21465cc7b0ada9f0b6dc7b7ed:
> 
>   perf evlist: Add backpointer for perf_env to evlist (2015-08-28 14:54:14 -0300)
> 
> ----------------------------------------------------------------
> perf/core improvement and fixes:
> 
> User visible:
> 
> - Add new compaction-times python script (Tony Jones)
> 
> - Make the --[no-]-demangle/--[no-]-demangle-kernel command line
>   options available in 'perf script' too (Mark Drayton)
> 
> - Allow for negative numbers in libtraceevent's print format,
>   fixing up misformatting in some tracepoints (Steven Rostedt)
> 
> Infrastructure:
> 
> - perf_env/perf_evlist changes to allow accessing the data
>   structure with the environment where some perf data was
>   collected in functions not necessarily related to perf.data
>   file processing (Kan Liang)
> 
> - Cleanups for the tracepoint definition location paths routines (Jiri Olsa)
> 
> - Introduce sysfs/filename__sprintf_build_id, removing code
>   duplication (Masami Hiramatsu)
> 
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (2):
>       perf trace: Add header with copyright and background info
>       perf evsel: Add a backpointer to the evlist a evsel is in
> 
> Jiri Olsa (2):
>       perf tools: Add tracing_path and remove unneeded functions
>       perf tools: Do not change lib/api/fs/debugfs directly
> 
> Kan Liang (2):
>       perf tools: Rename perf_session_env to perf_env
>       perf evlist: Add backpointer for perf_env to evlist
> 
> Mark Drayton (1):
>       perf script: Add --[no-]-demangle/--[no-]-demangle-kernel
> 
> Masami Hiramatsu (1):
>       perf buildid: Introduce sysfs/filename__sprintf_build_id
> 
> Steven Rostedt (1):
>       tools lib traceeveent: Allow for negative numbers in print format
> 
> Tony Jones (1):
>       perf scripts python: Add new compaction-times script
> 
>  tools/lib/traceevent/event-parse.c                 |   1 +
>  tools/perf/Documentation/perf-script.txt           |   7 +
>  tools/perf/arch/common.c                           |   4 +-
>  tools/perf/arch/common.h                           |   2 +-
>  tools/perf/builtin-buildid-cache.c                 |  14 +-
>  tools/perf/builtin-buildid-list.c                  |  24 +-
>  tools/perf/builtin-script.c                        |   5 +
>  tools/perf/builtin-trace.c                         |  19 ++
>  tools/perf/perf.c                                  |   2 +-
>  .../scripts/python/bin/compaction-times-record     |   2 +
>  .../scripts/python/bin/compaction-times-report     |   4 +
>  tools/perf/scripts/python/compaction-times.py      | 311 +++++++++++++++++++++
>  tools/perf/ui/browser.h                            |   4 +-
>  tools/perf/ui/browsers/header.c                    |   2 +-
>  tools/perf/ui/browsers/hists.c                     |  12 +-
>  tools/perf/util/build-id.c                         |  32 +++
>  tools/perf/util/build-id.h                         |   3 +
>  tools/perf/util/evlist.c                           |   2 +
>  tools/perf/util/evlist.h                           |   1 +
>  tools/perf/util/evsel.c                            |   2 +
>  tools/perf/util/evsel.h                            |   4 +
>  tools/perf/util/header.c                           |   1 +
>  tools/perf/util/header.h                           |   4 +-
>  tools/perf/util/hist.h                             |   4 +-
>  tools/perf/util/session.c                          |   2 +-
>  tools/perf/util/symbol.c                           |   4 +-
>  tools/perf/util/symbol.h                           |   4 +-
>  tools/perf/util/util.c                             |  57 +---
>  tools/perf/util/util.h                             |   2 +-
>  29 files changed, 433 insertions(+), 102 deletions(-)
>  create mode 100644 tools/perf/scripts/python/bin/compaction-times-record
>  create mode 100644 tools/perf/scripts/python/bin/compaction-times-report
>  create mode 100644 tools/perf/scripts/python/compaction-times.py

Pulled, thanks a lot Arnaldo!

	Ingo

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

* [GIT PULL 00/10] perf/core improvements and fixes
@ 2015-08-28 18:06 Arnaldo Carvalho de Melo
  2015-08-31  8:28 ` Ingo Molnar
  0 siblings, 1 reply; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-08-28 18:06 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo, Carvalho, de, Melo <acme,
	Adrian Hunter, Andi Kleen, Andy Lutomirski, Borislav Petkov,
	David Ahern, Frederic Weisbecker, Hemant Kumar, Jiri Olsa,
	Kan Liang, Mark Drayton, Mark Rutland, Masami Hiramatsu,
	Matt Fleming, Mel Gorman, Namhyung Kim, Paul Mackerras,
	Peter Zijlstra, Raphael Beamonte, Stephane Eranian,
	Steven Rostedt, Tony Jones, Vlastimil Babka, Yannick Brosseau,
	Arnaldo Carvalho de Melo

From: Arnaldo Carvalho de Melo <acme@kernel.org

Hi Ingo,

	Please consider pulling,

- Arnaldo

The following changes since commit d1ee8bc195ffedbf91af0245a2406d6ebd2578f8:

  Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-08-28 08:22:02 +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 2c07144dfce366e21465cc7b0ada9f0b6dc7b7ed:

  perf evlist: Add backpointer for perf_env to evlist (2015-08-28 14:54:14 -0300)

----------------------------------------------------------------
perf/core improvement and fixes:

User visible:

- Add new compaction-times python script (Tony Jones)

- Make the --[no-]-demangle/--[no-]-demangle-kernel command line
  options available in 'perf script' too (Mark Drayton)

- Allow for negative numbers in libtraceevent's print format,
  fixing up misformatting in some tracepoints (Steven Rostedt)

Infrastructure:

- perf_env/perf_evlist changes to allow accessing the data
  structure with the environment where some perf data was
  collected in functions not necessarily related to perf.data
  file processing (Kan Liang)

- Cleanups for the tracepoint definition location paths routines (Jiri Olsa)

- Introduce sysfs/filename__sprintf_build_id, removing code
  duplication (Masami Hiramatsu)

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

----------------------------------------------------------------
Arnaldo Carvalho de Melo (2):
      perf trace: Add header with copyright and background info
      perf evsel: Add a backpointer to the evlist a evsel is in

Jiri Olsa (2):
      perf tools: Add tracing_path and remove unneeded functions
      perf tools: Do not change lib/api/fs/debugfs directly

Kan Liang (2):
      perf tools: Rename perf_session_env to perf_env
      perf evlist: Add backpointer for perf_env to evlist

Mark Drayton (1):
      perf script: Add --[no-]-demangle/--[no-]-demangle-kernel

Masami Hiramatsu (1):
      perf buildid: Introduce sysfs/filename__sprintf_build_id

Steven Rostedt (1):
      tools lib traceeveent: Allow for negative numbers in print format

Tony Jones (1):
      perf scripts python: Add new compaction-times script

 tools/lib/traceevent/event-parse.c                 |   1 +
 tools/perf/Documentation/perf-script.txt           |   7 +
 tools/perf/arch/common.c                           |   4 +-
 tools/perf/arch/common.h                           |   2 +-
 tools/perf/builtin-buildid-cache.c                 |  14 +-
 tools/perf/builtin-buildid-list.c                  |  24 +-
 tools/perf/builtin-script.c                        |   5 +
 tools/perf/builtin-trace.c                         |  19 ++
 tools/perf/perf.c                                  |   2 +-
 .../scripts/python/bin/compaction-times-record     |   2 +
 .../scripts/python/bin/compaction-times-report     |   4 +
 tools/perf/scripts/python/compaction-times.py      | 311 +++++++++++++++++++++
 tools/perf/ui/browser.h                            |   4 +-
 tools/perf/ui/browsers/header.c                    |   2 +-
 tools/perf/ui/browsers/hists.c                     |  12 +-
 tools/perf/util/build-id.c                         |  32 +++
 tools/perf/util/build-id.h                         |   3 +
 tools/perf/util/evlist.c                           |   2 +
 tools/perf/util/evlist.h                           |   1 +
 tools/perf/util/evsel.c                            |   2 +
 tools/perf/util/evsel.h                            |   4 +
 tools/perf/util/header.c                           |   1 +
 tools/perf/util/header.h                           |   4 +-
 tools/perf/util/hist.h                             |   4 +-
 tools/perf/util/session.c                          |   2 +-
 tools/perf/util/symbol.c                           |   4 +-
 tools/perf/util/symbol.h                           |   4 +-
 tools/perf/util/util.c                             |  57 +---
 tools/perf/util/util.h                             |   2 +-
 29 files changed, 433 insertions(+), 102 deletions(-)
 create mode 100644 tools/perf/scripts/python/bin/compaction-times-record
 create mode 100644 tools/perf/scripts/python/bin/compaction-times-report
 create mode 100644 tools/perf/scripts/python/compaction-times.py

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

* Re: [GIT PULL 00/10] perf/core improvements and fixes
  2015-07-31  8:04 ` Ingo Molnar
@ 2015-07-31 13:30   ` Arnaldo Carvalho de Melo
  0 siblings, 0 replies; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-07-31 13:30 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Adrian Hunter, Andi Kleen, Borislav Petkov,
	David Ahern, Frederic Weisbecker, Jaroslav Skarvada, Jeremy Eder,
	Jiri Olsa, Kan Liang, Luiz Fernando Capitulino, Namhyung Kim,
	Pawel Moll, Peter Zijlstra, Stephane Eranian

Em Fri, Jul 31, 2015 at 10:04:35AM +0200, Ingo Molnar escreveu:
> * Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> > 	Please consider pulling,

> > for you to fetch changes up to aa53c09e90a19c215549bd1ca970fddcb7c0c001:
> 
> Hm, your pull request mail was cut short as it ends here abruptly. I figured it 
> out nevertheless, from the commit log:

Right, I forgot the 'git request-pull' part after pushing the signed tag
:-\

Thanks!

- Arnaldo
 
> ====================>
> 
> User visible changes:
> 
>   - Force period term to overload global settings, i.e. previously this
>     command line:
> 
>      $ perf record -e 'cpu/instructions,period=20000/',cycles -c 1000 sleep 1
> 
>     would result in both events having a period equal to 1000, with the fix we
>     get something saner:
> 
>      $ perf evlist -v | grep period
>      cpu/instructions,period=20000/: ... { sample_period, sample_freq }: 20000, ...
>      cycles: ... { sample_period, sample_freq }: 1000 ...
>      $
> 
>    (Jiri Olsa)
> 
> Infrastructure changes:
> 
>   - Use the dummy software event with freq=0 in the twatch.py python
>     binding example, to avoid disabling nohz. (Arnaldo Carvalho de Melo)
> 
>   - Add some missing constants to the python binding. (Arnaldo Carvalho de Melo)
> 
>   - Fix mismatched declarations for elf_getphdrnum, that happens
>     only in the corner case where this function is not found on
>     the system.  (Arnaldo Carvalho de Melo)
> 
>   - Add build test for having ending double slash. (Jiri Olsa)
> 
>   - Introduce callgraph_set for callgraph option. (Kan Liang)
> 
>  tools/perf/Documentation/perf-record.txt |   2 +-
>  tools/perf/builtin-record.c              |   9 +-
>  tools/perf/builtin-trace.c               |   2 +-
>  tools/perf/perf.h                        |   1 +
>  tools/perf/python/twatch.py              |  12 ++-
>  tools/perf/tests/make                    |  13 ++-
>  tools/perf/tests/parse-events.c          |  12 ++-
>  tools/perf/util/evsel.c                  |  33 ++++++++
>  tools/perf/util/evsel.h                  |  20 +++++
>  tools/perf/util/parse-events.c           |  70 +++++++++++++---
>  tools/perf/util/python.c                 | 140 ++++++++++++++++---------------
>  tools/perf/util/session.c                |   4 +-
>  tools/perf/util/symbol-elf.c             |   2 +-
>  tools/perf/util/trace-event.c            |   7 +-
>  tools/perf/util/trace-event.h            |   3 +-
>  15 files changed, 233 insertions(+), 97 deletions(-)
> 
> <================
> 
> Pulled, thanks a lot Arnaldo!
> 
> 	Ingo
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

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

* Re: [GIT PULL 00/10] perf/core improvements and fixes
  2015-07-30 16:16 Arnaldo Carvalho de Melo
@ 2015-07-31  8:04 ` Ingo Molnar
  2015-07-31 13:30   ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 59+ messages in thread
From: Ingo Molnar @ 2015-07-31  8:04 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Adrian Hunter, Andi Kleen, Borislav Petkov,
	David Ahern, Frederic Weisbecker, Jaroslav Skarvada, Jeremy Eder,
	Jiri Olsa, Kan Liang, Luiz Fernando Capitulino, Namhyung Kim,
	Pawel Moll, Peter Zijlstra, Stephane Eranian


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

> Hi Ingo,
> 
> 	Please consider pulling,
> 
> - Arnaldo
> 
> The following changes since commit 4b0c53e9e1a2a785746b2d379a32cb70b4dbb2fd:
> 
>   Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-07-27 17:56:18 +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 aa53c09e90a19c215549bd1ca970fddcb7c0c001:

Hm, your pull request mail was cut short as it ends here abruptly. I figured it 
out nevertheless, from the commit log:

====================>

User visible changes:

  - Force period term to overload global settings, i.e. previously this
    command line:

     $ perf record -e 'cpu/instructions,period=20000/',cycles -c 1000 sleep 1

    would result in both events having a period equal to 1000, with the fix we
    get something saner:

     $ perf evlist -v | grep period
     cpu/instructions,period=20000/: ... { sample_period, sample_freq }: 20000, ...
     cycles: ... { sample_period, sample_freq }: 1000 ...
     $

   (Jiri Olsa)

Infrastructure changes:

  - Use the dummy software event with freq=0 in the twatch.py python
    binding example, to avoid disabling nohz. (Arnaldo Carvalho de Melo)

  - Add some missing constants to the python binding. (Arnaldo Carvalho de Melo)

  - Fix mismatched declarations for elf_getphdrnum, that happens
    only in the corner case where this function is not found on
    the system.  (Arnaldo Carvalho de Melo)

  - Add build test for having ending double slash. (Jiri Olsa)

  - Introduce callgraph_set for callgraph option. (Kan Liang)

 tools/perf/Documentation/perf-record.txt |   2 +-
 tools/perf/builtin-record.c              |   9 +-
 tools/perf/builtin-trace.c               |   2 +-
 tools/perf/perf.h                        |   1 +
 tools/perf/python/twatch.py              |  12 ++-
 tools/perf/tests/make                    |  13 ++-
 tools/perf/tests/parse-events.c          |  12 ++-
 tools/perf/util/evsel.c                  |  33 ++++++++
 tools/perf/util/evsel.h                  |  20 +++++
 tools/perf/util/parse-events.c           |  70 +++++++++++++---
 tools/perf/util/python.c                 | 140 ++++++++++++++++---------------
 tools/perf/util/session.c                |   4 +-
 tools/perf/util/symbol-elf.c             |   2 +-
 tools/perf/util/trace-event.c            |   7 +-
 tools/perf/util/trace-event.h            |   3 +-
 15 files changed, 233 insertions(+), 97 deletions(-)

<================

Pulled, thanks a lot Arnaldo!

	Ingo

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

* [GIT PULL 00/10] perf/core improvements and fixes
@ 2015-07-30 16:16 Arnaldo Carvalho de Melo
  2015-07-31  8:04 ` Ingo Molnar
  0 siblings, 1 reply; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-07-30 16:16 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
	Andi Kleen, Borislav Petkov, David Ahern, Frederic Weisbecker,
	Jaroslav Skarvada, Jeremy Eder, Jiri Olsa, Kan Liang,
	Luiz Fernando Capitulino, Namhyung Kim, Pawel Moll,
	Peter Zijlstra, Stephane Eranian

Hi Ingo,

	Please consider pulling,

- Arnaldo

The following changes since commit 4b0c53e9e1a2a785746b2d379a32cb70b4dbb2fd:

  Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-07-27 17:56:18 +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 aa53c09e90a19c215549bd1ca970fddcb7c0c001:


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

* [GIT PULL 00/10] perf/core improvements and fixes
@ 2015-06-16 18:21 Arnaldo Carvalho de Melo
  0 siblings, 0 replies; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-06-16 18:21 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, He Kuang, Hou Pengyang, Jiri Olsa,
	Jiri Olsa, Masami Hiramatsu, Namhyung Kim, Naohiro Aota,
	Peter Zijlstra, Stephane Eranian, Wang Nan, Zefan Li,
	Arnaldo Carvalho de Melo

Hi Ingo,

	Please consider pulling,

- Arnaldo

The following changes since commit 61d67d568445413137995e1bea2746783e3a81e9:

  Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-06-12 10:08: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

for you to fetch changes up to b031220d520238075bd99513a420e65cf37866ad:

  perf probe: Fix to return error if no probe is added (2015-06-16 11:39:51 -0300)

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

User visible:

- List perf probes to stdout (Masami Hiramatsu)

- Return error when none of the requested probes were
  installed (Masami Hiramatsu)

- Cut off the gcc optimization postfixes from
  function name in 'perf probe' (Masami Hiramatsu)

Infrastructure:

- Replace map->referenced & maps->removed_maps with
  map->refcnt (Arnaldo Carvalho de Melo)

- Introduce xyarray__reset function (Jiri Olsa)

- Add thread_map__(alloc|realloc) helpers (Jiri Olsa)

- Move perf_evsel__(alloc|free|reset)_counts into stat object (Jiri Olsa)

- Introduce perf_counts__(new|delete|reset) functions (Jiri Olsa)

Build Fixes:

- Fix a libunwind related compile error (Hou Pengyang)

- Fix python/perf.so compiling error related to libtraceevent (Wang Nan)

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

----------------------------------------------------------------
Arnaldo Carvalho de Melo (1):
      perf tools: Replace map->referenced & maps->removed_maps with map->refcnt

Hou Pengyang (1):
      perf unwind: Fix a compile error

Jiri Olsa (4):
      perf tools: Introduce xyarray__reset function
      perf tools: Add thread_map__(alloc|realloc) helpers
      perf tools: Move perf_evsel__(alloc|free|reset)_counts into stat object
      perf stat: Introduce perf_counts__(new|delete|reset) functions

Masami Hiramatsu (3):
      perf probe: Cut off the gcc optimization postfixes from function name
      perf probe: List probes in stdout
      perf probe: Fix to return error if no probe is added

Wang Nan (1):
      tools lib traceevent: Fix python/perf.so compiling error

 tools/perf/Makefile.perf                   |   2 +-
 tools/perf/builtin-stat.c                  |  19 ++--
 tools/perf/tests/openat-syscall-all-cpus.c |   1 +
 tools/perf/util/evsel.c                    |  19 +---
 tools/perf/util/evsel.h                    |   3 -
 tools/perf/util/hist.c                     |  37 ++++---
 tools/perf/util/map.c                      |  58 +---------
 tools/perf/util/map.h                      |  10 +-
 tools/perf/util/probe-event.c              | 167 +++++++++++++++++++----------
 tools/perf/util/python-ext-sources         |   1 +
 tools/perf/util/stat.c                     |  36 +++++++
 tools/perf/util/stat.h                     |   6 ++
 tools/perf/util/thread_map.c               |  24 +++--
 tools/perf/util/unwind-libunwind.c         |   2 +-
 tools/perf/util/xyarray.c                  |   8 ++
 tools/perf/util/xyarray.h                  |   2 +
 16 files changed, 223 insertions(+), 172 deletions(-)

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

* Re: [GIT PULL 00/10] perf/core improvements and fixes
  2015-01-29 20:23 Arnaldo Carvalho de Melo
@ 2015-01-30 18:28 ` Ingo Molnar
  0 siblings, 0 replies; 59+ messages in thread
From: Ingo Molnar @ 2015-01-30 18:28 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Adrian Hunter, Alexey Brodkin, Andi Kleen,
	David Ahern, Frederic Weisbecker, Jiri Olsa, Milian Wolff,
	Namhyung Kim, Peter Zijlstra, Stephane Eranian, Vineet Gupta,
	Arnaldo Carvalho de Melo


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

> Hi Ingo,
> 
> 	Please consider pulling, there is some more stuff in queue to be
> processed, but better send in smaller batches,
> 
> - Arnaldo
> 
> The following changes since commit b3890e4704594fa23abe1395d1fafc97d3214be8:
> 
>   Merge branch 'perf/hw_breakpoints' into perf/core (2015-01-28 15:48:59 +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 c52686f9f888d23ca72f1309e86af8e91d075697:
> 
>   perf symbols: Convert lseek + read to pread (2015-01-29 17:02:01 -0300)
> 
> ----------------------------------------------------------------
> perf/core improvements and fixes:
> 
> User visible:
> 
> - Show precise number of samples in at the end of a 'record' session, if
>   processing build ids, since we will then traverse the whole perf.data file
>   and see all the PERF_RECORD_SAMPLE records, otherwise stop showing the
>   previous off-base heuristicly counted number of "samples"  (Namhyung Kim).
> 
> - Support to read compressed module from build-id cache (Namhyung Kim)
> 
> Infrastructure:
> 
> - Cache eh/debug frame offset for dwarf unwind (Namhyung Kim)
> 
> - Set header version correctly in all cases (Namhyung Kim)
> 
> - Set attr.task bit for a tracking event, to be consistent (Namhyung Kim)
>   perf tools: Use perf_data_file__fd() consistently
>   perf symbols: Convert lseek + read to pread
> 
> - Don't rely on malloc working for sz 0, fixing another problem when
>   using uClibc (Vineet Gupta)
> 
> - Provide stub for missing pthread_attr_setaffinity_np for libcs where this
>   is not available, such as uClibc (Vineet Gupta)
> 
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> ----------------------------------------------------------------
> Namhyung Kim (8):
>       perf callchain: Cache eh/debug frame offset for dwarf unwind
>       perf tools: Do not use __perf_session__process_events() directly
>       perf record: Show precise number of samples
>       perf header: Set header version correctly
>       perf evsel: Set attr.task bit for a tracking event
>       perf symbols: Support to read compressed module from build-id cache
>       perf tools: Use perf_data_file__fd() consistently
>       perf symbols: Convert lseek + read to pread
> 
> Vineet Gupta (2):
>       perf evsel: Don't rely on malloc working for sz 0
>       perf tools: Provide stub for missing pthread_attr_setaffinity_np
> 
>  tools/perf/bench/futex.h                           | 13 ++++
>  tools/perf/builtin-inject.c                        |  5 +-
>  tools/perf/builtin-record.c                        | 70 +++++++++++++++-------
>  tools/perf/config/Makefile                         |  6 ++
>  tools/perf/config/feature-checks/Makefile          |  4 ++
>  tools/perf/config/feature-checks/test-all.c        |  5 ++
>  .../test-pthread-attr-setaffinity-np.c             | 14 +++++
>  tools/perf/util/dso.c                              |  6 +-
>  tools/perf/util/dso.h                              |  1 +
>  tools/perf/util/evsel.c                            |  4 ++
>  tools/perf/util/header.c                           |  2 +-
>  tools/perf/util/session.c                          |  6 +-
>  tools/perf/util/session.h                          |  3 -
>  tools/perf/util/symbol-elf.c                       | 13 ++--
>  tools/perf/util/unwind-libunwind.c                 | 31 ++++++----
>  15 files changed, 131 insertions(+), 52 deletions(-)
>  create mode 100644 tools/perf/config/feature-checks/test-pthread-attr-setaffinity-np.c

Pulled into tip:perf/core, thanks a lot Arnaldo!

	Ingo

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

* [GIT PULL 00/10] perf/core improvements and fixes
@ 2015-01-29 20:23 Arnaldo Carvalho de Melo
  2015-01-30 18:28 ` Ingo Molnar
  0 siblings, 1 reply; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-01-29 20:23 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
	Alexey Brodkin, Andi Kleen, David Ahern, Frederic Weisbecker,
	Jiri Olsa, Milian Wolff, Namhyung Kim, Peter Zijlstra,
	Stephane Eranian, Vineet Gupta, Arnaldo Carvalho de Melo

Hi Ingo,

	Please consider pulling, there is some more stuff in queue to be
processed, but better send in smaller batches,

- Arnaldo

The following changes since commit b3890e4704594fa23abe1395d1fafc97d3214be8:

  Merge branch 'perf/hw_breakpoints' into perf/core (2015-01-28 15:48:59 +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 c52686f9f888d23ca72f1309e86af8e91d075697:

  perf symbols: Convert lseek + read to pread (2015-01-29 17:02:01 -0300)

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

User visible:

- Show precise number of samples in at the end of a 'record' session, if
  processing build ids, since we will then traverse the whole perf.data file
  and see all the PERF_RECORD_SAMPLE records, otherwise stop showing the
  previous off-base heuristicly counted number of "samples"  (Namhyung Kim).

- Support to read compressed module from build-id cache (Namhyung Kim)

Infrastructure:

- Cache eh/debug frame offset for dwarf unwind (Namhyung Kim)

- Set header version correctly in all cases (Namhyung Kim)

- Set attr.task bit for a tracking event, to be consistent (Namhyung Kim)
  perf tools: Use perf_data_file__fd() consistently
  perf symbols: Convert lseek + read to pread

- Don't rely on malloc working for sz 0, fixing another problem when
  using uClibc (Vineet Gupta)

- Provide stub for missing pthread_attr_setaffinity_np for libcs where this
  is not available, such as uClibc (Vineet Gupta)

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

----------------------------------------------------------------
Namhyung Kim (8):
      perf callchain: Cache eh/debug frame offset for dwarf unwind
      perf tools: Do not use __perf_session__process_events() directly
      perf record: Show precise number of samples
      perf header: Set header version correctly
      perf evsel: Set attr.task bit for a tracking event
      perf symbols: Support to read compressed module from build-id cache
      perf tools: Use perf_data_file__fd() consistently
      perf symbols: Convert lseek + read to pread

Vineet Gupta (2):
      perf evsel: Don't rely on malloc working for sz 0
      perf tools: Provide stub for missing pthread_attr_setaffinity_np

 tools/perf/bench/futex.h                           | 13 ++++
 tools/perf/builtin-inject.c                        |  5 +-
 tools/perf/builtin-record.c                        | 70 +++++++++++++++-------
 tools/perf/config/Makefile                         |  6 ++
 tools/perf/config/feature-checks/Makefile          |  4 ++
 tools/perf/config/feature-checks/test-all.c        |  5 ++
 .../test-pthread-attr-setaffinity-np.c             | 14 +++++
 tools/perf/util/dso.c                              |  6 +-
 tools/perf/util/dso.h                              |  1 +
 tools/perf/util/evsel.c                            |  4 ++
 tools/perf/util/header.c                           |  2 +-
 tools/perf/util/session.c                          |  6 +-
 tools/perf/util/session.h                          |  3 -
 tools/perf/util/symbol-elf.c                       | 13 ++--
 tools/perf/util/unwind-libunwind.c                 | 31 ++++++----
 15 files changed, 131 insertions(+), 52 deletions(-)
 create mode 100644 tools/perf/config/feature-checks/test-pthread-attr-setaffinity-np.c

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

* [GIT PULL 00/10] perf/core improvements and fixes
@ 2014-12-22 15:29 Arnaldo Carvalho de Melo
  0 siblings, 0 replies; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2014-12-22 15:29 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, Joe Mario, Mike Galbraith,
	Namhyung Kim, Paul Mackerras, Peter Zijlstra,
	Ramkumar Ramachandra, Richard Fowles, Rickard Strandqvist,
	Stephane Eranian

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

Hi Ingo,

	Please consider pulling,

- Arnaldo

The following changes since commit ac931f87a647ca156f65a4c00e7297165e4fa2d8:

  perf: Fix building warning on ARM 32 (2014-12-19 13:09:43 +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 e51679f54467febc6e9f1091c0ac8c31b54d59a1:

  perf tools: Remove some unused functions from color.c (2014-12-22 11:55:09 -0300)

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

User visible:

- Enable sampling loads and stores simultaneously by default
  in 'perf mem' (Stephane Eranian)

- Show progress bar in more places while doing histogram processing
  in the hists browser (Namhyung Kim)

- Print backtrace symbols when segfault occurs in 'report' (Namhyung Kim)

Infrastructure:

- Consistency and code duplication elimination fixes in the
  hists code (Arnaldo Carvalho de Melo)

- Append callchains only when requested (Namhyung Kim)

- Remove some unused functions from color.c (Rickard Strandqvist)

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

----------------------------------------------------------------
Arnaldo Carvalho de Melo (4):
      perf mem: Move the mem_operations global to struct perf_mem
      perf tools: Remove EOL whitespaces
      perf hists: Rename hist_entry__free to __delete
      perf hists: Introduce function for deleting/removing hist_entry

Namhyung Kim (4):
      perf report: Get rid of report__inc_stat()
      perf report: Show progress bar for output resorting
      perf ui/tui: Print backtrace symbols when segfault occurs
      perf callchain: Append callchains only when requested

Rickard Strandqvist (1):
      perf tools: Remove some unused functions from color.c

Stephane Eranian (1):
      perf mem: Enable sampling loads and stores simultaneously

 tools/perf/Documentation/perf-buildid-cache.txt    |   2 +-
 tools/perf/Documentation/perf-mem.txt              |   9 +-
 tools/perf/Documentation/perf-script.txt           |  28 ++---
 tools/perf/builtin-annotate.c                      |   2 +-
 tools/perf/builtin-buildid-cache.c                 |   4 +-
 tools/perf/builtin-diff.c                          |   4 +-
 tools/perf/builtin-mem.c                           | 131 ++++++++++++++++-----
 tools/perf/builtin-report.c                        |  40 ++++---
 tools/perf/builtin-stat.c                          |   2 +-
 tools/perf/builtin-top.c                           |   6 +-
 tools/perf/builtin-trace.c                         |  80 ++++++-------
 tools/perf/tests/attr.py                           |   1 -
 tools/perf/tests/hists_cumulate.c                  |   4 +-
 tools/perf/tests/hists_filter.c                    |   2 +-
 tools/perf/tests/hists_output.c                    |  12 +-
 tools/perf/tests/make                              |   1 -
 tools/perf/tests/parse-events.c                    |   2 +-
 tools/perf/ui/browsers/annotate.c                  |   3 +-
 tools/perf/ui/progress.h                           |   4 +-
 tools/perf/ui/tui/setup.c                          |  26 +++-
 tools/perf/util/annotate.c                         |   2 +-
 tools/perf/util/color.c                            | 126 --------------------
 tools/perf/util/color.h                            |   2 -
 tools/perf/util/hist.c                             |  59 ++++++----
 tools/perf/util/hist.h                             |   4 +-
 tools/perf/util/parse-events.c                     |   6 +-
 tools/perf/util/python.c                           |   2 +-
 .../util/scripting-engines/trace-event-python.c    |   2 +-
 tools/perf/util/session.c                          |   2 +-
 tools/perf/util/symbol.c                           |   2 +-
 30 files changed, 278 insertions(+), 292 deletions(-)

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

* Re: [GIT PULL 00/10] perf/core improvements and fixes
  2014-09-26 20:19 Arnaldo Carvalho de Melo
@ 2014-09-27  7:20 ` Ingo Molnar
  0 siblings, 0 replies; 59+ messages in thread
From: Ingo Molnar @ 2014-09-27  7:20 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Adrian Hunter, Andi Kleen, Corey Ashford,
	David Ahern, Jiri Olsa, Milian Wolff, Namhyung Kim,
	Paul Mackerras, Peter Zijlstra, Peter Zijlstra, Pranith Kumar,
	Stephane Eranian, Taeung Song, Arnaldo Carvalho de Melo


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

> Hi Ingo,
> 
> 	Please consider pulling.
> 
> - Arnaldo
> 
> The following changes since commit cf8102f64c8d23f0bd4af0659bbd94d0c1d8d1c7:
> 
>   Merge tag 'perf-fdarray-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2014-09-26 11:12: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 49757c9cc7887bc79f742eb8aacf16e464ca5f0b:
> 
>   perf tools: Fix line number in the config file error message (2014-09-26 12:45:23 -0300)
> 
> ----------------------------------------------------------------
> perf/core improvements and fixes:
> 
> User visible:
> 
> o Restore "--callchain graph" output, broken in recent cset to end
>   up being the same as "fractal" (Namhyung Kim)
> 
> o Allow profiling when kptr_restrict == 1 for non root users,
>   kernel samples will just remain unresolved (Andi Kleen)
> 
> o Allow configuring default options for callchains in config file (Namhyung Kim)
> 
> o Fix line number in the config file error message (Jiri Olsa)
> 
> o Fix --per-core on multi socket systems (Andi Kleen)
> 
> Cleanups:
> 
> o Use ACCESS_ONCE() instead of volatile cast. (Pranith Kumar)
> 
> o Modify error code for when perf_session__new() fails (Taeung Song)
> 
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> ----------------------------------------------------------------
> Andi Kleen (2):
>       perf stat: Fix --per-core on multi socket systems
>       perf tools: Fix perf record as non root with kptr_restrict == 1
> 
> Jiri Olsa (1):
>       perf tools: Fix line number in the config file error message
> 
> Namhyung Kim (5):
>       perf hists browser: Fix callchain print bug on TUI
>       perf tools: Move callchain config from record_opts to callchain_param
>       perf callchain: Move some parser functions to callchain.c
>       perf tools: Introduce perf_callchain_config()
>       perf tools: Convert {record,top}.call-graph option to call-graph.record-mode
> 
> Pranith Kumar (1):
>       perf tools: Use ACCESS_ONCE() instead of volatile cast
> 
> Taeung Song (1):
>       perf tools: Modify error code for when perf_session__new() fails
> 
>  tools/perf/builtin-annotate.c  |   2 +-
>  tools/perf/builtin-diff.c      |   2 +-
>  tools/perf/builtin-evlist.c    |   2 +-
>  tools/perf/builtin-inject.c    |   2 +-
>  tools/perf/builtin-kmem.c      |   2 +-
>  tools/perf/builtin-kvm.c       |   4 +-
>  tools/perf/builtin-lock.c      |   2 +-
>  tools/perf/builtin-mem.c       |   2 +-
>  tools/perf/builtin-record.c    | 119 ++++---------------------
>  tools/perf/builtin-report.c    |   2 +-
>  tools/perf/builtin-script.c    |   2 +-
>  tools/perf/builtin-stat.c      |   9 +-
>  tools/perf/builtin-timechart.c |   2 +-
>  tools/perf/builtin-top.c       |   6 +-
>  tools/perf/builtin-trace.c     |   2 +-
>  tools/perf/perf.h              |   3 -
>  tools/perf/ui/browsers/hists.c |   3 -
>  tools/perf/util/callchain.c    | 193 +++++++++++++++++++++++++++++++++++++----
>  tools/perf/util/callchain.h    |   6 +-
>  tools/perf/util/config.c       |  16 +++-
>  tools/perf/util/event.c        |   8 +-
>  tools/perf/util/evsel.c        |  11 ++-
>  tools/perf/util/session.c      |   2 +-
>  tools/perf/util/session.h      |   2 +-
>  24 files changed, 241 insertions(+), 163 deletions(-)

Pulled into tip:perf/core, thanks a lot Arnaldo!

	Ingo

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

* [GIT PULL 00/10] perf/core improvements and fixes
@ 2014-09-26 20:19 Arnaldo Carvalho de Melo
  2014-09-27  7:20 ` Ingo Molnar
  0 siblings, 1 reply; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2014-09-26 20:19 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
	Andi Kleen, Corey Ashford, David Ahern, Jiri Olsa, Milian Wolff,
	Namhyung Kim, Paul Mackerras, Peter Zijlstra, Peter Zijlstra,
	Pranith Kumar, Stephane Eranian, Taeung Song,
	Arnaldo Carvalho de Melo

Hi Ingo,

	Please consider pulling.

- Arnaldo

The following changes since commit cf8102f64c8d23f0bd4af0659bbd94d0c1d8d1c7:

  Merge tag 'perf-fdarray-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2014-09-26 11:12: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 49757c9cc7887bc79f742eb8aacf16e464ca5f0b:

  perf tools: Fix line number in the config file error message (2014-09-26 12:45:23 -0300)

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

User visible:

o Restore "--callchain graph" output, broken in recent cset to end
  up being the same as "fractal" (Namhyung Kim)

o Allow profiling when kptr_restrict == 1 for non root users,
  kernel samples will just remain unresolved (Andi Kleen)

o Allow configuring default options for callchains in config file (Namhyung Kim)

o Fix line number in the config file error message (Jiri Olsa)

o Fix --per-core on multi socket systems (Andi Kleen)

Cleanups:

o Use ACCESS_ONCE() instead of volatile cast. (Pranith Kumar)

o Modify error code for when perf_session__new() fails (Taeung Song)

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

----------------------------------------------------------------
Andi Kleen (2):
      perf stat: Fix --per-core on multi socket systems
      perf tools: Fix perf record as non root with kptr_restrict == 1

Jiri Olsa (1):
      perf tools: Fix line number in the config file error message

Namhyung Kim (5):
      perf hists browser: Fix callchain print bug on TUI
      perf tools: Move callchain config from record_opts to callchain_param
      perf callchain: Move some parser functions to callchain.c
      perf tools: Introduce perf_callchain_config()
      perf tools: Convert {record,top}.call-graph option to call-graph.record-mode

Pranith Kumar (1):
      perf tools: Use ACCESS_ONCE() instead of volatile cast

Taeung Song (1):
      perf tools: Modify error code for when perf_session__new() fails

 tools/perf/builtin-annotate.c  |   2 +-
 tools/perf/builtin-diff.c      |   2 +-
 tools/perf/builtin-evlist.c    |   2 +-
 tools/perf/builtin-inject.c    |   2 +-
 tools/perf/builtin-kmem.c      |   2 +-
 tools/perf/builtin-kvm.c       |   4 +-
 tools/perf/builtin-lock.c      |   2 +-
 tools/perf/builtin-mem.c       |   2 +-
 tools/perf/builtin-record.c    | 119 ++++---------------------
 tools/perf/builtin-report.c    |   2 +-
 tools/perf/builtin-script.c    |   2 +-
 tools/perf/builtin-stat.c      |   9 +-
 tools/perf/builtin-timechart.c |   2 +-
 tools/perf/builtin-top.c       |   6 +-
 tools/perf/builtin-trace.c     |   2 +-
 tools/perf/perf.h              |   3 -
 tools/perf/ui/browsers/hists.c |   3 -
 tools/perf/util/callchain.c    | 193 +++++++++++++++++++++++++++++++++++++----
 tools/perf/util/callchain.h    |   6 +-
 tools/perf/util/config.c       |  16 +++-
 tools/perf/util/event.c        |   8 +-
 tools/perf/util/evsel.c        |  11 ++-
 tools/perf/util/session.c      |   2 +-
 tools/perf/util/session.h      |   2 +-
 24 files changed, 241 insertions(+), 163 deletions(-)

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

* Re: [GIT PULL 00/10] perf/core improvements and fixes
       [not found]   ` <CAM9d7ciP4tLUmR-soEKH3nf6=XC5evKGfuQW1fUGA8Z42U3xCg@mail.gmail.com>
@ 2014-04-09  5:31     ` Ingo Molnar
  0 siblings, 0 replies; 59+ messages in thread
From: Ingo Molnar @ 2014-04-09  5:31 UTC (permalink / raw)
  To: Namhyung Kim
  Cc: Andi Kleen, Jiri Olsa, Peter Zijlstra, Stephane Eranian,
	Don Zickus, linux-kernel, Thomas Gleixner


* Namhyung Kim <namhyung@kernel.org> wrote:

> Hi Andi,
> 
> On Wed, Apr 9, 2014 at 4:50 AM, Andi Kleen <andi@firstfloor.org> wrote:
> > Jiri Olsa <jolsa@redhat.com> writes:
> >
> >> hi Ingo,
> >> please consider pulling
> >
> > So who actually maintains perf user space now?
> >
> > I have at least 4 perf user patchkits/bug fixes pending, but 
> > Arnaldo hasn't answered any email for weeks.

So a bit of background: sloppy, abusive contributors not willing to 
change get ignored after some time. For example Andi got such a bad 
track record in the x86 and perf space with me that all your mails go 
to /dev/null currently. (I only saw this one because Namhyung replied 
to it.)

Andi, as I explained it to you previously, if you want me to merge 
patches from you then you need to 1) improve the way you work 2) send 
it to someone who is willing to deal with you and sign off on it and 
forward it to me.

Seems like you managed to burn up your goodwill with Arnaldo as well. 
You need to find someone else willing to pay the expense of dealing 
with your passive-aggressive style.

Just a quick example of your abuse: for example you know it perfectly 
well that perf is well maintained, a simple 'git log tools/perf/' will 
tell you that there's a steady stream of patches going in and that 
perf contributors are busy.

Yet in this mail you actually lie about that: you pretend that you 
don't know that most Linux maintainers have trouble working with you, 
you pretend that perf is "unmaintained", you pretend that you don't 
know who is maintaining it, just to create unfair pressure on Arnaldo 
...

That kind of approach really sucks, and if you run out of people's 
patience with petty office tactics like that then you should not fault 
them, you should fault yourself.

Thanks,

	Ingo

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

* [GIT PULL 00/10] perf/core improvements and fixes
@ 2014-04-08 18:00 Jiri Olsa
       [not found] ` <8738hnk3dg.fsf@tassilo.jf.intel.com>
  0 siblings, 1 reply; 59+ messages in thread
From: Jiri Olsa @ 2014-04-08 18:00 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Adrian Hunter, Corey Ashford, David Ahern,
	Don Zickus, Frederic Weisbecker, Jiri Olsa, Mike Galbraith,
	Namhyung Kim, Paul Mackerras, Peter Zijlstra,
	Ramkumar Ramachandra, Stephane Eranian, Steven Rostedt

hi Ingo,
please consider pulling

jirka

The following changes since commit 538592ff0b008237ae88f5ce5fb1247127dc3ce5:

  Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2014-03-19 08:05:47 +0100)

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 dad45c767443b738232a99c747efaaddbe56855c:

  MAINTAINERS: Change e-mail to kernel.org one (2014-04-08 19:39:43 +0200)

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

Documentation:

. Fix documentation of invalid 'perf top -s' option (Namhyung Kim)

. Change e-mail to kernel.org one in MAINTAINERS file (Arnaldo Carvalho de Melo)

Developer stuff:

. Disable unwind libraries when libelf isn't found (Arnaldo Carvalho de Melo)

. Add thread maps lookup automated tests (Jiri Olsa)

. Print event name when showing libtraceevent warnings if possible (Namhyung Kim)

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

----------------------------------------------------------------
Arnaldo Carvalho de Melo (2):
      perf callchains: Disable unwind libraries when libelf isn't found
      MAINTAINERS: Change e-mail to kernel.org one

Jiri Olsa (1):
      perf tests: Add thread maps lookup automated tests

Namhyung Kim (3):
      perf top: Fix documentation of invalid -s option
      tools lib traceevent: Print event name when show warning if possible
      tools lib traceevent: Do not call warning() directly

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

 MAINTAINERS                           |   2 +-
 tools/lib/traceevent/event-parse.c    | 109 +++++++++-------
 tools/perf/Documentation/perf-top.txt |   1 -
 tools/perf/Makefile.perf              |   1 +
 tools/perf/builtin-kmem.c             |   8 +-
 tools/perf/builtin-lock.c             |  10 +-
 tools/perf/builtin-mem.c              |  15 ++-
 tools/perf/builtin-sched.c            |  10 +-
 tools/perf/config/Makefile            |   2 +
 tools/perf/perf-completion.sh         |   4 +-
 tools/perf/perf.h                     |   6 +
 tools/perf/tests/builtin-test.c       |   4 +
 tools/perf/tests/mmap-thread-lookup.c | 233 ++++++++++++++++++++++++++++++++++
 tools/perf/tests/tests.h              |   1 +
 14 files changed, 341 insertions(+), 65 deletions(-)
 create mode 100644 tools/perf/tests/mmap-thread-lookup.c

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

* Re: [GIT PULL 00/10] perf/core improvements and fixes
  2013-11-14 20:25 Arnaldo Carvalho de Melo
@ 2013-11-15  6:38 ` Ingo Molnar
  0 siblings, 0 replies; 59+ messages in thread
From: Ingo Molnar @ 2013-11-15  6:38 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
	Azat Khuzhin, Bill Gray, David Ahern, Davidlohr Bueso,
	Don Zickus, Frederic Weisbecker, Jiri Olsa, Joe Mario,
	Mike Galbraith, Namhyung Kim, Paul Mackerras, Pekka Enberg,
	Peter Zijlstra, Richard Fowles, stable, Stephane Eranian,
	Sukadev Bhattiprolu, v.karpov, Waiman Long,
	Arnaldo Carvalho de Melo


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

> From: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
> 
> Hi Ingo,
> 
> 	Please consider pulling, done on top of tip/perf/urgent.
> 
> - Arnaldo
> 
> The following changes since commit e310718d0e83aeb9969264dc577c45db16d9104d:
> 
>   tools/perf/build: Fix feature-libunwind-debug-frame handling (2013-11-14 18:00:45 +0100)
> 
> 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 539e6bb71e350541105e67e3d6c31392d9da25ef:
> 
>   perf record: Add an option to force per-cpu mmaps (2013-11-14 16:10:27 -0300)
> 
> ----------------------------------------------------------------
> perf/core improvements and fixes:
> 
> . Synthesize anon MMAP records again, fix from Don Zickus.
> 
> . Add an option in 'perf record' to force per-cpu mmaps, from Adrian Hunter.
> 
> . Limit max callchain using max_stack on DWARF unwinding too.
> 
> . Fix segfault in the UI browser caused by off by one handling END key.
> 
> . Add '--demangle'/'--no-demangle' to perf probe, so that we can overcome
>   current limitations in handling C++ symbols, from Azat Khuzhin .
> 
> . Tweak 'perf trace' summary output, from Pekka Enberg.
> 
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> ----------------------------------------------------------------
> Adrian Hunter (1):
>       perf record: Add an option to force per-cpu mmaps
> 
> Arnaldo Carvalho de Melo (4):
>       perf tools: Use perf_evlist__{first,last}, perf_evsel__next
>       perf evsel: Introduce perf_evsel__prev() method
>       perf symbols: Limit max callchain using max_stack on DWARF unwinding too
>       perf ui browser: Fix segfault caused by off by one handling END key
> 
> Azat Khuzhin (1):
>       perf probe: Add '--demangle'/'--no-demangle'
> 
> Davidlohr Bueso (1):
>       perf tools: Remove trivial extra semincolon
> 
> Don Zickus (1):
>       perf tools: Synthesize anon MMAP records again
> 
> Ingo Molnar (1):
>       perf top: Add missing newline if the 'uid' is invalid
> 
> Pekka Enberg (1):
>       perf trace: Tweak summary output
> 
>  tools/perf/Documentation/perf-record.txt |  6 ++++++
>  tools/perf/builtin-probe.c               |  2 ++
>  tools/perf/builtin-record.c              |  2 ++
>  tools/perf/builtin-top.c                 |  4 ++--
>  tools/perf/builtin-trace.c               | 10 +++++-----
>  tools/perf/tests/parse-events.c          |  3 +--
>  tools/perf/ui/browser.c                  |  4 ++--
>  tools/perf/ui/browsers/hists.c           | 11 +++++------
>  tools/perf/util/event.c                  |  6 ++++--
>  tools/perf/util/evlist.c                 |  6 ++++--
>  tools/perf/util/evsel.c                  |  4 ++--
>  tools/perf/util/evsel.h                  |  5 +++++
>  tools/perf/util/machine.c                |  2 +-
>  tools/perf/util/target.h                 |  1 +
>  tools/perf/util/unwind.c                 |  9 +++++----
>  tools/perf/util/unwind.h                 |  5 +++--
>  16 files changed, 50 insertions(+), 30 deletions(-)

Pulled, thanks a lot Arnaldo!

	Ingo

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

* [GIT PULL 00/10] perf/core improvements and fixes
@ 2013-11-14 20:25 Arnaldo Carvalho de Melo
  2013-11-15  6:38 ` Ingo Molnar
  0 siblings, 1 reply; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2013-11-14 20:25 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
	Azat Khuzhin, Bill Gray, David Ahern, Davidlohr Bueso,
	Don Zickus, Frederic Weisbecker, Jiri Olsa, Joe Mario,
	Mike Galbraith, Namhyung Kim, Paul Mackerras, Pekka Enberg,
	Peter Zijlstra, Richard Fowles, stable, Stephane Eranian,
	Sukadev Bhattiprolu, v.karpov, Waiman Long,
	Arnaldo Carvalho de Melo

From: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>

Hi Ingo,

	Please consider pulling, done on top of tip/perf/urgent.

- Arnaldo

The following changes since commit e310718d0e83aeb9969264dc577c45db16d9104d:

  tools/perf/build: Fix feature-libunwind-debug-frame handling (2013-11-14 18:00:45 +0100)

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 539e6bb71e350541105e67e3d6c31392d9da25ef:

  perf record: Add an option to force per-cpu mmaps (2013-11-14 16:10:27 -0300)

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

. Synthesize anon MMAP records again, fix from Don Zickus.

. Add an option in 'perf record' to force per-cpu mmaps, from Adrian Hunter.

. Limit max callchain using max_stack on DWARF unwinding too.

. Fix segfault in the UI browser caused by off by one handling END key.

. Add '--demangle'/'--no-demangle' to perf probe, so that we can overcome
  current limitations in handling C++ symbols, from Azat Khuzhin .

. Tweak 'perf trace' summary output, from Pekka Enberg.

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

----------------------------------------------------------------
Adrian Hunter (1):
      perf record: Add an option to force per-cpu mmaps

Arnaldo Carvalho de Melo (4):
      perf tools: Use perf_evlist__{first,last}, perf_evsel__next
      perf evsel: Introduce perf_evsel__prev() method
      perf symbols: Limit max callchain using max_stack on DWARF unwinding too
      perf ui browser: Fix segfault caused by off by one handling END key

Azat Khuzhin (1):
      perf probe: Add '--demangle'/'--no-demangle'

Davidlohr Bueso (1):
      perf tools: Remove trivial extra semincolon

Don Zickus (1):
      perf tools: Synthesize anon MMAP records again

Ingo Molnar (1):
      perf top: Add missing newline if the 'uid' is invalid

Pekka Enberg (1):
      perf trace: Tweak summary output

 tools/perf/Documentation/perf-record.txt |  6 ++++++
 tools/perf/builtin-probe.c               |  2 ++
 tools/perf/builtin-record.c              |  2 ++
 tools/perf/builtin-top.c                 |  4 ++--
 tools/perf/builtin-trace.c               | 10 +++++-----
 tools/perf/tests/parse-events.c          |  3 +--
 tools/perf/ui/browser.c                  |  4 ++--
 tools/perf/ui/browsers/hists.c           | 11 +++++------
 tools/perf/util/event.c                  |  6 ++++--
 tools/perf/util/evlist.c                 |  6 ++++--
 tools/perf/util/evsel.c                  |  4 ++--
 tools/perf/util/evsel.h                  |  5 +++++
 tools/perf/util/machine.c                |  2 +-
 tools/perf/util/target.h                 |  1 +
 tools/perf/util/unwind.c                 |  9 +++++----
 tools/perf/util/unwind.h                 |  5 +++--
 16 files changed, 50 insertions(+), 30 deletions(-)

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

* [GIT PULL 00/10] perf/core improvements and fixes
@ 2013-11-11 20:22 Arnaldo Carvalho de Melo
  0 siblings, 0 replies; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2013-11-11 20:22 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter, Bill Gray,
	David Ahern, Don Zickus, Frederic Weisbecker, Jiri Olsa,
	Joe Mario, Mike Galbraith, Namhyung Kim, Patrick Palka,
	Paul Mackerras, Peter Zijlstra, Richard Fowles, Stephane Eranian,
	Arnaldo Carvalho de Melo

From: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>

Hi Ingo,

	Please consider pulling,

- Arnaldo

The following changes since commit caea6cf52139116e43e615d87fcbf9823e197fdf:

  Merge branch 'uprobes/core' of git://git.kernel.org/pub/scm/linux/kernel/git/oleg/misc into perf/core (2013-11-11 09:44:16 +0100)

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 67c1e4a53b17894e6a24f95057cc374c4be051cb:

  perf tests: Use lower sample_freq in sw clock event period test (2013-11-11 16:43:34 -0300)

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

. Prevent condition that all sort keys are elided, fix from Namhyung Kim.

. Synthesize non-exec MMAP records when --data used, allowing the resolution of
  data addresses to symbols (global variables, etc).

. Don't force a refresh during progress update in the TUI, greatly reducing
  startup costs, fix from Patrick Palka.

. Fix sw clock event period test wrt not checking if using > max_sample_freq.

. Code cleanups by David Ahern and Adrian Hunter.

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

----------------------------------------------------------------
Adrian Hunter (1):
      perf record: Use correct return type for write()

Arnaldo Carvalho de Melo (6):
      perf evsel: Remove idx parm from constructor
      perf record: Synthesize non-exec MMAP records when --data used
      perf machine: Introduce synthesize_threads method out of open coded equivalent
      perf machine: Simplify synthesize_threads method
      perf tests: Check return of perf_evlist__open sw clock event period test
      perf tests: Use lower sample_freq in sw clock event period test

David Ahern (1):
      perf record: Move existing write_output into helper function

Namhyung Kim (1):
      perf tools: Prevent condition that all sort keys are elided

Patrick Palka (1):
      perf ui tui progress: Don't force a refresh during progress update

 tools/perf/builtin-kvm.c                  | 14 ++-------
 tools/perf/builtin-record.c               | 21 ++++++-------
 tools/perf/builtin-top.c                  | 10 ++-----
 tools/perf/builtin-trace.c                | 24 +++++----------
 tools/perf/tests/code-reading.c           |  2 +-
 tools/perf/tests/evsel-tp-sched.c         |  4 +--
 tools/perf/tests/mmap-basic.c             |  2 +-
 tools/perf/tests/open-syscall-all-cpus.c  |  2 +-
 tools/perf/tests/open-syscall-tp-fields.c |  2 +-
 tools/perf/tests/open-syscall.c           |  2 +-
 tools/perf/tests/sw-clock.c               | 13 ++++++--
 tools/perf/ui/tui/progress.c              |  3 +-
 tools/perf/util/event.c                   | 50 ++++++++++++++++++-------------
 tools/perf/util/event.h                   |  4 +--
 tools/perf/util/evlist.c                  |  9 +++---
 tools/perf/util/evsel.c                   |  4 +--
 tools/perf/util/evsel.h                   | 15 ++++++++--
 tools/perf/util/header.c                  |  4 +--
 tools/perf/util/machine.c                 | 12 ++++++++
 tools/perf/util/machine.h                 | 12 ++++++++
 tools/perf/util/parse-events.c            |  6 ++--
 tools/perf/util/sort.c                    | 13 ++++++++
 22 files changed, 133 insertions(+), 95 deletions(-)

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

* Re: [GIT PULL 00/10] perf/core improvements and fixes
  2013-11-05 20:09 Arnaldo Carvalho de Melo
@ 2013-11-06  5:31 ` Ingo Molnar
  0 siblings, 0 replies; 59+ messages in thread
From: Ingo Molnar @ 2013-11-06  5:31 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
	Corey Ashford, David Ahern, Frederic Weisbecker, Jiri Olsa,
	Mike Galbraith, Namhyung Kim, Paul Mackerras, Peter Zijlstra,
	Rodrigo Campos, Stephane Eranian


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

> From: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> Hi Ingo,
> 
> 	Please consider pulling,
> 
> - Arnaldo
> 
> The following changes since commit 87968f94fbea47df334502a0db645833ce8a848b:
> 
>   Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2013-11-04 21:14:04 +0100)
> 
> 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 316c7136f8bad924609163b9b115f68d59a68c82:
> 
>   perf tools: Finish the removal of 'self' arguments (2013-11-05 15:32:36 -0300)
> 
> ----------------------------------------------------------------
> perf/core improvements and fixes:
> 
> . Check maximum frequency rate for record/top, emitting better error
>   messages, from Jiri Olsa.
> 
> . Disable live kvm command if timerfd is not supported, from David Ahern.
> 
> . Add usage to 'perf list', from David Ahern.
> 
> . Fix detection of non-core features, from David Ahern.
> 
> . Consolidate __hists__add_*entry(), cleanup from Namhyung Kim.
> 
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (2):
>       perf fs: Rename NAME_find_mountpoint() to NAME__mountpoint()
>       perf tools: Finish the removal of 'self' arguments
> 
> David Ahern (4):
>       perf kvm: Disable live command if timerfd is not supported
>       tools/perf/build: Fix detection of non-core features
>       perf list: Remove a level of indentation
>       perf list: Add usage
> 
> Jiri Olsa (3):
>       perf tools: Factor sysfs code into generic fs object
>       perf fs: Add procfs support
>       perf tools: Check maximum frequency rate for record/top
> 
> Namhyung Kim (1):
>       perf hists: Consolidate __hists__add_*entry()
> 
>  tools/perf/Makefile.perf                           |   4 +-
>  tools/perf/builtin-annotate.c                      |   2 +-
>  tools/perf/builtin-diff.c                          |   3 +-
>  tools/perf/builtin-kvm.c                           |  12 ++
>  tools/perf/builtin-list.c                          |  84 ++++++++------
>  tools/perf/builtin-record.c                        |  15 +--
>  tools/perf/builtin-report.c                        |  16 ++-
>  tools/perf/builtin-top.c                           |  20 +---
>  tools/perf/config/Makefile                         |  17 ++-
>  tools/perf/config/feature-checks/Makefile          |   6 +-
>  tools/perf/config/feature-checks/test-all.c        |   5 +
>  tools/perf/config/feature-checks/test-timerfd.c    |  18 +++
>  .../perf/scripts/python/Perf-Trace-Util/Context.c  |   6 +-
>  tools/perf/tests/hists_link.c                      |   6 +-
>  tools/perf/tests/parse-events.c                    |   6 +-
>  tools/perf/ui/browser.h                            |  32 +++---
>  tools/perf/ui/browsers/hists.c                     |   2 +-
>  tools/perf/ui/browsers/map.c                       |  40 +++----
>  tools/perf/ui/browsers/map.h                       |   2 +-
>  tools/perf/ui/browsers/scripts.c                   |   8 +-
>  tools/perf/ui/stdio/hist.c                         |  14 +--
>  tools/perf/util/build-id.h                         |   3 +-
>  tools/perf/util/cpumap.c                           |   6 +-
>  tools/perf/util/event.c                            |   6 +-
>  tools/perf/util/event.h                            |   3 +-
>  tools/perf/util/evlist.h                           |   3 +-
>  tools/perf/util/fs.c                               | 119 ++++++++++++++++++++
>  tools/perf/util/fs.h                               |   7 ++
>  tools/perf/util/hist.c                             |  75 ++-----------
>  tools/perf/util/hist.h                             |  51 +++------
>  tools/perf/util/include/linux/magic.h              |   4 +
>  tools/perf/util/pmu.c                              |  17 +--
>  tools/perf/util/probe-finder.c                     | 113 +++++++++----------
>  tools/perf/util/probe-finder.h                     |  10 +-
>  tools/perf/util/pstack.h                           |  10 +-
>  tools/perf/util/python-ext-sources                 |   2 +-
>  tools/perf/util/record.c                           |  71 ++++++++++++
>  tools/perf/util/session.c                          | 121 ++++++++++-----------
>  tools/perf/util/session.h                          |  27 ++---
>  tools/perf/util/sort.h                             |   2 +-
>  tools/perf/util/strfilter.c                        |  32 +++---
>  tools/perf/util/strfilter.h                        |  12 +-
>  tools/perf/util/sysfs.c                            |  60 ----------
>  tools/perf/util/sysfs.h                            |   6 -
>  tools/perf/util/thread.h                           |  10 +-
>  45 files changed, 591 insertions(+), 497 deletions(-)
>  create mode 100644 tools/perf/config/feature-checks/test-timerfd.c
>  create mode 100644 tools/perf/util/fs.c
>  create mode 100644 tools/perf/util/fs.h
>  delete mode 100644 tools/perf/util/sysfs.c
>  delete mode 100644 tools/perf/util/sysfs.h

Pulled, thanks Arnaldo!

	Ingo

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

* [GIT PULL 00/10] perf/core improvements and fixes
@ 2013-11-05 20:09 Arnaldo Carvalho de Melo
  2013-11-06  5:31 ` Ingo Molnar
  0 siblings, 1 reply; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2013-11-05 20:09 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
	Corey Ashford, David Ahern, Frederic Weisbecker, Jiri Olsa,
	Mike Galbraith, Namhyung Kim, Paul Mackerras, Peter Zijlstra,
	Rodrigo Campos, Stephane Eranian

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

Hi Ingo,

	Please consider pulling,

- Arnaldo

The following changes since commit 87968f94fbea47df334502a0db645833ce8a848b:

  Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2013-11-04 21:14:04 +0100)

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 316c7136f8bad924609163b9b115f68d59a68c82:

  perf tools: Finish the removal of 'self' arguments (2013-11-05 15:32:36 -0300)

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

. Check maximum frequency rate for record/top, emitting better error
  messages, from Jiri Olsa.

. Disable live kvm command if timerfd is not supported, from David Ahern.

. Add usage to 'perf list', from David Ahern.

. Fix detection of non-core features, from David Ahern.

. Consolidate __hists__add_*entry(), cleanup from Namhyung Kim.

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

----------------------------------------------------------------
Arnaldo Carvalho de Melo (2):
      perf fs: Rename NAME_find_mountpoint() to NAME__mountpoint()
      perf tools: Finish the removal of 'self' arguments

David Ahern (4):
      perf kvm: Disable live command if timerfd is not supported
      tools/perf/build: Fix detection of non-core features
      perf list: Remove a level of indentation
      perf list: Add usage

Jiri Olsa (3):
      perf tools: Factor sysfs code into generic fs object
      perf fs: Add procfs support
      perf tools: Check maximum frequency rate for record/top

Namhyung Kim (1):
      perf hists: Consolidate __hists__add_*entry()

 tools/perf/Makefile.perf                           |   4 +-
 tools/perf/builtin-annotate.c                      |   2 +-
 tools/perf/builtin-diff.c                          |   3 +-
 tools/perf/builtin-kvm.c                           |  12 ++
 tools/perf/builtin-list.c                          |  84 ++++++++------
 tools/perf/builtin-record.c                        |  15 +--
 tools/perf/builtin-report.c                        |  16 ++-
 tools/perf/builtin-top.c                           |  20 +---
 tools/perf/config/Makefile                         |  17 ++-
 tools/perf/config/feature-checks/Makefile          |   6 +-
 tools/perf/config/feature-checks/test-all.c        |   5 +
 tools/perf/config/feature-checks/test-timerfd.c    |  18 +++
 .../perf/scripts/python/Perf-Trace-Util/Context.c  |   6 +-
 tools/perf/tests/hists_link.c                      |   6 +-
 tools/perf/tests/parse-events.c                    |   6 +-
 tools/perf/ui/browser.h                            |  32 +++---
 tools/perf/ui/browsers/hists.c                     |   2 +-
 tools/perf/ui/browsers/map.c                       |  40 +++----
 tools/perf/ui/browsers/map.h                       |   2 +-
 tools/perf/ui/browsers/scripts.c                   |   8 +-
 tools/perf/ui/stdio/hist.c                         |  14 +--
 tools/perf/util/build-id.h                         |   3 +-
 tools/perf/util/cpumap.c                           |   6 +-
 tools/perf/util/event.c                            |   6 +-
 tools/perf/util/event.h                            |   3 +-
 tools/perf/util/evlist.h                           |   3 +-
 tools/perf/util/fs.c                               | 119 ++++++++++++++++++++
 tools/perf/util/fs.h                               |   7 ++
 tools/perf/util/hist.c                             |  75 ++-----------
 tools/perf/util/hist.h                             |  51 +++------
 tools/perf/util/include/linux/magic.h              |   4 +
 tools/perf/util/pmu.c                              |  17 +--
 tools/perf/util/probe-finder.c                     | 113 +++++++++----------
 tools/perf/util/probe-finder.h                     |  10 +-
 tools/perf/util/pstack.h                           |  10 +-
 tools/perf/util/python-ext-sources                 |   2 +-
 tools/perf/util/record.c                           |  71 ++++++++++++
 tools/perf/util/session.c                          | 121 ++++++++++-----------
 tools/perf/util/session.h                          |  27 ++---
 tools/perf/util/sort.h                             |   2 +-
 tools/perf/util/strfilter.c                        |  32 +++---
 tools/perf/util/strfilter.h                        |  12 +-
 tools/perf/util/sysfs.c                            |  60 ----------
 tools/perf/util/sysfs.h                            |   6 -
 tools/perf/util/thread.h                           |  10 +-
 45 files changed, 591 insertions(+), 497 deletions(-)
 create mode 100644 tools/perf/config/feature-checks/test-timerfd.c
 create mode 100644 tools/perf/util/fs.c
 create mode 100644 tools/perf/util/fs.h
 delete mode 100644 tools/perf/util/sysfs.c
 delete mode 100644 tools/perf/util/sysfs.h

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

* Re: [GIT PULL 00/10] perf/core improvements and fixes
  2013-09-02 20:56 Arnaldo Carvalho de Melo
@ 2013-09-03  5:49 ` Ingo Molnar
  0 siblings, 0 replies; 59+ messages in thread
From: Ingo Molnar @ 2013-09-03  5:49 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
	David Ahern, Frederic Weisbecker, Jiri Olsa, Mike Galbraith,
	Namhyung Kim, Paul Mackerras, Peter Zijlstra, Stephane Eranian,
	Arnaldo Carvalho de Melo


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

> From: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
> 
> Hi Ingo,
> 
> 	Please consider pulling,
> 
> - Arnaldo
> 
> The following changes since commit 7bfb7e6bdd906f11ee9e751b3fec4f4fc728e818:
> 
>   perf: Convert kmalloc_node(...GFP_ZERO...) to kzalloc_node() (2013-09-02 08:42:49 +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 31cd3855c98119cae287b761d8d2e75018714c5d:
> 
>   perf trace: Tell arg formatters the arg index (2013-09-02 16:40:40 -0300)
> 
> ----------------------------------------------------------------
> perf/core improvements and fixes:
> 
> . 'perf trace' arg formatting improvements to allow masking arguments
>   in syscalls such as futex and open, where the some arguments are
>   ignored and thus should not be printed depending on other args.
> 
> . Beautify futex open, openat, open_by_handle_at, lseek and futex syscalls.
> 
> . Add dummy software event to use when wanting just to keep receiving
>   PERF_RECORD_{MMAP,COMM,etc}, add test for it, from Adrian Hunter.
> 
> . Fix symbol offset computation for some dsos in 'perf script', from David Ahern.
> 
> . Skip unsupported hardware events in 'perf list', from Namhyung Kim.
> 
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> ----------------------------------------------------------------
> Adrian Hunter (3):
>       perf: Add a dummy software event to keep tracking
>       perf tools: Add support for PERF_COUNT_SW_DUMMY
>       perf tests: Add 'keep tracking' test
> 
> Arnaldo Carvalho de Melo (5):
>       perf trace: Allow syscall arg formatters to mask args
>       perf trace: Add beautifier for futex 'operation' parm
>       perf trace: Add beautifier for lseek's whence arg
>       perf trace: Add beautifier for open's flags arg
>       perf trace: Tell arg formatters the arg index
> 
> David Ahern (1):
>       perf tools: Fix symbol offset computation for some dsos
> 
> Namhyung Kim (1):
>       perf list: Skip unsupported events
> 
>  include/uapi/linux/perf_event.h  |   1 +
>  tools/perf/Makefile              |   1 +
>  tools/perf/builtin-trace.c       | 180 ++++++++++++++++++++++++++++++++++++---
>  tools/perf/tests/builtin-test.c  |   4 +
>  tools/perf/tests/keep-tracking.c | 154 +++++++++++++++++++++++++++++++++
>  tools/perf/tests/tests.h         |   1 +
>  tools/perf/util/evlist.c         |  42 ++++++++-
>  tools/perf/util/evlist.h         |   5 ++
>  tools/perf/util/evsel.c          |   1 +
>  tools/perf/util/parse-events.c   |  45 +++++++++-
>  tools/perf/util/parse-events.l   |   1 +
>  tools/perf/util/python.c         |   1 +
>  tools/perf/util/session.c        |   1 +
>  tools/perf/util/symbol.c         |   5 +-
>  14 files changed, 424 insertions(+), 18 deletions(-)
>  create mode 100644 tools/perf/tests/keep-tracking.c

Pulled, thanks Arnaldo!

	Ingo

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

* [GIT PULL 00/10] perf/core improvements and fixes
@ 2013-09-02 20:56 Arnaldo Carvalho de Melo
  2013-09-03  5:49 ` Ingo Molnar
  0 siblings, 1 reply; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2013-09-02 20:56 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
	David Ahern, Frederic Weisbecker, Jiri Olsa, Mike Galbraith,
	Namhyung Kim, Paul Mackerras, Peter Zijlstra, Stephane Eranian,
	Arnaldo Carvalho de Melo

From: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>

Hi Ingo,

	Please consider pulling,

- Arnaldo

The following changes since commit 7bfb7e6bdd906f11ee9e751b3fec4f4fc728e818:

  perf: Convert kmalloc_node(...GFP_ZERO...) to kzalloc_node() (2013-09-02 08:42:49 +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 31cd3855c98119cae287b761d8d2e75018714c5d:

  perf trace: Tell arg formatters the arg index (2013-09-02 16:40:40 -0300)

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

. 'perf trace' arg formatting improvements to allow masking arguments
  in syscalls such as futex and open, where the some arguments are
  ignored and thus should not be printed depending on other args.

. Beautify futex open, openat, open_by_handle_at, lseek and futex syscalls.

. Add dummy software event to use when wanting just to keep receiving
  PERF_RECORD_{MMAP,COMM,etc}, add test for it, from Adrian Hunter.

. Fix symbol offset computation for some dsos in 'perf script', from David Ahern.

. Skip unsupported hardware events in 'perf list', from Namhyung Kim.

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

----------------------------------------------------------------
Adrian Hunter (3):
      perf: Add a dummy software event to keep tracking
      perf tools: Add support for PERF_COUNT_SW_DUMMY
      perf tests: Add 'keep tracking' test

Arnaldo Carvalho de Melo (5):
      perf trace: Allow syscall arg formatters to mask args
      perf trace: Add beautifier for futex 'operation' parm
      perf trace: Add beautifier for lseek's whence arg
      perf trace: Add beautifier for open's flags arg
      perf trace: Tell arg formatters the arg index

David Ahern (1):
      perf tools: Fix symbol offset computation for some dsos

Namhyung Kim (1):
      perf list: Skip unsupported events

 include/uapi/linux/perf_event.h  |   1 +
 tools/perf/Makefile              |   1 +
 tools/perf/builtin-trace.c       | 180 ++++++++++++++++++++++++++++++++++++---
 tools/perf/tests/builtin-test.c  |   4 +
 tools/perf/tests/keep-tracking.c | 154 +++++++++++++++++++++++++++++++++
 tools/perf/tests/tests.h         |   1 +
 tools/perf/util/evlist.c         |  42 ++++++++-
 tools/perf/util/evlist.h         |   5 ++
 tools/perf/util/evsel.c          |   1 +
 tools/perf/util/parse-events.c   |  45 +++++++++-
 tools/perf/util/parse-events.l   |   1 +
 tools/perf/util/python.c         |   1 +
 tools/perf/util/session.c        |   1 +
 tools/perf/util/symbol.c         |   5 +-
 14 files changed, 424 insertions(+), 18 deletions(-)
 create mode 100644 tools/perf/tests/keep-tracking.c

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

* Re: [GIT PULL 00/10] perf/core improvements and fixes
  2013-02-14 21:44 Arnaldo Carvalho de Melo
@ 2013-02-15 15:39 ` Ingo Molnar
  0 siblings, 0 replies; 59+ messages in thread
From: Ingo Molnar @ 2013-02-15 15:39 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Andi Kleen,
	Borislav Petkov, Daniel Baluta, Dirk Behme, Frederic Weisbecker,
	Jiri Olsa, Li Zefan, Namhyung Kim, Paul Mackerras, Pekka Enberg,
	Peter Zijlstra, Vinson Lee, Arnaldo Carvalho de Melo


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

> From: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
> 
> Hi Ingo,
> 
> 	Please consider pulling,
> 
> - Arnaldo
> 
> The following changes since commit a3d4fd7a2d81604fedfa270d29c824b8d3380c2e:
> 
>   Merge branch 'uprobes/core' of git://git.kernel.org/pub/scm/linux/kernel/git/oleg/misc into perf/core (2013-02-11 10:41:53 +0100)
> 
> 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 02e176af92f3e2e9ec3a48792036566af2dcd534:
> 
>   perf/hwbp: Fix cleanup in case of kzalloc failure (2013-02-14 17:06:39 -0300)
> 
> ----------------------------------------------------------------
> perf/core improvements and fixes:
> 
> . Fix cleanup in case of kzalloc failure, from Daniel Baluta.
> 
> . Limit unwind support to x86 archs, fix from Jiri Olsa.
> 
> . Initial GTK+ annotate browser, from Namhyung Kim.
> 
> . Fix build with bison 2.3 and older, from Vinson Lee.
> 
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> ----------------------------------------------------------------
> Daniel Baluta (1):
>       perf/hwbp: Fix cleanup in case of kzalloc failure
> 
> Jiri Olsa (1):
>       perf tools: Limit unwind support to x86 archs
> 
> Namhyung Kim (7):
>       perf buildid-cache: Add --update option
>       perf annotate: Fix warning message on a missing vmlinux
>       perf ui/gtk: Implement basic GTK2 annotation browser
>       perf gtk/annotate: Support multiple event annotation
>       perf gtk/annotate: Show source lines with gray color
>       perf gtk/annotate: Fail early if it can't annotate
>       perf annotate: Make it to be able to skip unannotatable symbols
> 
> Vinson Lee (1):
>       perf tools: Fix build with bison 2.3 and older.
> 
>  kernel/events/hw_breakpoint.c                   |   2 +-
>  tools/perf/Documentation/perf-annotate.txt      |   7 +-
>  tools/perf/Documentation/perf-buildid-cache.txt |   4 +
>  tools/perf/Makefile                             |  10 +-
>  tools/perf/builtin-annotate.c                   |  27 ++-
>  tools/perf/builtin-buildid-cache.c              |  50 +++++-
>  tools/perf/ui/gtk/annotate.c                    | 229 ++++++++++++++++++++++++
>  tools/perf/ui/gtk/gtk.h                         |   1 +
>  tools/perf/ui/setup.c                           |   2 +-
>  tools/perf/util/annotate.c                      |   2 +-
>  tools/perf/util/annotate.h                      |  24 +++
>  tools/perf/util/parse-events.y                  |   1 -
>  tools/perf/util/pmu.y                           |   1 -
>  13 files changed, 349 insertions(+), 11 deletions(-)
>  create mode 100644 tools/perf/ui/gtk/annotate.c

Pulled, thanks a lot Arnaldo!

	Ingo

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

* [GIT PULL 00/10] perf/core improvements and fixes
@ 2013-02-14 21:44 Arnaldo Carvalho de Melo
  2013-02-15 15:39 ` Ingo Molnar
  0 siblings, 1 reply; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2013-02-14 21:44 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Andi Kleen,
	Borislav Petkov, Daniel Baluta, Dirk Behme, Frederic Weisbecker,
	Jiri Olsa, Li Zefan, Namhyung Kim, Paul Mackerras, Pekka Enberg,
	Peter Zijlstra, Vinson Lee, Arnaldo Carvalho de Melo

From: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>

Hi Ingo,

	Please consider pulling,

- Arnaldo

The following changes since commit a3d4fd7a2d81604fedfa270d29c824b8d3380c2e:

  Merge branch 'uprobes/core' of git://git.kernel.org/pub/scm/linux/kernel/git/oleg/misc into perf/core (2013-02-11 10:41:53 +0100)

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 02e176af92f3e2e9ec3a48792036566af2dcd534:

  perf/hwbp: Fix cleanup in case of kzalloc failure (2013-02-14 17:06:39 -0300)

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

. Fix cleanup in case of kzalloc failure, from Daniel Baluta.

. Limit unwind support to x86 archs, fix from Jiri Olsa.

. Initial GTK+ annotate browser, from Namhyung Kim.

. Fix build with bison 2.3 and older, from Vinson Lee.

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

----------------------------------------------------------------
Daniel Baluta (1):
      perf/hwbp: Fix cleanup in case of kzalloc failure

Jiri Olsa (1):
      perf tools: Limit unwind support to x86 archs

Namhyung Kim (7):
      perf buildid-cache: Add --update option
      perf annotate: Fix warning message on a missing vmlinux
      perf ui/gtk: Implement basic GTK2 annotation browser
      perf gtk/annotate: Support multiple event annotation
      perf gtk/annotate: Show source lines with gray color
      perf gtk/annotate: Fail early if it can't annotate
      perf annotate: Make it to be able to skip unannotatable symbols

Vinson Lee (1):
      perf tools: Fix build with bison 2.3 and older.

 kernel/events/hw_breakpoint.c                   |   2 +-
 tools/perf/Documentation/perf-annotate.txt      |   7 +-
 tools/perf/Documentation/perf-buildid-cache.txt |   4 +
 tools/perf/Makefile                             |  10 +-
 tools/perf/builtin-annotate.c                   |  27 ++-
 tools/perf/builtin-buildid-cache.c              |  50 +++++-
 tools/perf/ui/gtk/annotate.c                    | 229 ++++++++++++++++++++++++
 tools/perf/ui/gtk/gtk.h                         |   1 +
 tools/perf/ui/setup.c                           |   2 +-
 tools/perf/util/annotate.c                      |   2 +-
 tools/perf/util/annotate.h                      |  24 +++
 tools/perf/util/parse-events.y                  |   1 -
 tools/perf/util/pmu.y                           |   1 -
 13 files changed, 349 insertions(+), 11 deletions(-)
 create mode 100644 tools/perf/ui/gtk/annotate.c

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

* Re: [GIT PULL 00/10] perf/core improvements and fixes
  2011-12-20 19:18 Arnaldo Carvalho de Melo
@ 2011-12-20 19:33 ` Ingo Molnar
  0 siblings, 0 replies; 59+ messages in thread
From: Ingo Molnar @ 2011-12-20 19:33 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Andrew Vagin, Arun Sharma, cjashfor, David Ahern,
	devel, Jiri Olsa, Johannes Schindelin, Linus Torvalds,
	Namhyung Kim, Nelson Elhage, Paul Mackerras, Peter Zijlstra,
	Robert Richter, arnaldo.melo


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

> Hi Ingo,
> 
>         Please consider pulling from:
> 
> git://github.com/acmel/linux.git perf/core
> 
> 	There are still patchkits I need to merge/review, thanks everybody, the
> more, the better!
> 
> 	I'll continue processing them tomorrow,
> 
> Regards,
> 
> - Arnaldo
> 
> Andrew Vagin (1):
>   perf record: Add ability to record event period
> 
> Jiri Olsa (1):
>   perf test: Add more automated tests for event parsing
> 
> Namhyung Kim (6):
>   perf report: Document '--call-graph' for optional print_limit argument
>   perf symbols: Get rid of duplicated snprintf()
>   perf symbols: Fix error path on symbol__init()
>   perf tools: Fix a memory leak on perf_read_values_destroy
>   perf tools: Remove stale git headlines from top comment
>   perf events: Tidy up perf_event__preprocess_sample
> 
> Nelson Elhage (1):
>   perf evlist: Fix errno value reporting on failed mmap
> 
> Robert Richter (1):
>   perf evsel: Fix uninitialized memory access to struct perf_sample
> 
>  tools/perf/Documentation/perf-report.txt |    5 +-
>  tools/perf/builtin-record.c              |    1 +
>  tools/perf/builtin-report.c              |    6 +-
>  tools/perf/builtin-test.c                |  127 +++++++++++++++++++++++++++++-
>  tools/perf/perf.h                        |    1 +
>  tools/perf/util/config.c                 |    5 +-
>  tools/perf/util/event.c                  |   13 ++--
>  tools/perf/util/evlist.c                 |    4 +-
>  tools/perf/util/evsel.c                  |    5 +-
>  tools/perf/util/symbol.c                 |   11 +--
>  tools/perf/util/usage.c                  |    5 +-
>  tools/perf/util/values.c                 |    1 +
>  12 files changed, 160 insertions(+), 24 deletions(-)

Pulled, thanks a lot Arnaldo!

	Ingo

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

* [GIT PULL 00/10] perf/core improvements and fixes
@ 2011-12-20 19:18 Arnaldo Carvalho de Melo
  2011-12-20 19:33 ` Ingo Molnar
  0 siblings, 1 reply; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2011-12-20 19:18 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Andrew Vagin,
	Arun Sharma, cjashfor, David Ahern, devel, Jiri Olsa,
	Johannes Schindelin, Linus Torvalds, Namhyung Kim, Nelson Elhage,
	Paul Mackerras, Peter Zijlstra, Robert Richter, arnaldo.melo

Hi Ingo,

        Please consider pulling from:

git://github.com/acmel/linux.git perf/core

	There are still patchkits I need to merge/review, thanks everybody, the
more, the better!

	I'll continue processing them tomorrow,

Regards,

- Arnaldo

Andrew Vagin (1):
  perf record: Add ability to record event period

Jiri Olsa (1):
  perf test: Add more automated tests for event parsing

Namhyung Kim (6):
  perf report: Document '--call-graph' for optional print_limit argument
  perf symbols: Get rid of duplicated snprintf()
  perf symbols: Fix error path on symbol__init()
  perf tools: Fix a memory leak on perf_read_values_destroy
  perf tools: Remove stale git headlines from top comment
  perf events: Tidy up perf_event__preprocess_sample

Nelson Elhage (1):
  perf evlist: Fix errno value reporting on failed mmap

Robert Richter (1):
  perf evsel: Fix uninitialized memory access to struct perf_sample

 tools/perf/Documentation/perf-report.txt |    5 +-
 tools/perf/builtin-record.c              |    1 +
 tools/perf/builtin-report.c              |    6 +-
 tools/perf/builtin-test.c                |  127 +++++++++++++++++++++++++++++-
 tools/perf/perf.h                        |    1 +
 tools/perf/util/config.c                 |    5 +-
 tools/perf/util/event.c                  |   13 ++--
 tools/perf/util/evlist.c                 |    4 +-
 tools/perf/util/evsel.c                  |    5 +-
 tools/perf/util/symbol.c                 |   11 +--
 tools/perf/util/usage.c                  |    5 +-
 tools/perf/util/values.c                 |    1 +
 12 files changed, 160 insertions(+), 24 deletions(-)

-- 
1.7.8.rc0.35.gee6df


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

* Re: [GIT PULL 00/10] perf/core improvements and fixes
  2010-08-06  1:46 Arnaldo Carvalho de Melo
@ 2010-08-06  7:00 ` Ingo Molnar
  0 siblings, 0 replies; 59+ messages in thread
From: Ingo Molnar @ 2010-08-06  7:00 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Andrea Gelmini, Arnaldo Carvalho de Melo,
	Frederic Weisbecker, Julia Lawall, Masami Hiramatsu,
	Mike Galbraith, Nick Piggin, Paul Mackerras, Peter Zijlstra,
	Peter Zijlstra, Srikar Dronamraju, Stephane Eranian,
	Thomas Gleixner, Tom Zanussi


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

> Hi Ingo,
> 
>         Please pull from:
> 
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux-2.6 perf/core
> 
> Regards,
> 
> - Arnaldo
> 
> Andrea Gelmini (2):
>   perf probe: Remove duplicated #include
>   perf trace: Clean up #includes
> 
> Arnaldo Carvalho de Melo (7):
>   perf symbols: Store the symbol binding
>   perf ui: Add a map browser
>   perf ui: Shorten ui_browser->refresh_entries to refresh
>   perf hists: Handle verbose in hists__sort_list_width
>   perf hists: Fixup addr snprintf width on 32 bit arches
>   perf ui: Add search by name/addr to the map__browser
>   perf report: Speed up exit path
> 
> Julia Lawall (1):
>   perf timechart: Adjust confusing if indentation
> 
>  tools/perf/builtin-report.c    |   31 +++++-
>  tools/perf/builtin-timechart.c |    4 +-
>  tools/perf/builtin-trace.c     |   19 +--
>  tools/perf/util/hist.c         |    3 +
>  tools/perf/util/newt.c         |  242 +++++++++++++++++++++++++++++++++++++--
>  tools/perf/util/probe-finder.c |    1 -
>  tools/perf/util/sort.c         |    6 +-
>  tools/perf/util/symbol.c       |   30 ++++--
>  tools/perf/util/symbol.h       |    1 +
>  9 files changed, 297 insertions(+), 40 deletions(-)

Pulled, thanks Arnaldo!

	Ingo

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

* [GIT PULL 00/10] perf/core improvements and fixes
@ 2010-08-06  1:46 Arnaldo Carvalho de Melo
  2010-08-06  7:00 ` Ingo Molnar
  0 siblings, 1 reply; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2010-08-06  1:46 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Andrea Gelmini,
	Arnaldo Carvalho de Melo, Frederic Weisbecker, Ingo Molnar,
	Julia Lawall, Masami Hiramatsu, Mike Galbraith, Nick Piggin,
	Paul Mackerras, Peter Zijlstra, Peter Zijlstra,
	Srikar Dronamraju, Stephane Eranian, Thomas Gleixner,
	Tom Zanussi

Hi Ingo,

        Please pull from:

git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux-2.6 perf/core

Regards,

- Arnaldo

Andrea Gelmini (2):
  perf probe: Remove duplicated #include
  perf trace: Clean up #includes

Arnaldo Carvalho de Melo (7):
  perf symbols: Store the symbol binding
  perf ui: Add a map browser
  perf ui: Shorten ui_browser->refresh_entries to refresh
  perf hists: Handle verbose in hists__sort_list_width
  perf hists: Fixup addr snprintf width on 32 bit arches
  perf ui: Add search by name/addr to the map__browser
  perf report: Speed up exit path

Julia Lawall (1):
  perf timechart: Adjust confusing if indentation

 tools/perf/builtin-report.c    |   31 +++++-
 tools/perf/builtin-timechart.c |    4 +-
 tools/perf/builtin-trace.c     |   19 +--
 tools/perf/util/hist.c         |    3 +
 tools/perf/util/newt.c         |  242 +++++++++++++++++++++++++++++++++++++--
 tools/perf/util/probe-finder.c |    1 -
 tools/perf/util/sort.c         |    6 +-
 tools/perf/util/symbol.c       |   30 ++++--
 tools/perf/util/symbol.h       |    1 +
 9 files changed, 297 insertions(+), 40 deletions(-)


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

end of thread, other threads:[~2017-08-17  7:45 UTC | newest]

Thread overview: 59+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-06-20 22:23 [GIT PULL 00/10] perf/core improvements and fixes Arnaldo Carvalho de Melo
2016-06-20 22:23 ` [PATCH 01/10] perf tools: Find vdso with the consider of cross-platform Arnaldo Carvalho de Melo
2016-06-20 22:23 ` [PATCH 02/10] kbuild: List libelf-devel as an alternative Arnaldo Carvalho de Melo
2016-06-20 22:23 ` [PATCH 03/10] perf script: Fix documentation of '-f' when it should be '-F' Arnaldo Carvalho de Melo
2016-06-20 22:23 ` [PATCH 04/10] perf hists: Rename __hists__add_entry to hists__add_entry Arnaldo Carvalho de Melo
2016-06-20 22:23 ` [PATCH 05/10] perf tools: Remove some unused functions Arnaldo Carvalho de Melo
2016-06-20 22:23 ` [PATCH 06/10] perf tools: Remove --perf-dir and --work-dir Arnaldo Carvalho de Melo
2016-06-20 22:23 ` [PATCH 07/10] perf llvm: Allow dump llvm output object file using llvm.dump-obj Arnaldo Carvalho de Melo
2016-06-20 22:23 ` [PATCH 08/10] perf record: Add --dry-run option to check cmdline options Arnaldo Carvalho de Melo
2016-06-20 22:23 ` [PATCH 09/10] perf evsel: Fix write_backwards fallback Arnaldo Carvalho de Melo
2016-06-20 22:23 ` [PATCH 10/10] perf script: Add stackcollapse.py script Arnaldo Carvalho de Melo
2016-06-21 18:36   ` Brendan Gregg
2016-06-21 20:19     ` Arnaldo Carvalho de Melo
2016-06-21  2:18 ` [GIT PULL 00/10] perf/core improvements and fixes Namhyung Kim
2016-06-21  3:11   ` Brendan Gregg
2016-06-21 10:08     ` Paolo Bonzini
2016-06-21 16:14       ` Arnaldo Carvalho de Melo
  -- strict thread matches above, loose matches on Subject: below --
2017-08-16 20:20 Arnaldo Carvalho de Melo
2017-08-17  7:45 ` Ingo Molnar
2017-05-03 13:58 Arnaldo Carvalho de Melo
2017-05-03 17:30 ` Ingo Molnar
2017-01-17 16:06 Arnaldo Carvalho de Melo
2017-01-18  9:09 ` Ingo Molnar
2016-12-07 16:53 Arnaldo Carvalho de Melo
2016-12-07 18:17 ` Ingo Molnar
2016-05-25 21:34 Arnaldo Carvalho de Melo
2016-04-01 21:56 Arnaldo Carvalho de Melo
2016-04-06  6:47 ` Ingo Molnar
2016-02-16 20:34 Arnaldo Carvalho de Melo
2016-02-17  7:39 ` Ingo Molnar
2015-11-28  1:22 Arnaldo Carvalho de Melo
2015-11-28  9:50 ` Ingo Molnar
2015-11-29 13:16   ` Namhyung Kim
2015-08-28 18:06 Arnaldo Carvalho de Melo
2015-08-31  8:28 ` Ingo Molnar
2015-07-30 16:16 Arnaldo Carvalho de Melo
2015-07-31  8:04 ` Ingo Molnar
2015-07-31 13:30   ` Arnaldo Carvalho de Melo
2015-06-16 18:21 Arnaldo Carvalho de Melo
2015-01-29 20:23 Arnaldo Carvalho de Melo
2015-01-30 18:28 ` Ingo Molnar
2014-12-22 15:29 Arnaldo Carvalho de Melo
2014-09-26 20:19 Arnaldo Carvalho de Melo
2014-09-27  7:20 ` Ingo Molnar
2014-04-08 18:00 Jiri Olsa
     [not found] ` <8738hnk3dg.fsf@tassilo.jf.intel.com>
     [not found]   ` <CAM9d7ciP4tLUmR-soEKH3nf6=XC5evKGfuQW1fUGA8Z42U3xCg@mail.gmail.com>
2014-04-09  5:31     ` Ingo Molnar
2013-11-14 20:25 Arnaldo Carvalho de Melo
2013-11-15  6:38 ` Ingo Molnar
2013-11-11 20:22 Arnaldo Carvalho de Melo
2013-11-05 20:09 Arnaldo Carvalho de Melo
2013-11-06  5:31 ` Ingo Molnar
2013-09-02 20:56 Arnaldo Carvalho de Melo
2013-09-03  5:49 ` Ingo Molnar
2013-02-14 21:44 Arnaldo Carvalho de Melo
2013-02-15 15:39 ` Ingo Molnar
2011-12-20 19:18 Arnaldo Carvalho de Melo
2011-12-20 19:33 ` Ingo Molnar
2010-08-06  1:46 Arnaldo Carvalho de Melo
2010-08-06  7:00 ` Ingo Molnar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).