* [GIT PULL 00/15] perf/core improvements and fixes
@ 2015-09-05 1:06 Arnaldo Carvalho de Melo
2015-09-05 1:06 ` [PATCH 01/15] perf tests: Take into account address of each objdump line Arnaldo Carvalho de Melo
` (15 more replies)
0 siblings, 16 replies; 51+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-09-05 1:06 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Andi Kleen, Corey Ashford, David Ahern, Frederic Weisbecker,
Jan Stancek, Jiri Olsa, Kan Liang, Matt Fleming, Namhyung Kim,
Paul Mackerras, Peter Zijlstra, Raphael Beamonte,
Stephane Eranian, Steven Rostedt, Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling, this is on top of the previous pull request,
perf-core-for-mingo.
- Arnaldo
The following changes since commit cf2f33a4e54096f90652cca3511fd6a456ea5abe:
perf trace: Add read/write to the file group (2015-09-04 13:22:06 -0300)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-2
for you to fetch changes up to 0959e527b1593e662cb99639a587eac39ea1232d:
perf stat: Move sw clock metrics printout to stat-shadow (2015-09-04 20:30:01 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
User visible:
- Add 'socket' sort entry, to sort by the processor socket in
'perf top' and 'perf report' (Kan Liang)
- Introduce --socket-filter to 'perf report', for filtering by
processor socket (Kan Liang)
- Add new "Zoom into Processor Socket" operation in the perf hists browser,
used in 'perf top' and 'perf report' (Kan Liang)
Infrastructure:
- 'perf test' fixes for the object code reading entry (Jan Stancek)
- Add processor socket and cpu topology 'perf test' entries (Kan Liang)
- Move sw clock metrics printout to stat-shadow (Andi Kleen)
- Switch to tracing_patch interface (Jiri Olsa)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Andi Kleen (1):
perf stat: Move sw clock metrics printout to stat-shadow
Jan Stancek (4):
perf tests: Take into account address of each objdump line
perf tests: Make objdump disassemble zero blocks
perf tests: Stop reading if objdump output crossed sections
perf tests: Print objdump/dso buffers if they don't match
Jiri Olsa (4):
tools lib api fs: Make tracing_path_strerror_open message generic
tools lib api fs: Replace debugfs/tracefs objects interface with fs.c
tools lib api fs: Remove debugfs, tracefs and findfs objects
perf tools: Switch to tracing_path interface on appropriate places
Kan Liang (6):
perf test: Add entry to test cpu topology
perf tools: Add processor socket info to hist_entry and addr_location
perf tools: Introduce new sort type "socket" for the processor socket
perf report: Introduce --socket-filter option
perf hists browser: Zoom in/out for processor socket
perf test: Add entry for hists socket filter
tools/lib/api/fs/Build | 3 -
tools/lib/api/fs/debugfs.c | 77 -------------------
tools/lib/api/fs/debugfs.h | 23 ------
tools/lib/api/fs/findfs.c | 63 ----------------
tools/lib/api/fs/findfs.h | 23 ------
tools/lib/api/fs/fs.c | 1 -
tools/lib/api/fs/tracefs.c | 78 -------------------
tools/lib/api/fs/tracefs.h | 21 ------
tools/lib/api/fs/tracing_path.c | 35 +++++----
tools/perf/Documentation/perf-report.txt | 6 +-
tools/perf/builtin-kvm.c | 1 -
tools/perf/builtin-probe.c | 1 -
tools/perf/builtin-report.c | 15 ++++
tools/perf/builtin-stat.c | 9 ---
tools/perf/tests/Build | 1 +
tools/perf/tests/builtin-test.c | 4 +
tools/perf/tests/code-reading.c | 74 +++++++++++++++----
tools/perf/tests/hists_filter.c | 55 +++++++++++---
tools/perf/tests/openat-syscall-all-cpus.c | 10 +--
tools/perf/tests/openat-syscall.c | 10 +--
tools/perf/tests/parse-events.c | 19 +----
tools/perf/tests/tests.h | 1 +
tools/perf/tests/topology.c | 115 +++++++++++++++++++++++++++++
tools/perf/ui/browsers/hists.c | 59 ++++++++++++++-
tools/perf/util/event.c | 1 +
tools/perf/util/evsel.c | 2 +-
tools/perf/util/hist.c | 37 ++++++++++
tools/perf/util/hist.h | 6 +-
tools/perf/util/probe-event.c | 5 +-
tools/perf/util/probe-file.c | 15 +---
tools/perf/util/sort.c | 22 ++++++
tools/perf/util/sort.h | 2 +
tools/perf/util/stat-shadow.c | 3 +
tools/perf/util/symbol.h | 1 +
tools/perf/util/util.h | 3 +-
35 files changed, 409 insertions(+), 392 deletions(-)
delete mode 100644 tools/lib/api/fs/debugfs.c
delete mode 100644 tools/lib/api/fs/debugfs.h
delete mode 100644 tools/lib/api/fs/findfs.c
delete mode 100644 tools/lib/api/fs/findfs.h
delete mode 100644 tools/lib/api/fs/tracefs.c
delete mode 100644 tools/lib/api/fs/tracefs.h
create mode 100644 tools/perf/tests/topology.c
^ permalink raw reply [flat|nested] 51+ messages in thread
* [PATCH 01/15] perf tests: Take into account address of each objdump line
2015-09-05 1:06 [GIT PULL 00/15] perf/core improvements and fixes Arnaldo Carvalho de Melo
@ 2015-09-05 1:06 ` Arnaldo Carvalho de Melo
2015-09-05 1:06 ` [PATCH 02/15] perf tests: Make objdump disassemble zero blocks Arnaldo Carvalho de Melo
` (14 subsequent siblings)
15 siblings, 0 replies; 51+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-09-05 1:06 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Jan Stancek, Adrian Hunter, Corey Ashford,
David Ahern, Frederic Weisbecker, Jiri Olsa, Namhyung Kim,
Paul Mackerras, Peter Zijlstra, Arnaldo Carvalho de Melo
From: Jan Stancek <jstancek@redhat.com>
objdump output can contain repeated bytes. At the moment test reads all
output sequentially, assuming each address is represented in output only
once:
ffffffff8164efb3 <retint_swapgs+0x9>:
ffffffff8164efb3: c1 5d 00 eb rcrl $0xeb,0x0(%rbp)
ffffffff8164efb7: 00 4c 8b 5c add %cl,0x5c(%rbx,%rcx,4)
ffffffff8164efb8 <restore_c_regs_and_iret>:
ffffffff8164efb8: 4c 8b 5c 24 30 mov 0x30(%rsp),%r11
ffffffff8164efbd: 4c 8b 54 24 38 mov 0x38(%rsp),%r10
Store objdump output to buffer according to offset calculated from
address on each line.
Signed-off-by: Jan Stancek <jstancek@redhat.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/ad13289a55d6350f7717757c7e32c2d4286402bd.1441181335.git.jstancek@redhat.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/tests/code-reading.c | 51 ++++++++++++++++++++++++++++++-----------
1 file changed, 38 insertions(+), 13 deletions(-)
diff --git a/tools/perf/tests/code-reading.c b/tools/perf/tests/code-reading.c
index 39c784a100a9..38ee90bc2228 100644
--- a/tools/perf/tests/code-reading.c
+++ b/tools/perf/tests/code-reading.c
@@ -33,20 +33,20 @@ static unsigned int hex(char c)
return c - 'A' + 10;
}
-static void read_objdump_line(const char *line, size_t line_len, void **buf,
- size_t *len)
+static size_t read_objdump_line(const char *line, size_t line_len, void *buf,
+ size_t len)
{
const char *p;
- size_t i;
+ size_t i, j = 0;
/* Skip to a colon */
p = strchr(line, ':');
if (!p)
- return;
+ return 0;
i = p + 1 - line;
/* Read bytes */
- while (*len) {
+ while (j < len) {
char c1, c2;
/* Skip spaces */
@@ -65,20 +65,26 @@ static void read_objdump_line(const char *line, size_t line_len, void **buf,
if (i < line_len && line[i] && !isspace(line[i]))
break;
/* Store byte */
- *(unsigned char *)*buf = (hex(c1) << 4) | hex(c2);
- *buf += 1;
- *len -= 1;
+ *(unsigned char *)buf = (hex(c1) << 4) | hex(c2);
+ buf += 1;
+ j++;
}
+ /* return number of successfully read bytes */
+ return j;
}
-static int read_objdump_output(FILE *f, void **buf, size_t *len)
+static int read_objdump_output(FILE *f, void *buf, size_t *len, u64 start_addr)
{
char *line = NULL;
- size_t line_len;
+ size_t line_len, off_last = 0;
ssize_t ret;
int err = 0;
+ u64 addr;
+
+ while (off_last < *len) {
+ size_t off, read_bytes, written_bytes;
+ unsigned char tmp[BUFSZ];
- while (1) {
ret = getline(&line, &line_len, f);
if (feof(f))
break;
@@ -87,9 +93,28 @@ static int read_objdump_output(FILE *f, void **buf, size_t *len)
err = -1;
break;
}
- read_objdump_line(line, ret, buf, len);
+
+ /* read objdump data into temporary buffer */
+ read_bytes = read_objdump_line(line, ret, tmp, sizeof(tmp));
+ if (!read_bytes)
+ continue;
+
+ if (sscanf(line, "%"PRIx64, &addr) != 1)
+ continue;
+
+ /* copy it from temporary buffer to 'buf' according
+ * to address on current objdump line */
+ off = addr - start_addr;
+ if (off >= *len)
+ break;
+ written_bytes = MIN(read_bytes, *len - off);
+ memcpy(buf + off, tmp, written_bytes);
+ off_last = off + written_bytes;
}
+ /* len returns number of bytes that could not be read */
+ *len -= off_last;
+
free(line);
return err;
@@ -120,7 +145,7 @@ static int read_via_objdump(const char *filename, u64 addr, void *buf,
return -1;
}
- ret = read_objdump_output(f, &buf, &len);
+ ret = read_objdump_output(f, buf, &len, addr);
if (len) {
pr_debug("objdump read too few bytes\n");
if (!ret)
--
2.1.0
^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH 02/15] perf tests: Make objdump disassemble zero blocks
2015-09-05 1:06 [GIT PULL 00/15] perf/core improvements and fixes Arnaldo Carvalho de Melo
2015-09-05 1:06 ` [PATCH 01/15] perf tests: Take into account address of each objdump line Arnaldo Carvalho de Melo
@ 2015-09-05 1:06 ` Arnaldo Carvalho de Melo
2015-09-05 1:06 ` [PATCH 03/15] perf tests: Stop reading if objdump output crossed sections Arnaldo Carvalho de Melo
` (13 subsequent siblings)
15 siblings, 0 replies; 51+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-09-05 1:06 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Jan Stancek, Corey Ashford, David Ahern,
Frederic Weisbecker, Jiri Olsa, Namhyung Kim, Paul Mackerras,
Peter Zijlstra, Arnaldo Carvalho de Melo
From: Jan Stancek <jstancek@redhat.com>
Add -z parameter to avoid skipping zero blocks:
ffffffff816704fe <sysret_check+0x4b>:
ffffffff816704fe: 7b 34 jnp ffffffff81670534 <sysret_signal+0x1c>
...
ffffffff81670501 <sysret_careful>:
ffffffff81670501: 0f ba e2 03 bt $0x3,%edx
ffffffff81670505: 73 11 jae ffffffff81670518 <sysret_signal>
Signed-off-by: Jan Stancek <jstancek@redhat.com>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/130c6267fbdb9af506633a9efa06f3269ff5bd2c.1441275982.git.jstancek@redhat.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/tests/code-reading.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/perf/tests/code-reading.c b/tools/perf/tests/code-reading.c
index 38ee90bc2228..c409409d7765 100644
--- a/tools/perf/tests/code-reading.c
+++ b/tools/perf/tests/code-reading.c
@@ -128,7 +128,7 @@ static int read_via_objdump(const char *filename, u64 addr, void *buf,
FILE *f;
int ret;
- fmt = "%s -d --start-address=0x%"PRIx64" --stop-address=0x%"PRIx64" %s";
+ fmt = "%s -z -d --start-address=0x%"PRIx64" --stop-address=0x%"PRIx64" %s";
ret = snprintf(cmd, sizeof(cmd), fmt, "objdump", addr, addr + len,
filename);
if (ret <= 0 || (size_t)ret >= sizeof(cmd))
--
2.1.0
^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH 03/15] perf tests: Stop reading if objdump output crossed sections
2015-09-05 1:06 [GIT PULL 00/15] perf/core improvements and fixes Arnaldo Carvalho de Melo
2015-09-05 1:06 ` [PATCH 01/15] perf tests: Take into account address of each objdump line Arnaldo Carvalho de Melo
2015-09-05 1:06 ` [PATCH 02/15] perf tests: Make objdump disassemble zero blocks Arnaldo Carvalho de Melo
@ 2015-09-05 1:06 ` Arnaldo Carvalho de Melo
2015-09-05 1:06 ` [PATCH 04/15] perf tests: Print objdump/dso buffers if they don't match Arnaldo Carvalho de Melo
` (12 subsequent siblings)
15 siblings, 0 replies; 51+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-09-05 1:06 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Jan Stancek, Corey Ashford, David Ahern,
Frederic Weisbecker, Jiri Olsa, Namhyung Kim, Paul Mackerras,
Peter Zijlstra, Arnaldo Carvalho de Melo
From: Jan Stancek <jstancek@redhat.com>
objdump output can span across multiple sections:
Disassembly of section .text:
0000000000000008 <crc32c+0x8>:
8: 48 89 e5 mov %rsp,%rbp
b: 53 push %rbx
c: 8b 01 mov (%rcx),%eax
<snip>
6b: 90 nop
Disassembly of section .init.text:
0000000000000008 <init_module+0x8>:
8: 00 00 add %al,(%rax)
a: 00 00 add %al,(%rax)
c: 48 89 e5
Stop further reading if an address starts going backwards, assuming we
crossed sections.
Signed-off-by: Jan Stancek <jstancek@redhat.com>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/9d1ea95e5f9884fdff1be6f761a2feabef37412c.1441181335.git.jstancek@redhat.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/tests/code-reading.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/tools/perf/tests/code-reading.c b/tools/perf/tests/code-reading.c
index c409409d7765..8145c67fb43a 100644
--- a/tools/perf/tests/code-reading.c
+++ b/tools/perf/tests/code-reading.c
@@ -79,7 +79,7 @@ static int read_objdump_output(FILE *f, void *buf, size_t *len, u64 start_addr)
size_t line_len, off_last = 0;
ssize_t ret;
int err = 0;
- u64 addr;
+ u64 addr, last_addr = start_addr;
while (off_last < *len) {
size_t off, read_bytes, written_bytes;
@@ -101,6 +101,11 @@ static int read_objdump_output(FILE *f, void *buf, size_t *len, u64 start_addr)
if (sscanf(line, "%"PRIx64, &addr) != 1)
continue;
+ if (addr < last_addr) {
+ pr_debug("addr going backwards, read beyond section?\n");
+ break;
+ }
+ last_addr = addr;
/* copy it from temporary buffer to 'buf' according
* to address on current objdump line */
--
2.1.0
^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH 04/15] perf tests: Print objdump/dso buffers if they don't match
2015-09-05 1:06 [GIT PULL 00/15] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (2 preceding siblings ...)
2015-09-05 1:06 ` [PATCH 03/15] perf tests: Stop reading if objdump output crossed sections Arnaldo Carvalho de Melo
@ 2015-09-05 1:06 ` Arnaldo Carvalho de Melo
2015-09-05 1:06 ` [PATCH 05/15] tools lib api fs: Make tracing_path_strerror_open message generic Arnaldo Carvalho de Melo
` (11 subsequent siblings)
15 siblings, 0 replies; 51+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-09-05 1:06 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Jan Stancek, Corey Ashford, David Ahern,
Frederic Weisbecker, Jiri Olsa, Namhyung Kim, Paul Mackerras,
Peter Zijlstra, Arnaldo Carvalho de Melo
From: Jan Stancek <jstancek@redhat.com>
Signed-off-by: Jan Stancek <jstancek@redhat.com>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/d0f42f786bc0e965918e0f422df25617a12a4021.1441181335.git.jstancek@redhat.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/tests/code-reading.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/tools/perf/tests/code-reading.c b/tools/perf/tests/code-reading.c
index 8145c67fb43a..2d21183bd661 100644
--- a/tools/perf/tests/code-reading.c
+++ b/tools/perf/tests/code-reading.c
@@ -162,6 +162,18 @@ static int read_via_objdump(const char *filename, u64 addr, void *buf,
return ret;
}
+static void dump_buf(unsigned char *buf, size_t len)
+{
+ size_t i;
+
+ for (i = 0; i < len; i++) {
+ pr_debug("0x%02x ", buf[i]);
+ if (i % 16 == 15)
+ pr_debug("\n");
+ }
+ pr_debug("\n");
+}
+
static int read_object_code(u64 addr, size_t len, u8 cpumode,
struct thread *thread, struct state *state)
{
@@ -264,6 +276,10 @@ static int read_object_code(u64 addr, size_t len, u8 cpumode,
/* The results should be identical */
if (memcmp(buf1, buf2, len)) {
pr_debug("Bytes read differ from those read by objdump\n");
+ pr_debug("buf1 (dso):\n");
+ dump_buf(buf1, len);
+ pr_debug("buf2 (objdump):\n");
+ dump_buf(buf2, len);
return -1;
}
pr_debug("Bytes read match those read by objdump\n");
--
2.1.0
^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH 05/15] tools lib api fs: Make tracing_path_strerror_open message generic
2015-09-05 1:06 [GIT PULL 00/15] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (3 preceding siblings ...)
2015-09-05 1:06 ` [PATCH 04/15] perf tests: Print objdump/dso buffers if they don't match Arnaldo Carvalho de Melo
@ 2015-09-05 1:06 ` Arnaldo Carvalho de Melo
2015-09-05 1:06 ` [PATCH 06/15] tools lib api fs: Replace debugfs/tracefs objects interface with fs.c Arnaldo Carvalho de Melo
` (10 subsequent siblings)
15 siblings, 0 replies; 51+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-09-05 1:06 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Jiri Olsa, David Ahern, Matt Fleming, Namhyung Kim,
Peter Zijlstra, Raphael Beamonte, Steven Rostedt,
Arnaldo Carvalho de Melo
From: Jiri Olsa <jolsa@kernel.org>
Making tracing_path__strerror_open_tp message generic by mentioning both
debugfs/tracefs words in error message plus the tracing_path instead of
debugfs_mountpoint.
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Matt Fleming <matt@codeblueprint.co.uk>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Raphael Beamonte <raphael.beamonte@gmail.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Link: http://lkml.kernel.org/r/1441180605-24737-7-git-send-email-jolsa@kernel.org
[ Add comment for the ENOENT case out of this patch discussion thread ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/lib/api/fs/tracing_path.c | 26 ++++++++++++++++----------
1 file changed, 16 insertions(+), 10 deletions(-)
diff --git a/tools/lib/api/fs/tracing_path.c b/tools/lib/api/fs/tracing_path.c
index 3b3e4f5fc50b..1e0bb0da5e4f 100644
--- a/tools/lib/api/fs/tracing_path.c
+++ b/tools/lib/api/fs/tracing_path.c
@@ -90,33 +90,39 @@ static int strerror_open(int err, char *buf, size_t size, const char *filename)
switch (err) {
case ENOENT:
- if (debugfs_configured()) {
+ /*
+ * We will get here if we can't find the tracepoint, but one of
+ * debugfs or tracefs is configured, which means you probably
+ * want some tracepoint which wasn't compiled in your kernel.
+ * - jirka
+ */
+ if (debugfs_configured() || tracefs_configured()) {
snprintf(buf, size,
"Error:\tFile %s/%s not found.\n"
"Hint:\tPerhaps this kernel misses some CONFIG_ setting to enable this feature?.\n",
- debugfs_mountpoint, filename);
+ tracing_events_path, filename);
break;
}
snprintf(buf, size, "%s",
- "Error:\tUnable to find debugfs\n"
- "Hint:\tWas your kernel compiled with debugfs support?\n"
- "Hint:\tIs the debugfs filesystem mounted?\n"
+ "Error:\tUnable to find debugfs/tracefs\n"
+ "Hint:\tWas your kernel compiled with debugfs/tracefs support?\n"
+ "Hint:\tIs the debugfs/tracefs filesystem mounted?\n"
"Hint:\tTry 'sudo mount -t debugfs nodev /sys/kernel/debug'");
break;
case EACCES: {
- const char *mountpoint = debugfs_mountpoint;
+ const char *mountpoint = debugfs_find_mountpoint();
- if (!access(debugfs_mountpoint, R_OK) && strncmp(filename, "tracing/", 8) == 0) {
+ if (!access(mountpoint, R_OK) && strncmp(filename, "tracing/", 8) == 0) {
const char *tracefs_mntpoint = tracefs_find_mountpoint();
if (tracefs_mntpoint)
- mountpoint = tracefs_mntpoint;
+ mountpoint = tracefs_find_mountpoint();
}
snprintf(buf, size,
"Error:\tNo permissions to read %s/%s\n"
"Hint:\tTry 'sudo mount -o remount,mode=755 %s'\n",
- debugfs_mountpoint, filename, mountpoint);
+ tracing_events_path, filename, mountpoint);
}
break;
default:
@@ -131,7 +137,7 @@ int tracing_path__strerror_open_tp(int err, char *buf, size_t size, const char *
{
char path[PATH_MAX];
- snprintf(path, PATH_MAX, "tracing/events/%s/%s", sys, name ?: "*");
+ snprintf(path, PATH_MAX, "%s/%s", sys, name ?: "*");
return strerror_open(err, buf, size, path);
}
--
2.1.0
^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH 06/15] tools lib api fs: Replace debugfs/tracefs objects interface with fs.c
2015-09-05 1:06 [GIT PULL 00/15] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (4 preceding siblings ...)
2015-09-05 1:06 ` [PATCH 05/15] tools lib api fs: Make tracing_path_strerror_open message generic Arnaldo Carvalho de Melo
@ 2015-09-05 1:06 ` Arnaldo Carvalho de Melo
2015-09-05 1:06 ` [PATCH 07/15] tools lib api fs: Remove debugfs, tracefs and findfs objects Arnaldo Carvalho de Melo
` (9 subsequent siblings)
15 siblings, 0 replies; 51+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-09-05 1:06 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Jiri Olsa, David Ahern, Matt Fleming, Namhyung Kim,
Peter Zijlstra, Raphael Beamonte, Steven Rostedt,
Arnaldo Carvalho de Melo
From: Jiri Olsa <jolsa@kernel.org>
Switching to the fs.c related filesystem framework.
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Matt Fleming <matt@codeblueprint.co.uk>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Raphael Beamonte <raphael.beamonte@gmail.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Link: http://lkml.kernel.org/r/1441180605-24737-14-git-send-email-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/lib/api/fs/fs.c | 1 -
tools/lib/api/fs/tracing_path.c | 15 +++++++--------
tools/perf/builtin-kvm.c | 1 -
tools/perf/builtin-probe.c | 1 -
tools/perf/tests/openat-syscall-all-cpus.c | 5 +++--
tools/perf/tests/openat-syscall.c | 5 +++--
tools/perf/tests/parse-events.c | 7 +++----
tools/perf/util/evsel.c | 2 +-
tools/perf/util/probe-event.c | 5 ++---
tools/perf/util/probe-file.c | 7 +++----
tools/perf/util/util.h | 3 +--
11 files changed, 23 insertions(+), 29 deletions(-)
diff --git a/tools/lib/api/fs/fs.c b/tools/lib/api/fs/fs.c
index 8afe08a99bc6..791509346178 100644
--- a/tools/lib/api/fs/fs.c
+++ b/tools/lib/api/fs/fs.c
@@ -11,7 +11,6 @@
#include <unistd.h>
#include <sys/mount.h>
-#include "debugfs.h"
#include "fs.h"
#define _STR(x) #x
diff --git a/tools/lib/api/fs/tracing_path.c b/tools/lib/api/fs/tracing_path.c
index 1e0bb0da5e4f..38aca2dd1946 100644
--- a/tools/lib/api/fs/tracing_path.c
+++ b/tools/lib/api/fs/tracing_path.c
@@ -7,8 +7,7 @@
#include <string.h>
#include <errno.h>
#include <unistd.h>
-#include "debugfs.h"
-#include "tracefs.h"
+#include "fs.h"
#include "tracing_path.h"
@@ -29,7 +28,7 @@ static const char *tracing_path_tracefs_mount(void)
{
const char *mnt;
- mnt = tracefs_mount(NULL);
+ mnt = tracefs__mount();
if (!mnt)
return NULL;
@@ -42,7 +41,7 @@ static const char *tracing_path_debugfs_mount(void)
{
const char *mnt;
- mnt = debugfs_mount(NULL);
+ mnt = debugfs__mount();
if (!mnt)
return NULL;
@@ -96,7 +95,7 @@ static int strerror_open(int err, char *buf, size_t size, const char *filename)
* want some tracepoint which wasn't compiled in your kernel.
* - jirka
*/
- if (debugfs_configured() || tracefs_configured()) {
+ if (debugfs__configured() || tracefs__configured()) {
snprintf(buf, size,
"Error:\tFile %s/%s not found.\n"
"Hint:\tPerhaps this kernel misses some CONFIG_ setting to enable this feature?.\n",
@@ -110,13 +109,13 @@ static int strerror_open(int err, char *buf, size_t size, const char *filename)
"Hint:\tTry 'sudo mount -t debugfs nodev /sys/kernel/debug'");
break;
case EACCES: {
- const char *mountpoint = debugfs_find_mountpoint();
+ const char *mountpoint = debugfs__mountpoint();
if (!access(mountpoint, R_OK) && strncmp(filename, "tracing/", 8) == 0) {
- const char *tracefs_mntpoint = tracefs_find_mountpoint();
+ const char *tracefs_mntpoint = tracefs__mountpoint();
if (tracefs_mntpoint)
- mountpoint = tracefs_find_mountpoint();
+ mountpoint = tracefs__mountpoint();
}
snprintf(buf, size,
diff --git a/tools/perf/builtin-kvm.c b/tools/perf/builtin-kvm.c
index fc1cffb1b7a2..dd94b4ca2213 100644
--- a/tools/perf/builtin-kvm.c
+++ b/tools/perf/builtin-kvm.c
@@ -13,7 +13,6 @@
#include "util/parse-options.h"
#include "util/trace-event.h"
#include "util/debug.h"
-#include <api/fs/debugfs.h>
#include "util/tool.h"
#include "util/stat.h"
#include "util/top.h"
diff --git a/tools/perf/builtin-probe.c b/tools/perf/builtin-probe.c
index ee2c46d8353e..2bec9c1ef2a3 100644
--- a/tools/perf/builtin-probe.c
+++ b/tools/perf/builtin-probe.c
@@ -37,7 +37,6 @@
#include "util/strfilter.h"
#include "util/symbol.h"
#include "util/debug.h"
-#include <api/fs/debugfs.h>
#include "util/parse-options.h"
#include "util/probe-finder.h"
#include "util/probe-event.h"
diff --git a/tools/perf/tests/openat-syscall-all-cpus.c b/tools/perf/tests/openat-syscall-all-cpus.c
index a572f87e9c8d..a38adf94c731 100644
--- a/tools/perf/tests/openat-syscall-all-cpus.c
+++ b/tools/perf/tests/openat-syscall-all-cpus.c
@@ -1,3 +1,4 @@
+#include <api/fs/fs.h>
#include "evsel.h"
#include "tests.h"
#include "thread_map.h"
@@ -30,9 +31,9 @@ int test__openat_syscall_event_on_all_cpus(void)
evsel = perf_evsel__newtp("syscalls", "sys_enter_openat");
if (evsel == NULL) {
- if (tracefs_configured())
+ if (tracefs__configured())
pr_debug("is tracefs mounted on /sys/kernel/tracing?\n");
- else if (debugfs_configured())
+ else if (debugfs__configured())
pr_debug("is debugfs mounted on /sys/kernel/debug?\n");
else
pr_debug("Neither tracefs or debugfs is enabled in this kernel\n");
diff --git a/tools/perf/tests/openat-syscall.c b/tools/perf/tests/openat-syscall.c
index c9a37bc6b33a..8048c7d7cd67 100644
--- a/tools/perf/tests/openat-syscall.c
+++ b/tools/perf/tests/openat-syscall.c
@@ -1,3 +1,4 @@
+#include <api/fs/fs.h>
#include "thread_map.h"
#include "evsel.h"
#include "debug.h"
@@ -18,9 +19,9 @@ int test__openat_syscall_event(void)
evsel = perf_evsel__newtp("syscalls", "sys_enter_openat");
if (evsel == NULL) {
- if (tracefs_configured())
+ if (tracefs__configured())
pr_debug("is tracefs mounted on /sys/kernel/tracing?\n");
- else if (debugfs_configured())
+ else if (debugfs__configured())
pr_debug("is debugfs mounted on /sys/kernel/debug?\n");
else
pr_debug("Neither tracefs or debugfs is enabled in this kernel\n");
diff --git a/tools/perf/tests/parse-events.c b/tools/perf/tests/parse-events.c
index 9b6b2b6324a1..91fbfd593c4a 100644
--- a/tools/perf/tests/parse-events.c
+++ b/tools/perf/tests/parse-events.c
@@ -3,11 +3,10 @@
#include "evsel.h"
#include "evlist.h"
#include <api/fs/fs.h>
-#include <api/fs/tracefs.h>
-#include <api/fs/debugfs.h>
#include "tests.h"
#include "debug.h"
#include <linux/hw_breakpoint.h>
+#include <api/fs/fs.h>
#define PERF_TP_SAMPLE_TYPE (PERF_SAMPLE_RAW | PERF_SAMPLE_TIME | \
PERF_SAMPLE_CPU | PERF_SAMPLE_PERIOD)
@@ -1268,12 +1267,12 @@ static int count_tracepoints(void)
DIR *events_dir;
int cnt = 0;
- mountpoint = tracefs_find_mountpoint();
+ mountpoint = tracefs__mountpoint();
if (mountpoint) {
scnprintf(events_path, PATH_MAX, "%s/events",
mountpoint);
} else {
- mountpoint = debugfs_find_mountpoint();
+ mountpoint = debugfs__mountpoint();
scnprintf(events_path, PATH_MAX, "%s/tracing/events",
mountpoint);
}
diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
index c53f79123b37..771ade4d5966 100644
--- a/tools/perf/util/evsel.c
+++ b/tools/perf/util/evsel.c
@@ -9,7 +9,7 @@
#include <byteswap.h>
#include <linux/bitops.h>
-#include <api/fs/debugfs.h>
+#include <api/fs/tracing_path.h>
#include <traceevent/event-parse.h>
#include <linux/hw_breakpoint.h>
#include <linux/perf_event.h>
diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
index 3da9e1c792fa..5964eccbe94d 100644
--- a/tools/perf/util/probe-event.c
+++ b/tools/perf/util/probe-event.c
@@ -40,8 +40,7 @@
#include "color.h"
#include "symbol.h"
#include "thread.h"
-#include <api/fs/debugfs.h>
-#include <api/fs/tracefs.h>
+#include <api/fs/fs.h>
#include "trace-event.h" /* For __maybe_unused */
#include "probe-event.h"
#include "probe-finder.h"
@@ -2054,7 +2053,7 @@ static void kprobe_blacklist__delete(struct list_head *blacklist)
static int kprobe_blacklist__load(struct list_head *blacklist)
{
struct kprobe_blacklist_node *node;
- const char *__debugfs = debugfs_find_mountpoint();
+ const char *__debugfs = debugfs__mountpoint();
char buf[PATH_MAX], *p;
FILE *fp;
int ret;
diff --git a/tools/perf/util/probe-file.c b/tools/perf/util/probe-file.c
index 38c0a62039cc..499c83ccd44b 100644
--- a/tools/perf/util/probe-file.c
+++ b/tools/perf/util/probe-file.c
@@ -22,8 +22,7 @@
#include "color.h"
#include "symbol.h"
#include "thread.h"
-#include <api/fs/debugfs.h>
-#include <api/fs/tracefs.h>
+#include <api/fs/fs.h>
#include "probe-event.h"
#include "probe-file.h"
#include "session.h"
@@ -77,11 +76,11 @@ static int open_probe_events(const char *trace_file, bool readwrite)
const char *tracing_dir = "";
int ret;
- __debugfs = tracefs_find_mountpoint();
+ __debugfs = tracefs__mountpoint();
if (__debugfs == NULL) {
tracing_dir = "tracing/";
- __debugfs = debugfs_find_mountpoint();
+ __debugfs = debugfs__mountpoint();
if (__debugfs == NULL)
return -ENOTSUP;
}
diff --git a/tools/perf/util/util.h b/tools/perf/util/util.h
index 495b99ccb588..3d5b01e8978f 100644
--- a/tools/perf/util/util.h
+++ b/tools/perf/util/util.h
@@ -74,8 +74,7 @@
#include <linux/magic.h>
#include <linux/types.h>
#include <sys/ttydefaults.h>
-#include <api/fs/debugfs.h>
-#include <api/fs/tracefs.h>
+#include <api/fs/tracing_path.h>
#include <termios.h>
#include <linux/bitops.h>
#include <termios.h>
--
2.1.0
^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH 07/15] tools lib api fs: Remove debugfs, tracefs and findfs objects
2015-09-05 1:06 [GIT PULL 00/15] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (5 preceding siblings ...)
2015-09-05 1:06 ` [PATCH 06/15] tools lib api fs: Replace debugfs/tracefs objects interface with fs.c Arnaldo Carvalho de Melo
@ 2015-09-05 1:06 ` Arnaldo Carvalho de Melo
2015-09-05 1:06 ` [PATCH 08/15] perf tools: Switch to tracing_path interface on appropriate places Arnaldo Carvalho de Melo
` (8 subsequent siblings)
15 siblings, 0 replies; 51+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-09-05 1:06 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Jiri Olsa, David Ahern, Matt Fleming, Namhyung Kim,
Peter Zijlstra, Raphael Beamonte, Steven Rostedt,
Arnaldo Carvalho de Melo
From: Jiri Olsa <jolsa@kernel.org>
We have all the functionality in fs.c, let's remove unneeded
objects.
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Matt Fleming <matt@codeblueprint.co.uk>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Raphael Beamonte <raphael.beamonte@gmail.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Link: http://lkml.kernel.org/r/1441180605-24737-15-git-send-email-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/lib/api/fs/Build | 3 --
tools/lib/api/fs/debugfs.c | 77 ---------------------------------------------
tools/lib/api/fs/debugfs.h | 23 --------------
tools/lib/api/fs/findfs.c | 63 -------------------------------------
tools/lib/api/fs/findfs.h | 23 --------------
tools/lib/api/fs/tracefs.c | 78 ----------------------------------------------
tools/lib/api/fs/tracefs.h | 21 -------------
7 files changed, 288 deletions(-)
delete mode 100644 tools/lib/api/fs/debugfs.c
delete mode 100644 tools/lib/api/fs/debugfs.h
delete mode 100644 tools/lib/api/fs/findfs.c
delete mode 100644 tools/lib/api/fs/findfs.h
delete mode 100644 tools/lib/api/fs/tracefs.c
delete mode 100644 tools/lib/api/fs/tracefs.h
diff --git a/tools/lib/api/fs/Build b/tools/lib/api/fs/Build
index fa726f679b29..f4ed9629ae85 100644
--- a/tools/lib/api/fs/Build
+++ b/tools/lib/api/fs/Build
@@ -1,5 +1,2 @@
libapi-y += fs.o
libapi-y += tracing_path.o
-libapi-y += debugfs.o
-libapi-y += findfs.o
-libapi-y += tracefs.o
diff --git a/tools/lib/api/fs/debugfs.c b/tools/lib/api/fs/debugfs.c
deleted file mode 100644
index c707cfb32782..000000000000
--- a/tools/lib/api/fs/debugfs.c
+++ /dev/null
@@ -1,77 +0,0 @@
-#define _GNU_SOURCE
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <stdbool.h>
-#include <sys/vfs.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/mount.h>
-#include <linux/kernel.h>
-
-#include "debugfs.h"
-#include "tracefs.h"
-
-#ifndef DEBUGFS_DEFAULT_PATH
-#define DEBUGFS_DEFAULT_PATH "/sys/kernel/debug"
-#endif
-
-char debugfs_mountpoint[PATH_MAX + 1] = DEBUGFS_DEFAULT_PATH;
-
-static const char * const debugfs_known_mountpoints[] = {
- DEBUGFS_DEFAULT_PATH,
- "/debug",
- 0,
-};
-
-static bool debugfs_found;
-
-bool debugfs_configured(void)
-{
- return debugfs_find_mountpoint() != NULL;
-}
-
-/* find the path to the mounted debugfs */
-const char *debugfs_find_mountpoint(void)
-{
- const char *ret;
-
- if (debugfs_found)
- return (const char *)debugfs_mountpoint;
-
- ret = find_mountpoint("debugfs", (long) DEBUGFS_MAGIC,
- debugfs_mountpoint, PATH_MAX + 1,
- debugfs_known_mountpoints);
- if (ret)
- debugfs_found = true;
-
- return ret;
-}
-
-/* mount the debugfs somewhere if it's not mounted */
-char *debugfs_mount(const char *mountpoint)
-{
- /* see if it's already mounted */
- if (debugfs_find_mountpoint())
- goto out;
-
- /* if not mounted and no argument */
- if (mountpoint == NULL) {
- /* see if environment variable set */
- mountpoint = getenv(PERF_DEBUGFS_ENVIRONMENT);
- /* if no environment variable, use default */
- if (mountpoint == NULL)
- mountpoint = DEBUGFS_DEFAULT_PATH;
- }
-
- if (mount(NULL, mountpoint, "debugfs", 0, NULL) < 0)
- return NULL;
-
- /* save the mountpoint */
- debugfs_found = true;
- strncpy(debugfs_mountpoint, mountpoint, sizeof(debugfs_mountpoint));
-out:
- return debugfs_mountpoint;
-}
diff --git a/tools/lib/api/fs/debugfs.h b/tools/lib/api/fs/debugfs.h
deleted file mode 100644
index 455023698d2b..000000000000
--- a/tools/lib/api/fs/debugfs.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef __API_DEBUGFS_H__
-#define __API_DEBUGFS_H__
-
-#include "findfs.h"
-
-#ifndef DEBUGFS_MAGIC
-#define DEBUGFS_MAGIC 0x64626720
-#endif
-
-#ifndef PERF_DEBUGFS_ENVIRONMENT
-#define PERF_DEBUGFS_ENVIRONMENT "PERF_DEBUGFS_DIR"
-#endif
-
-bool debugfs_configured(void);
-const char *debugfs_find_mountpoint(void);
-char *debugfs_mount(const char *mountpoint);
-
-extern char debugfs_mountpoint[];
-
-int debugfs__strerror_open(int err, char *buf, size_t size, const char *filename);
-int debugfs__strerror_open_tp(int err, char *buf, size_t size, const char *sys, const char *name);
-
-#endif /* __API_DEBUGFS_H__ */
diff --git a/tools/lib/api/fs/findfs.c b/tools/lib/api/fs/findfs.c
deleted file mode 100644
index 49946cb6d7af..000000000000
--- a/tools/lib/api/fs/findfs.c
+++ /dev/null
@@ -1,63 +0,0 @@
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <stdbool.h>
-#include <sys/vfs.h>
-
-#include "findfs.h"
-
-/* verify that a mountpoint is actually the type we want */
-
-int valid_mountpoint(const char *mount, long magic)
-{
- struct statfs st_fs;
-
- if (statfs(mount, &st_fs) < 0)
- return -ENOENT;
- else if ((long)st_fs.f_type != magic)
- return -ENOENT;
-
- return 0;
-}
-
-/* find the path to a mounted file system */
-const char *find_mountpoint(const char *fstype, long magic,
- char *mountpoint, int len,
- const char * const *known_mountpoints)
-{
- const char * const *ptr;
- char format[128];
- char type[100];
- FILE *fp;
-
- if (known_mountpoints) {
- ptr = known_mountpoints;
- while (*ptr) {
- if (valid_mountpoint(*ptr, magic) == 0) {
- strncpy(mountpoint, *ptr, len - 1);
- mountpoint[len-1] = 0;
- return mountpoint;
- }
- ptr++;
- }
- }
-
- /* give up and parse /proc/mounts */
- fp = fopen("/proc/mounts", "r");
- if (fp == NULL)
- return NULL;
-
- snprintf(format, 128, "%%*s %%%ds %%99s %%*s %%*d %%*d\n", len);
-
- while (fscanf(fp, format, mountpoint, type) == 2) {
- if (strcmp(type, fstype) == 0)
- break;
- }
- fclose(fp);
-
- if (strcmp(type, fstype) != 0)
- return NULL;
-
- return mountpoint;
-}
diff --git a/tools/lib/api/fs/findfs.h b/tools/lib/api/fs/findfs.h
deleted file mode 100644
index b6f5d05acc42..000000000000
--- a/tools/lib/api/fs/findfs.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef __API_FINDFS_H__
-#define __API_FINDFS_H__
-
-#include <stdbool.h>
-
-#define _STR(x) #x
-#define STR(x) _STR(x)
-
-/*
- * On most systems <limits.h> would have given us this, but not on some systems
- * (e.g. GNU/Hurd).
- */
-#ifndef PATH_MAX
-#define PATH_MAX 4096
-#endif
-
-const char *find_mountpoint(const char *fstype, long magic,
- char *mountpoint, int len,
- const char * const *known_mountpoints);
-
-int valid_mountpoint(const char *mount, long magic);
-
-#endif /* __API_FINDFS_H__ */
diff --git a/tools/lib/api/fs/tracefs.c b/tools/lib/api/fs/tracefs.c
deleted file mode 100644
index e4aa9688b71e..000000000000
--- a/tools/lib/api/fs/tracefs.c
+++ /dev/null
@@ -1,78 +0,0 @@
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <stdbool.h>
-#include <sys/vfs.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/mount.h>
-#include <linux/kernel.h>
-
-#include "tracefs.h"
-
-#ifndef TRACEFS_DEFAULT_PATH
-#define TRACEFS_DEFAULT_PATH "/sys/kernel/tracing"
-#endif
-
-char tracefs_mountpoint[PATH_MAX + 1] = TRACEFS_DEFAULT_PATH;
-
-static const char * const tracefs_known_mountpoints[] = {
- TRACEFS_DEFAULT_PATH,
- "/sys/kernel/debug/tracing",
- "/tracing",
- "/trace",
- 0,
-};
-
-static bool tracefs_found;
-
-bool tracefs_configured(void)
-{
- return tracefs_find_mountpoint() != NULL;
-}
-
-/* find the path to the mounted tracefs */
-const char *tracefs_find_mountpoint(void)
-{
- const char *ret;
-
- if (tracefs_found)
- return (const char *)tracefs_mountpoint;
-
- ret = find_mountpoint("tracefs", (long) TRACEFS_MAGIC,
- tracefs_mountpoint, PATH_MAX + 1,
- tracefs_known_mountpoints);
-
- if (ret)
- tracefs_found = true;
-
- return ret;
-}
-
-/* mount the tracefs somewhere if it's not mounted */
-char *tracefs_mount(const char *mountpoint)
-{
- /* see if it's already mounted */
- if (tracefs_find_mountpoint())
- goto out;
-
- /* if not mounted and no argument */
- if (mountpoint == NULL) {
- /* see if environment variable set */
- mountpoint = getenv(PERF_TRACEFS_ENVIRONMENT);
- /* if no environment variable, use default */
- if (mountpoint == NULL)
- mountpoint = TRACEFS_DEFAULT_PATH;
- }
-
- if (mount(NULL, mountpoint, "tracefs", 0, NULL) < 0)
- return NULL;
-
- /* save the mountpoint */
- tracefs_found = true;
- strncpy(tracefs_mountpoint, mountpoint, sizeof(tracefs_mountpoint));
-out:
- return tracefs_mountpoint;
-}
diff --git a/tools/lib/api/fs/tracefs.h b/tools/lib/api/fs/tracefs.h
deleted file mode 100644
index da780ac49acb..000000000000
--- a/tools/lib/api/fs/tracefs.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#ifndef __API_TRACEFS_H__
-#define __API_TRACEFS_H__
-
-#include "findfs.h"
-
-#ifndef TRACEFS_MAGIC
-#define TRACEFS_MAGIC 0x74726163
-#endif
-
-#ifndef PERF_TRACEFS_ENVIRONMENT
-#define PERF_TRACEFS_ENVIRONMENT "PERF_TRACEFS_DIR"
-#endif
-
-bool tracefs_configured(void);
-const char *tracefs_find_mountpoint(void);
-int tracefs_valid_mountpoint(const char *debugfs);
-char *tracefs_mount(const char *mountpoint);
-
-extern char tracefs_mountpoint[];
-
-#endif /* __API_DEBUGFS_H__ */
--
2.1.0
^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH 08/15] perf tools: Switch to tracing_path interface on appropriate places
2015-09-05 1:06 [GIT PULL 00/15] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (6 preceding siblings ...)
2015-09-05 1:06 ` [PATCH 07/15] tools lib api fs: Remove debugfs, tracefs and findfs objects Arnaldo Carvalho de Melo
@ 2015-09-05 1:06 ` Arnaldo Carvalho de Melo
2015-09-05 1:06 ` [PATCH 09/15] perf test: Add entry to test cpu topology Arnaldo Carvalho de Melo
` (7 subsequent siblings)
15 siblings, 0 replies; 51+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-09-05 1:06 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Jiri Olsa, David Ahern, Matt Fleming, Namhyung Kim,
Peter Zijlstra, Raphael Beamonte, Steven Rostedt,
Arnaldo Carvalho de Melo
From: Jiri Olsa <jolsa@kernel.org>
Using tracing_path interface on several places, that more or less
copy the functionality of tracing_path interface.
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Matt Fleming <matt@codeblueprint.co.uk>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Raphael Beamonte <raphael.beamonte@gmail.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Link: http://lkml.kernel.org/r/1441180605-24737-16-git-send-email-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/tests/openat-syscall-all-cpus.c | 9 +++------
tools/perf/tests/openat-syscall.c | 11 ++++-------
tools/perf/tests/parse-events.c | 16 ++--------------
tools/perf/util/probe-file.c | 14 ++------------
4 files changed, 11 insertions(+), 39 deletions(-)
diff --git a/tools/perf/tests/openat-syscall-all-cpus.c b/tools/perf/tests/openat-syscall-all-cpus.c
index a38adf94c731..495d8126b722 100644
--- a/tools/perf/tests/openat-syscall-all-cpus.c
+++ b/tools/perf/tests/openat-syscall-all-cpus.c
@@ -15,6 +15,7 @@ int test__openat_syscall_event_on_all_cpus(void)
cpu_set_t cpu_set;
struct thread_map *threads = thread_map__new(-1, getpid(), UINT_MAX);
char sbuf[STRERR_BUFSIZE];
+ char errbuf[BUFSIZ];
if (threads == NULL) {
pr_debug("thread_map__new\n");
@@ -31,12 +32,8 @@ int test__openat_syscall_event_on_all_cpus(void)
evsel = perf_evsel__newtp("syscalls", "sys_enter_openat");
if (evsel == NULL) {
- if (tracefs__configured())
- pr_debug("is tracefs mounted on /sys/kernel/tracing?\n");
- else if (debugfs__configured())
- pr_debug("is debugfs mounted on /sys/kernel/debug?\n");
- else
- pr_debug("Neither tracefs or debugfs is enabled in this kernel\n");
+ tracing_path__strerror_open_tp(errno, errbuf, sizeof(errbuf), "syscalls", "sys_enter_openat");
+ pr_err("%s\n", errbuf);
goto out_thread_map_delete;
}
diff --git a/tools/perf/tests/openat-syscall.c b/tools/perf/tests/openat-syscall.c
index 8048c7d7cd67..08ac9d94a050 100644
--- a/tools/perf/tests/openat-syscall.c
+++ b/tools/perf/tests/openat-syscall.c
@@ -1,4 +1,4 @@
-#include <api/fs/fs.h>
+#include <api/fs/tracing_path.h>
#include "thread_map.h"
#include "evsel.h"
#include "debug.h"
@@ -11,6 +11,7 @@ int test__openat_syscall_event(void)
unsigned int nr_openat_calls = 111, i;
struct thread_map *threads = thread_map__new(-1, getpid(), UINT_MAX);
char sbuf[STRERR_BUFSIZE];
+ char errbuf[BUFSIZ];
if (threads == NULL) {
pr_debug("thread_map__new\n");
@@ -19,12 +20,8 @@ int test__openat_syscall_event(void)
evsel = perf_evsel__newtp("syscalls", "sys_enter_openat");
if (evsel == NULL) {
- if (tracefs__configured())
- pr_debug("is tracefs mounted on /sys/kernel/tracing?\n");
- else if (debugfs__configured())
- pr_debug("is debugfs mounted on /sys/kernel/debug?\n");
- else
- pr_debug("Neither tracefs or debugfs is enabled in this kernel\n");
+ tracing_path__strerror_open_tp(errno, errbuf, sizeof(errbuf), "syscalls", "sys_enter_openat");
+ pr_err("%s\n", errbuf);
goto out_thread_map_delete;
}
diff --git a/tools/perf/tests/parse-events.c b/tools/perf/tests/parse-events.c
index 91fbfd593c4a..3a2ebe666192 100644
--- a/tools/perf/tests/parse-events.c
+++ b/tools/perf/tests/parse-events.c
@@ -1261,23 +1261,11 @@ test__checkevent_breakpoint_len_rw_modifier(struct perf_evlist *evlist)
static int count_tracepoints(void)
{
- char events_path[PATH_MAX];
struct dirent *events_ent;
- const char *mountpoint;
DIR *events_dir;
int cnt = 0;
- mountpoint = tracefs__mountpoint();
- if (mountpoint) {
- scnprintf(events_path, PATH_MAX, "%s/events",
- mountpoint);
- } else {
- mountpoint = debugfs__mountpoint();
- scnprintf(events_path, PATH_MAX, "%s/tracing/events",
- mountpoint);
- }
-
- events_dir = opendir(events_path);
+ events_dir = opendir(tracing_events_path);
TEST_ASSERT_VAL("Can't open events dir", events_dir);
@@ -1294,7 +1282,7 @@ static int count_tracepoints(void)
continue;
scnprintf(sys_path, PATH_MAX, "%s/%s",
- events_path, events_ent->d_name);
+ tracing_events_path, events_ent->d_name);
sys_dir = opendir(sys_path);
TEST_ASSERT_VAL("Can't open sys dir", sys_dir);
diff --git a/tools/perf/util/probe-file.c b/tools/perf/util/probe-file.c
index 499c83ccd44b..89dbeb92c68e 100644
--- a/tools/perf/util/probe-file.c
+++ b/tools/perf/util/probe-file.c
@@ -22,7 +22,7 @@
#include "color.h"
#include "symbol.h"
#include "thread.h"
-#include <api/fs/fs.h>
+#include <api/fs/tracing_path.h>
#include "probe-event.h"
#include "probe-file.h"
#include "session.h"
@@ -72,21 +72,11 @@ static void print_both_open_warning(int kerr, int uerr)
static int open_probe_events(const char *trace_file, bool readwrite)
{
char buf[PATH_MAX];
- const char *__debugfs;
const char *tracing_dir = "";
int ret;
- __debugfs = tracefs__mountpoint();
- if (__debugfs == NULL) {
- tracing_dir = "tracing/";
-
- __debugfs = debugfs__mountpoint();
- if (__debugfs == NULL)
- return -ENOTSUP;
- }
-
ret = e_snprintf(buf, PATH_MAX, "%s/%s%s",
- __debugfs, tracing_dir, trace_file);
+ tracing_path, tracing_dir, trace_file);
if (ret >= 0) {
pr_debug("Opening %s write=%d\n", buf, readwrite);
if (readwrite && !probe_event_dry_run)
--
2.1.0
^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH 09/15] perf test: Add entry to test cpu topology
2015-09-05 1:06 [GIT PULL 00/15] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (7 preceding siblings ...)
2015-09-05 1:06 ` [PATCH 08/15] perf tools: Switch to tracing_path interface on appropriate places Arnaldo Carvalho de Melo
@ 2015-09-05 1:06 ` Arnaldo Carvalho de Melo
2015-09-05 1:06 ` [PATCH 10/15] perf tools: Add processor socket info to hist_entry and addr_location Arnaldo Carvalho de Melo
` (6 subsequent siblings)
15 siblings, 0 replies; 51+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-09-05 1:06 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Kan Liang, Andi Kleen, Jiri Olsa, Arnaldo Carvalho de Melo
From: Kan Liang <kan.liang@intel.com>
This patch test cpu core_id and socket_id which are stored in perf_env.
Commiter note:
# perf test topo
40: Test topology in session: Ok
# perf test -v topo
40: Test topology in session:
--- start ---
test child forked, pid 31767
templ file: /tmp/perf-test-VTZ1PL
CPU 0, core 0, socket 0
CPU 1, core 1, socket 0
CPU 2, core 0, socket 0
CPU 3, core 1, socket 0
test child finished with 0
---- end ----
Test topology in session: Ok
#
Based-on-a-patch-by: Jiri Olsa <jolsa@kernel.org>
Signed-off-by: Kan Liang <kan.liang@intel.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Link: http://lkml.kernel.org/r/1441357111-64522-1-git-send-email-kan.liang@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/tests/Build | 1 +
tools/perf/tests/builtin-test.c | 4 ++
tools/perf/tests/tests.h | 1 +
tools/perf/tests/topology.c | 115 ++++++++++++++++++++++++++++++++++++++++
4 files changed, 121 insertions(+)
create mode 100644 tools/perf/tests/topology.c
diff --git a/tools/perf/tests/Build b/tools/perf/tests/Build
index 51fb737f82fc..c6f198ae65fb 100644
--- a/tools/perf/tests/Build
+++ b/tools/perf/tests/Build
@@ -33,6 +33,7 @@ perf-y += parse-no-sample-id-all.o
perf-y += kmod-path.o
perf-y += thread-map.o
perf-y += llvm.o
+perf-y += topology.o
perf-$(CONFIG_X86) += perf-time-to-tsc.o
ifdef CONFIG_AUXTRACE
diff --git a/tools/perf/tests/builtin-test.c b/tools/perf/tests/builtin-test.c
index 69a77f71d594..98b0b2486100 100644
--- a/tools/perf/tests/builtin-test.c
+++ b/tools/perf/tests/builtin-test.c
@@ -187,6 +187,10 @@ static struct test {
#endif
#endif
{
+ .desc = "Test topology in session",
+ .func = test_session_topology,
+ },
+ {
.func = NULL,
},
};
diff --git a/tools/perf/tests/tests.h b/tools/perf/tests/tests.h
index 4e2c5458269a..0b3549672c16 100644
--- a/tools/perf/tests/tests.h
+++ b/tools/perf/tests/tests.h
@@ -64,6 +64,7 @@ int test__kmod_path__parse(void);
int test__thread_map(void);
int test__llvm(void);
int test__insn_x86(void);
+int test_session_topology(void);
#if defined(__x86_64__) || defined(__i386__) || defined(__arm__) || defined(__aarch64__)
#ifdef HAVE_DWARF_UNWIND_SUPPORT
diff --git a/tools/perf/tests/topology.c b/tools/perf/tests/topology.c
new file mode 100644
index 000000000000..c3aff53a976a
--- /dev/null
+++ b/tools/perf/tests/topology.c
@@ -0,0 +1,115 @@
+#include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include "tests.h"
+#include "util.h"
+#include "session.h"
+#include "evlist.h"
+#include "debug.h"
+
+#define TEMPL "/tmp/perf-test-XXXXXX"
+#define DATA_SIZE 10
+
+static int get_temp(char *path)
+{
+ int fd;
+
+ strcpy(path, TEMPL);
+
+ fd = mkstemp(path);
+ if (fd < 0) {
+ perror("mkstemp failed");
+ return -1;
+ }
+
+ close(fd);
+ return 0;
+}
+
+static int session_write_header(char *path)
+{
+ struct perf_session *session;
+ struct perf_data_file file = {
+ .path = path,
+ .mode = PERF_DATA_MODE_WRITE,
+ };
+
+ session = perf_session__new(&file, false, NULL);
+ TEST_ASSERT_VAL("can't get session", session);
+
+ session->evlist = perf_evlist__new_default();
+ TEST_ASSERT_VAL("can't get evlist", session->evlist);
+
+ perf_header__set_feat(&session->header, HEADER_CPU_TOPOLOGY);
+ perf_header__set_feat(&session->header, HEADER_NRCPUS);
+
+ session->header.data_size += DATA_SIZE;
+
+ TEST_ASSERT_VAL("failed to write header",
+ !perf_session__write_header(session, session->evlist, file.fd, true));
+
+ perf_session__delete(session);
+
+ return 0;
+}
+
+static int check_cpu_topology(char *path, struct cpu_map *map)
+{
+ struct perf_session *session;
+ struct perf_data_file file = {
+ .path = path,
+ .mode = PERF_DATA_MODE_READ,
+ };
+ int i;
+
+ session = perf_session__new(&file, false, NULL);
+ TEST_ASSERT_VAL("can't get session", session);
+
+ for (i = 0; i < session->header.env.nr_cpus_online; i++) {
+ pr_debug("CPU %d, core %d, socket %d\n", i,
+ session->header.env.cpu[i].core_id,
+ session->header.env.cpu[i].socket_id);
+ }
+
+ for (i = 0; i < map->nr; i++) {
+ TEST_ASSERT_VAL("Core ID doesn't match",
+ (session->header.env.cpu[map->map[i]].core_id == (cpu_map__get_core(map, i) & 0xffff)));
+
+ TEST_ASSERT_VAL("Socket ID doesn't match",
+ (session->header.env.cpu[map->map[i]].socket_id == cpu_map__get_socket(map, i)));
+ }
+
+ perf_session__delete(session);
+
+ return 0;
+}
+
+int test_session_topology(void)
+{
+ char path[PATH_MAX];
+ struct cpu_map *map;
+ int ret = -1;
+
+ TEST_ASSERT_VAL("can't get templ file", !get_temp(path));
+
+ pr_debug("templ file: %s\n", path);
+
+ if (session_write_header(path))
+ goto free_path;
+
+ map = cpu_map__new(NULL);
+ if (map == NULL) {
+ pr_debug("failed to get system cpumap\n");
+ goto free_path;
+ }
+
+ if (check_cpu_topology(path, map))
+ goto free_map;
+ ret = 0;
+
+free_map:
+ cpu_map__put(map);
+free_path:
+ unlink(path);
+ return ret;
+}
--
2.1.0
^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH 10/15] perf tools: Add processor socket info to hist_entry and addr_location
2015-09-05 1:06 [GIT PULL 00/15] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (8 preceding siblings ...)
2015-09-05 1:06 ` [PATCH 09/15] perf test: Add entry to test cpu topology Arnaldo Carvalho de Melo
@ 2015-09-05 1:06 ` Arnaldo Carvalho de Melo
2015-09-05 1:06 ` [PATCH 11/15] perf tools: Introduce new sort type "socket" for the processor socket Arnaldo Carvalho de Melo
` (5 subsequent siblings)
15 siblings, 0 replies; 51+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-09-05 1:06 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Kan Liang, Adrian Hunter, Andi Kleen, Jiri Olsa,
Namhyung Kim, Stephane Eranian, Arnaldo Carvalho de Melo
From: Kan Liang <kan.liang@intel.com>
Add processor socket id info in hist_entry and addr_location.
Finor 'perf report', the socket id info is from perf.data.
For others, the socket id info is from current system.
Signed-off-by: Kan Liang <kan.liang@intel.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/1441377946-44429-1-git-send-email-kan.liang@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/builtin-report.c | 4 ++++
tools/perf/util/event.c | 1 +
tools/perf/util/hist.c | 1 +
tools/perf/util/sort.h | 1 +
tools/perf/util/symbol.h | 1 +
5 files changed, 8 insertions(+)
diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
index 62b285e32aa5..affd70d064bc 100644
--- a/tools/perf/builtin-report.c
+++ b/tools/perf/builtin-report.c
@@ -149,6 +149,7 @@ static int process_sample_event(struct perf_tool *tool,
.add_entry_cb = hist_iter__report_callback,
};
int ret = 0;
+ struct perf_env *env = evsel->evlist->env;
if (perf_event__preprocess_sample(event, machine, &al, sample) < 0) {
pr_debug("problem processing %d event, skipping it.\n",
@@ -156,6 +157,9 @@ static int process_sample_event(struct perf_tool *tool,
return -1;
}
+ /* read socket id from perf.data for perf report */
+ al.socket = env->cpu[al.cpu].socket_id;
+
if (rep->hide_unresolved && al.sym == NULL)
goto out_put;
diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c
index 7ff61274ed57..0bf8c9889fc0 100644
--- a/tools/perf/util/event.c
+++ b/tools/perf/util/event.c
@@ -1021,6 +1021,7 @@ int perf_event__preprocess_sample(const union perf_event *event,
al->sym = NULL;
al->cpu = sample->cpu;
+ al->socket = cpu_map__get_socket_id(al->cpu);
if (al->map) {
struct dso *dso = al->map->dso;
diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
index 08b6cd945f1e..80c4683b3192 100644
--- a/tools/perf/util/hist.c
+++ b/tools/perf/util/hist.c
@@ -452,6 +452,7 @@ struct hist_entry *__hists__add_entry(struct hists *hists,
.map = al->map,
.sym = al->sym,
},
+ .socket = al->socket,
.cpu = al->cpu,
.cpumode = al->cpumode,
.ip = al->addr,
diff --git a/tools/perf/util/sort.h b/tools/perf/util/sort.h
index 3c2a399f8f5b..7cf1cf7d2406 100644
--- a/tools/perf/util/sort.h
+++ b/tools/perf/util/sort.h
@@ -90,6 +90,7 @@ struct hist_entry {
struct comm *comm;
u64 ip;
u64 transaction;
+ s32 socket;
s32 cpu;
u8 cpumode;
diff --git a/tools/perf/util/symbol.h b/tools/perf/util/symbol.h
index 440ba8ae888f..40073c60b83d 100644
--- a/tools/perf/util/symbol.h
+++ b/tools/perf/util/symbol.h
@@ -191,6 +191,7 @@ struct addr_location {
u8 filtered;
u8 cpumode;
s32 cpu;
+ s32 socket;
};
struct symsrc {
--
2.1.0
^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH 11/15] perf tools: Introduce new sort type "socket" for the processor socket
2015-09-05 1:06 [GIT PULL 00/15] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (9 preceding siblings ...)
2015-09-05 1:06 ` [PATCH 10/15] perf tools: Add processor socket info to hist_entry and addr_location Arnaldo Carvalho de Melo
@ 2015-09-05 1:06 ` Arnaldo Carvalho de Melo
2015-09-05 1:06 ` [PATCH 12/15] perf report: Introduce --socket-filter option Arnaldo Carvalho de Melo
` (4 subsequent siblings)
15 siblings, 0 replies; 51+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-09-05 1:06 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Kan Liang, Adrian Hunter, Andi Kleen, Jiri Olsa,
Namhyung Kim, Stephane Eranian, Arnaldo Carvalho de Melo
From: Kan Liang <kan.liang@intel.com>
This patch enable perf report to sort by processor socket:
$ perf report --stdio --sort socket,comm,dso,symbol
# To display the perf.data header info, please use --header/--header-only options.
#
# Total Lost Samples: 0
#
# Samples: 686 of event 'cycles'
# Event count (approx.): 349215462
#
# Overhead SOCKET Command Shared Object Symbol
# ........ ...... ....... ................ ............................
#
97.05% 000 test test [.] plusB_c
0.98% 000 test test [.] plusA_c
0.93% 001 perf [kernel.vmlinux] [k] smp_call_function_single
0.19% 001 perf [kernel.vmlinux] [k] page_fault
0.19% 001 swapper [kernel.vmlinux] [k] pm_qos_request
0.16% 000 test [kernel.vmlinux] [k] add_mm_counter_fast
Signed-off-by: Kan Liang <kan.liang@intel.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/1441377946-44429-2-git-send-email-kan.liang@intel.com
[ Fix column calculation, un-allcapsify column header ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/Documentation/perf-report.txt | 3 ++-
tools/perf/util/hist.c | 1 +
tools/perf/util/hist.h | 1 +
tools/perf/util/sort.c | 22 ++++++++++++++++++++++
tools/perf/util/sort.h | 1 +
5 files changed, 27 insertions(+), 1 deletion(-)
diff --git a/tools/perf/Documentation/perf-report.txt b/tools/perf/Documentation/perf-report.txt
index 9c7981bfddad..92361a7771f4 100644
--- a/tools/perf/Documentation/perf-report.txt
+++ b/tools/perf/Documentation/perf-report.txt
@@ -68,7 +68,7 @@ OPTIONS
--sort=::
Sort histogram entries by given key(s) - multiple keys can be specified
in CSV format. Following sort keys are available:
- pid, comm, dso, symbol, parent, cpu, srcline, weight, local_weight.
+ pid, comm, dso, symbol, parent, cpu, socket, srcline, weight, local_weight.
Each key has following meaning:
@@ -79,6 +79,7 @@ OPTIONS
- parent: name of function matched to the parent regex filter. Unmatched
entries are displayed as "[other]".
- cpu: cpu number the task ran at the time of sample
+ - socket: processor socket number the task ran at the time of sample
- srcline: filename and line number executed at the time of sample. The
DWARF debugging info must be provided.
- srcfile: file name of the source file of the same. Requires dwarf
diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
index 80c4683b3192..b5440a5b5240 100644
--- a/tools/perf/util/hist.c
+++ b/tools/perf/util/hist.c
@@ -144,6 +144,7 @@ void hists__calc_col_len(struct hists *hists, struct hist_entry *h)
hists__set_unres_dso_col_len(hists, HISTC_MEM_DADDR_DSO);
}
+ hists__new_col_len(hists, HISTC_SOCKET, 6);
hists__new_col_len(hists, HISTC_MEM_LOCKED, 6);
hists__new_col_len(hists, HISTC_MEM_TLB, 22);
hists__new_col_len(hists, HISTC_MEM_SNOOP, 12);
diff --git a/tools/perf/util/hist.h b/tools/perf/util/hist.h
index de6d58e7f0d5..5d04d28eedd7 100644
--- a/tools/perf/util/hist.h
+++ b/tools/perf/util/hist.h
@@ -29,6 +29,7 @@ enum hist_column {
HISTC_COMM,
HISTC_PARENT,
HISTC_CPU,
+ HISTC_SOCKET,
HISTC_SRCLINE,
HISTC_SRCFILE,
HISTC_MISPREDICT,
diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c
index a97bceeac0e7..5e4ed1779f6f 100644
--- a/tools/perf/util/sort.c
+++ b/tools/perf/util/sort.c
@@ -421,6 +421,27 @@ struct sort_entry sort_cpu = {
.se_width_idx = HISTC_CPU,
};
+/* --sort socket */
+
+static int64_t
+sort__socket_cmp(struct hist_entry *left, struct hist_entry *right)
+{
+ return right->socket - left->socket;
+}
+
+static int hist_entry__socket_snprintf(struct hist_entry *he, char *bf,
+ size_t size, unsigned int width)
+{
+ return repsep_snprintf(bf, size, "%*.*d", width, width-3, he->socket);
+}
+
+struct sort_entry sort_socket = {
+ .se_header = "Socket",
+ .se_cmp = sort__socket_cmp,
+ .se_snprintf = hist_entry__socket_snprintf,
+ .se_width_idx = HISTC_SOCKET,
+};
+
/* sort keys for branch stacks */
static int64_t
@@ -1248,6 +1269,7 @@ static struct sort_dimension common_sort_dimensions[] = {
DIM(SORT_SYM, "symbol", sort_sym),
DIM(SORT_PARENT, "parent", sort_parent),
DIM(SORT_CPU, "cpu", sort_cpu),
+ DIM(SORT_SOCKET, "socket", sort_socket),
DIM(SORT_SRCLINE, "srcline", sort_srcline),
DIM(SORT_SRCFILE, "srcfile", sort_srcfile),
DIM(SORT_LOCAL_WEIGHT, "local_weight", sort_local_weight),
diff --git a/tools/perf/util/sort.h b/tools/perf/util/sort.h
index 7cf1cf7d2406..654ac8a2c565 100644
--- a/tools/perf/util/sort.h
+++ b/tools/perf/util/sort.h
@@ -173,6 +173,7 @@ enum sort_type {
SORT_SYM,
SORT_PARENT,
SORT_CPU,
+ SORT_SOCKET,
SORT_SRCLINE,
SORT_SRCFILE,
SORT_LOCAL_WEIGHT,
--
2.1.0
^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH 12/15] perf report: Introduce --socket-filter option
2015-09-05 1:06 [GIT PULL 00/15] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (10 preceding siblings ...)
2015-09-05 1:06 ` [PATCH 11/15] perf tools: Introduce new sort type "socket" for the processor socket Arnaldo Carvalho de Melo
@ 2015-09-05 1:06 ` Arnaldo Carvalho de Melo
2015-09-05 1:06 ` [PATCH 13/15] perf hists browser: Zoom in/out for processor socket Arnaldo Carvalho de Melo
` (3 subsequent siblings)
15 siblings, 0 replies; 51+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-09-05 1:06 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Kan Liang, Adrian Hunter, Andi Kleen, Jiri Olsa,
Namhyung Kim, Stephane Eranian, Arnaldo Carvalho de Melo
From: Kan Liang <kan.liang@intel.com>
Introduce --socket-filter option for 'perf report' to only show entries
for a processor socket that match this filter.
$ perf report --socket-filter 1 --stdio
# To display the perf.data header info, please use --header/--header-only options.
#
# Total Lost Samples: 0
#
# Samples: 752 of event 'cycles'
# Event count (approx.): 350995599
# Processor Socket: 1
#
# Overhead Command Shared Object Symbol
# ........ ......... ................ .................................
#
97.02% test test [.] plusB_c
0.97% test test [.] plusA_c
0.23% swapper [kernel.vmlinux] [k] acpi_idle_do_entry
0.09% rcu_sched [kernel.vmlinux] [k] dyntick_save_progress_counter
0.01% swapper [kernel.vmlinux] [k] task_waking_fair
0.00% swapper [kernel.vmlinux] [k] run_timer_softirq
Signed-off-by: Kan Liang <kan.liang@intel.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/1441377946-44429-3-git-send-email-kan.liang@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/Documentation/perf-report.txt | 3 +++
tools/perf/builtin-report.c | 11 +++++++++++
tools/perf/ui/browsers/hists.c | 4 ++++
tools/perf/util/hist.c | 16 ++++++++++++++++
tools/perf/util/hist.h | 4 +++-
5 files changed, 37 insertions(+), 1 deletion(-)
diff --git a/tools/perf/Documentation/perf-report.txt b/tools/perf/Documentation/perf-report.txt
index 92361a7771f4..b941d5e07e28 100644
--- a/tools/perf/Documentation/perf-report.txt
+++ b/tools/perf/Documentation/perf-report.txt
@@ -350,6 +350,9 @@ include::itrace.txt[]
This option extends the perf report to show reference callgraphs,
which collected by reference event, in no callgraph event.
+--socket-filter::
+ Only report the samples on the processor socket that match with this filter
+
include::callchain-overhead-calculation.txt[]
SEE ALSO
diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
index affd70d064bc..4b432453922f 100644
--- a/tools/perf/builtin-report.c
+++ b/tools/perf/builtin-report.c
@@ -62,6 +62,7 @@ struct report {
float min_percent;
u64 nr_entries;
u64 queue_size;
+ int socket_filter;
DECLARE_BITMAP(cpu_bitmap, MAX_NR_CPUS);
};
@@ -290,6 +291,7 @@ static size_t hists__fprintf_nr_sample_events(struct hists *hists, struct report
struct perf_evsel *evsel = hists_to_evsel(hists);
char buf[512];
size_t size = sizeof(buf);
+ int socket = hists->socket_filter;
if (symbol_conf.filter_relative) {
nr_samples = hists->stats.nr_non_filtered_samples;
@@ -330,6 +332,10 @@ static size_t hists__fprintf_nr_sample_events(struct hists *hists, struct report
ret += fprintf(fp, "\n# Sort order : %s", sort_order ? : default_mem_sort_order);
} else
ret += fprintf(fp, "\n# Event count (approx.): %" PRIu64, nr_events);
+
+ if (socket > -1)
+ ret += fprintf(fp, "\n# Processor Socket: %d", socket);
+
return ret + fprintf(fp, "\n#\n");
}
@@ -454,6 +460,8 @@ static void report__collapse_hists(struct report *rep)
if (pos->idx == 0)
hists->symbol_filter_str = rep->symbol_filter_str;
+ hists->socket_filter = rep->socket_filter;
+
hists__collapse_resort(hists, &prog);
/* Non-group events are considered as leader */
@@ -639,6 +647,7 @@ int cmd_report(int argc, const char **argv, const char *prefix __maybe_unused)
},
.max_stack = PERF_MAX_STACK_DEPTH,
.pretty_printing_style = "normal",
+ .socket_filter = -1,
};
const struct option options[] = {
OPT_STRING('i', "input", &input_name, "file",
@@ -751,6 +760,8 @@ int cmd_report(int argc, const char **argv, const char *prefix __maybe_unused)
"Show full source file name path for source lines"),
OPT_BOOLEAN(0, "show-ref-call-graph", &symbol_conf.show_ref_callgraph,
"Show callgraph from reference event"),
+ OPT_INTEGER(0, "socket-filter", &report.socket_filter,
+ "only show processor socket that match with this filter"),
OPT_END()
};
struct perf_data_file file = {
diff --git a/tools/perf/ui/browsers/hists.c b/tools/perf/ui/browsers/hists.c
index cf86f2d3a5e7..457f24c8fbe0 100644
--- a/tools/perf/ui/browsers/hists.c
+++ b/tools/perf/ui/browsers/hists.c
@@ -1261,6 +1261,7 @@ static int hists__browser_title(struct hists *hists,
int printed;
const struct dso *dso = hists->dso_filter;
const struct thread *thread = hists->thread_filter;
+ int socket = hists->socket_filter;
unsigned long nr_samples = hists->stats.nr_events[PERF_RECORD_SAMPLE];
u64 nr_events = hists->stats.total_period;
struct perf_evsel *evsel = hists_to_evsel(hists);
@@ -1314,6 +1315,9 @@ static int hists__browser_title(struct hists *hists,
if (dso)
printed += scnprintf(bf + printed, size - printed,
", DSO: %s", dso->short_name);
+ if (socket > -1)
+ printed += scnprintf(bf + printed, size - printed,
+ ", Processor Socket: %d", socket);
if (!is_report_browser(hbt)) {
struct perf_top *top = hbt->arg;
diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
index b5440a5b5240..58687a10e03f 100644
--- a/tools/perf/util/hist.c
+++ b/tools/perf/util/hist.c
@@ -15,6 +15,8 @@ static bool hists__filter_entry_by_thread(struct hists *hists,
struct hist_entry *he);
static bool hists__filter_entry_by_symbol(struct hists *hists,
struct hist_entry *he);
+static bool hists__filter_entry_by_socket(struct hists *hists,
+ struct hist_entry *he);
u16 hists__col_len(struct hists *hists, enum hist_column col)
{
@@ -1026,6 +1028,7 @@ static void hists__apply_filters(struct hists *hists, struct hist_entry *he)
hists__filter_entry_by_dso(hists, he);
hists__filter_entry_by_thread(hists, he);
hists__filter_entry_by_symbol(hists, he);
+ hists__filter_entry_by_socket(hists, he);
}
void hists__collapse_resort(struct hists *hists, struct ui_progress *prog)
@@ -1294,6 +1297,18 @@ void hists__filter_by_symbol(struct hists *hists)
}
}
+static bool hists__filter_entry_by_socket(struct hists *hists,
+ struct hist_entry *he)
+{
+ if ((hists->socket_filter > -1) &&
+ (he->socket != hists->socket_filter)) {
+ he->filtered |= (1 << HIST_FILTER__SOCKET);
+ return true;
+ }
+
+ return false;
+}
+
void events_stats__inc(struct events_stats *stats, u32 type)
{
++stats->nr_events[0];
@@ -1519,6 +1534,7 @@ static int hists_evsel__init(struct perf_evsel *evsel)
hists->entries_collapsed = RB_ROOT;
hists->entries = RB_ROOT;
pthread_mutex_init(&hists->lock, NULL);
+ hists->socket_filter = -1;
return 0;
}
diff --git a/tools/perf/util/hist.h b/tools/perf/util/hist.h
index 5d04d28eedd7..ef682f210923 100644
--- a/tools/perf/util/hist.h
+++ b/tools/perf/util/hist.h
@@ -20,6 +20,7 @@ enum hist_filter {
HIST_FILTER__SYMBOL,
HIST_FILTER__GUEST,
HIST_FILTER__HOST,
+ HIST_FILTER__SOCKET,
};
enum hist_column {
@@ -71,6 +72,7 @@ struct hists {
struct events_stats stats;
u64 event_stream;
u16 col_len[HISTC_NR_COLS];
+ int socket_filter;
};
struct hist_entry_iter;
@@ -149,7 +151,7 @@ void hists__filter_by_symbol(struct hists *hists);
static inline bool hists__has_filter(struct hists *hists)
{
return hists->thread_filter || hists->dso_filter ||
- hists->symbol_filter_str;
+ hists->symbol_filter_str || (hists->socket_filter > -1);
}
u16 hists__col_len(struct hists *hists, enum hist_column col);
--
2.1.0
^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH 13/15] perf hists browser: Zoom in/out for processor socket
2015-09-05 1:06 [GIT PULL 00/15] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (11 preceding siblings ...)
2015-09-05 1:06 ` [PATCH 12/15] perf report: Introduce --socket-filter option Arnaldo Carvalho de Melo
@ 2015-09-05 1:06 ` Arnaldo Carvalho de Melo
2015-09-05 1:06 ` [PATCH 14/15] perf test: Add entry for hists socket filter Arnaldo Carvalho de Melo
` (2 subsequent siblings)
15 siblings, 0 replies; 51+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-09-05 1:06 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Kan Liang, Adrian Hunter, Andi Kleen, Jiri Olsa,
Namhyung Kim, Stephane Eranian, Arnaldo Carvalho de Melo
From: Kan Liang <kan.liang@intel.com>
Currently, users can zoom in/out for threads and dso in 'perf top' and
'perf report'.
This patch extends it for the processor sockets.
'S' is the short key to zoom into current Processor Socket.
Signed-off-by: Kan Liang <kan.liang@intel.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/1441377946-44429-4-git-send-email-kan.liang@intel.com
[ Made it elide the Socket column when zooming into it, just like with the other zoom ops,
make it use browser->pstack, to unzoom level by level ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/ui/browsers/hists.c | 55 +++++++++++++++++++++++++++++++++++++++---
tools/perf/util/hist.c | 19 +++++++++++++++
tools/perf/util/hist.h | 1 +
3 files changed, 71 insertions(+), 4 deletions(-)
diff --git a/tools/perf/ui/browsers/hists.c b/tools/perf/ui/browsers/hists.c
index 457f24c8fbe0..e4fd40f72b4a 100644
--- a/tools/perf/ui/browsers/hists.c
+++ b/tools/perf/ui/browsers/hists.c
@@ -1429,6 +1429,7 @@ struct popup_action {
struct thread *thread;
struct dso *dso;
struct map_symbol ms;
+ int socket;
int (*fn)(struct hist_browser *browser, struct popup_action *act);
};
@@ -1676,6 +1677,41 @@ add_exit_opt(struct hist_browser *browser __maybe_unused,
return 1;
}
+static int
+do_zoom_socket(struct hist_browser *browser, struct popup_action *act)
+{
+ if (browser->hists->socket_filter > -1) {
+ pstack__remove(browser->pstack, &browser->hists->socket_filter);
+ browser->hists->socket_filter = -1;
+ perf_hpp__set_elide(HISTC_SOCKET, false);
+ } else {
+ browser->hists->socket_filter = act->socket;
+ perf_hpp__set_elide(HISTC_SOCKET, true);
+ pstack__push(browser->pstack, &browser->hists->socket_filter);
+ }
+
+ hists__filter_by_socket(browser->hists);
+ hist_browser__reset(browser);
+ return 0;
+}
+
+static int
+add_socket_opt(struct hist_browser *browser, struct popup_action *act,
+ char **optstr, int socket)
+{
+ if (socket < 0)
+ return 0;
+
+ if (asprintf(optstr, "Zoom %s Processor Socket %d",
+ (browser->hists->socket_filter > -1) ? "out of" : "into",
+ socket) < 0)
+ return 0;
+
+ act->socket = socket;
+ act->fn = do_zoom_socket;
+ return 1;
+}
+
static void hist_browser__update_nr_entries(struct hist_browser *hb)
{
u64 nr_entries = 0;
@@ -1729,6 +1765,7 @@ static int perf_evsel__hists_browse(struct perf_evsel *evsel, int nr_events,
"E Expand all callchains\n" \
"F Toggle percentage of filtered entries\n" \
"H Display column headers\n" \
+ "S Zoom into current Processor Socket\n" \
/* help messages are sorted by lexical order of the hotkey */
const char report_help[] = HIST_BROWSER_HELP_COMMON
@@ -1759,7 +1796,7 @@ static int perf_evsel__hists_browse(struct perf_evsel *evsel, int nr_events,
hist_browser__update_nr_entries(browser);
}
- browser->pstack = pstack__new(2);
+ browser->pstack = pstack__new(3);
if (browser->pstack == NULL)
goto out;
@@ -1778,6 +1815,7 @@ static int perf_evsel__hists_browse(struct perf_evsel *evsel, int nr_events,
struct thread *thread = NULL;
struct dso *dso = NULL;
int choice = 0;
+ int socket = -1;
nr_options = 0;
@@ -1786,6 +1824,7 @@ static int perf_evsel__hists_browse(struct perf_evsel *evsel, int nr_events,
if (browser->he_selection != NULL) {
thread = hist_browser__selected_thread(browser);
dso = browser->selection->map ? browser->selection->map->dso : NULL;
+ socket = browser->he_selection->socket;
}
switch (key) {
case K_TAB:
@@ -1828,6 +1867,10 @@ static int perf_evsel__hists_browse(struct perf_evsel *evsel, int nr_events,
actions->thread = thread;
do_zoom_thread(browser, actions);
continue;
+ case 'S':
+ actions->socket = socket;
+ do_zoom_socket(browser, actions);
+ continue;
case '/':
if (ui_browser__input_window("Symbol to show",
"Please enter the name of symbol you want to see",
@@ -1903,9 +1946,11 @@ static int perf_evsel__hists_browse(struct perf_evsel *evsel, int nr_events,
* Ditto for thread below.
*/
do_zoom_dso(browser, actions);
- }
- if (top == &browser->hists->thread_filter)
+ } else if (top == &browser->hists->thread_filter) {
do_zoom_thread(browser, actions);
+ } else if (top == &browser->hists->socket_filter) {
+ do_zoom_socket(browser, actions);
+ }
continue;
}
case 'q':
@@ -1973,7 +2018,9 @@ skip_annotation:
nr_options += add_map_opt(browser, &actions[nr_options],
&options[nr_options],
browser->selection->map);
-
+ nr_options += add_socket_opt(browser, &actions[nr_options],
+ &options[nr_options],
+ socket);
/* perf script support */
if (browser->he_selection) {
nr_options += add_script_opt(browser,
diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
index 58687a10e03f..67b48616ab31 100644
--- a/tools/perf/util/hist.c
+++ b/tools/perf/util/hist.c
@@ -1309,6 +1309,25 @@ static bool hists__filter_entry_by_socket(struct hists *hists,
return false;
}
+void hists__filter_by_socket(struct hists *hists)
+{
+ struct rb_node *nd;
+
+ hists->stats.nr_non_filtered_samples = 0;
+
+ hists__reset_filter_stats(hists);
+ hists__reset_col_len(hists);
+
+ for (nd = rb_first(&hists->entries); nd; nd = rb_next(nd)) {
+ struct hist_entry *h = rb_entry(nd, struct hist_entry, rb_node);
+
+ if (hists__filter_entry_by_socket(hists, h))
+ continue;
+
+ hists__remove_entry_filter(hists, h, HIST_FILTER__SOCKET);
+ }
+}
+
void events_stats__inc(struct events_stats *stats, u32 type)
{
++stats->nr_events[0];
diff --git a/tools/perf/util/hist.h b/tools/perf/util/hist.h
index ef682f210923..4d6aa1dbdaee 100644
--- a/tools/perf/util/hist.h
+++ b/tools/perf/util/hist.h
@@ -147,6 +147,7 @@ size_t perf_evlist__fprintf_nr_events(struct perf_evlist *evlist, FILE *fp);
void hists__filter_by_dso(struct hists *hists);
void hists__filter_by_thread(struct hists *hists);
void hists__filter_by_symbol(struct hists *hists);
+void hists__filter_by_socket(struct hists *hists);
static inline bool hists__has_filter(struct hists *hists)
{
--
2.1.0
^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH 14/15] perf test: Add entry for hists socket filter
2015-09-05 1:06 [GIT PULL 00/15] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (12 preceding siblings ...)
2015-09-05 1:06 ` [PATCH 13/15] perf hists browser: Zoom in/out for processor socket Arnaldo Carvalho de Melo
@ 2015-09-05 1:06 ` Arnaldo Carvalho de Melo
2015-09-05 1:06 ` [PATCH 15/15] perf stat: Move sw clock metrics printout to stat-shadow Arnaldo Carvalho de Melo
2015-09-08 14:09 ` [GIT PULL 00/15] perf/core improvements and fixes Arnaldo Carvalho de Melo
15 siblings, 0 replies; 51+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-09-05 1:06 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Kan Liang, Adrian Hunter, Andi Kleen, Jiri Olsa,
Namhyung Kim, Stephane Eranian, Arnaldo Carvalho de Melo
From: Kan Liang <kan.liang@intel.com>
Add test case for hists socket filter.
Signed-off-by: Kan Liang <kan.liang@intel.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/1441377946-44429-5-git-send-email-kan.liang@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/tests/hists_filter.c | 55 +++++++++++++++++++++++++++++++++--------
1 file changed, 45 insertions(+), 10 deletions(-)
diff --git a/tools/perf/tests/hists_filter.c b/tools/perf/tests/hists_filter.c
index ce48775e6ada..818acf875dd0 100644
--- a/tools/perf/tests/hists_filter.c
+++ b/tools/perf/tests/hists_filter.c
@@ -16,30 +16,31 @@ struct sample {
struct thread *thread;
struct map *map;
struct symbol *sym;
+ int socket;
};
/* For the numbers, see hists_common.c */
static struct sample fake_samples[] = {
/* perf [kernel] schedule() */
- { .pid = FAKE_PID_PERF1, .ip = FAKE_IP_KERNEL_SCHEDULE, },
+ { .pid = FAKE_PID_PERF1, .ip = FAKE_IP_KERNEL_SCHEDULE, .socket = 0 },
/* perf [perf] main() */
- { .pid = FAKE_PID_PERF1, .ip = FAKE_IP_PERF_MAIN, },
+ { .pid = FAKE_PID_PERF1, .ip = FAKE_IP_PERF_MAIN, .socket = 0 },
/* perf [libc] malloc() */
- { .pid = FAKE_PID_PERF1, .ip = FAKE_IP_LIBC_MALLOC, },
+ { .pid = FAKE_PID_PERF1, .ip = FAKE_IP_LIBC_MALLOC, .socket = 0 },
/* perf [perf] main() */
- { .pid = FAKE_PID_PERF2, .ip = FAKE_IP_PERF_MAIN, }, /* will be merged */
+ { .pid = FAKE_PID_PERF2, .ip = FAKE_IP_PERF_MAIN, .socket = 0 }, /* will be merged */
/* perf [perf] cmd_record() */
- { .pid = FAKE_PID_PERF2, .ip = FAKE_IP_PERF_CMD_RECORD, },
+ { .pid = FAKE_PID_PERF2, .ip = FAKE_IP_PERF_CMD_RECORD, .socket = 1 },
/* perf [kernel] page_fault() */
- { .pid = FAKE_PID_PERF2, .ip = FAKE_IP_KERNEL_PAGE_FAULT, },
+ { .pid = FAKE_PID_PERF2, .ip = FAKE_IP_KERNEL_PAGE_FAULT, .socket = 1 },
/* bash [bash] main() */
- { .pid = FAKE_PID_BASH, .ip = FAKE_IP_BASH_MAIN, },
+ { .pid = FAKE_PID_BASH, .ip = FAKE_IP_BASH_MAIN, .socket = 2 },
/* bash [bash] xmalloc() */
- { .pid = FAKE_PID_BASH, .ip = FAKE_IP_BASH_XMALLOC, },
+ { .pid = FAKE_PID_BASH, .ip = FAKE_IP_BASH_XMALLOC, .socket = 2 },
/* bash [libc] malloc() */
- { .pid = FAKE_PID_BASH, .ip = FAKE_IP_LIBC_MALLOC, },
+ { .pid = FAKE_PID_BASH, .ip = FAKE_IP_LIBC_MALLOC, .socket = 3 },
/* bash [kernel] page_fault() */
- { .pid = FAKE_PID_BASH, .ip = FAKE_IP_KERNEL_PAGE_FAULT, },
+ { .pid = FAKE_PID_BASH, .ip = FAKE_IP_KERNEL_PAGE_FAULT, .socket = 3 },
};
static int add_hist_entries(struct perf_evlist *evlist,
@@ -83,6 +84,7 @@ static int add_hist_entries(struct perf_evlist *evlist,
&sample) < 0)
goto out;
+ al.socket = fake_samples[i].socket;
if (hist_entry_iter__add(&iter, &al,
PERF_MAX_STACK_DEPTH, NULL) < 0) {
addr_location__put(&al);
@@ -253,6 +255,39 @@ int test__hists_filter(void)
TEST_ASSERT_VAL("Unmatched total period for symbol filter",
hists->stats.total_non_filtered_period == 300);
+ /* remove symbol filter first */
+ hists->symbol_filter_str = NULL;
+ hists__filter_by_symbol(hists);
+
+ /* now applying socket filters */
+ hists->socket_filter = 2;
+ hists__filter_by_socket(hists);
+
+ if (verbose > 2) {
+ pr_info("Histogram for socket filters\n");
+ print_hists_out(hists);
+ }
+
+ /* normal stats should be invariant */
+ TEST_ASSERT_VAL("Invalid nr samples",
+ hists->stats.nr_events[PERF_RECORD_SAMPLE] == 10);
+ TEST_ASSERT_VAL("Invalid nr hist entries",
+ hists->nr_entries == 9);
+ TEST_ASSERT_VAL("Invalid total period",
+ hists->stats.total_period == 1000);
+
+ /* but filter stats are changed */
+ TEST_ASSERT_VAL("Unmatched nr samples for socket filter",
+ hists->stats.nr_non_filtered_samples == 2);
+ TEST_ASSERT_VAL("Unmatched nr hist entries for socket filter",
+ hists->nr_non_filtered_entries == 2);
+ TEST_ASSERT_VAL("Unmatched total period for socket filter",
+ hists->stats.total_non_filtered_period == 200);
+
+ /* remove socket filter first */
+ hists->socket_filter = -1;
+ hists__filter_by_socket(hists);
+
/* now applying all filters at once. */
hists->thread_filter = fake_samples[1].thread;
hists->dso_filter = fake_samples[1].map->dso;
--
2.1.0
^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH 15/15] perf stat: Move sw clock metrics printout to stat-shadow
2015-09-05 1:06 [GIT PULL 00/15] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (13 preceding siblings ...)
2015-09-05 1:06 ` [PATCH 14/15] perf test: Add entry for hists socket filter Arnaldo Carvalho de Melo
@ 2015-09-05 1:06 ` Arnaldo Carvalho de Melo
2015-09-08 14:09 ` [GIT PULL 00/15] perf/core improvements and fixes Arnaldo Carvalho de Melo
15 siblings, 0 replies; 51+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-09-05 1:06 UTC (permalink / raw)
To: Ingo Molnar; +Cc: linux-kernel, Andi Kleen, Arnaldo Carvalho de Melo
From: Andi Kleen <ak@linux.intel.com>
The sw clock metrics printing was missed in the earlier move to
stat-shadow of all the other metric printouts. Move it too.
Signed-off-by: Andi Kleen <ak@linux.intel.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Link: http://lkml.kernel.org/r/1441406717-1717-2-git-send-email-andi@firstfloor.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/builtin-stat.c | 9 ---------
tools/perf/util/stat-shadow.c | 3 +++
2 files changed, 3 insertions(+), 9 deletions(-)
diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index a96fb5c3bedb..77e578110194 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -510,15 +510,6 @@ static void nsec_printout(int id, int nr, struct perf_evsel *evsel, double avg)
if (evsel->cgrp)
fprintf(output, "%s%s", csv_sep, evsel->cgrp->name);
-
- if (csv_output || stat_config.interval)
- return;
-
- if (perf_evsel__match(evsel, SOFTWARE, SW_TASK_CLOCK))
- fprintf(output, " # %8.3f CPUs utilized ",
- avg / avg_stats(&walltime_nsecs_stats));
- else
- fprintf(output, " ");
}
static void abs_printout(int id, int nr, struct perf_evsel *evsel, double avg)
diff --git a/tools/perf/util/stat-shadow.c b/tools/perf/util/stat-shadow.c
index 2a5d8d7698ae..625ab3b10e41 100644
--- a/tools/perf/util/stat-shadow.c
+++ b/tools/perf/util/stat-shadow.c
@@ -413,6 +413,9 @@ void perf_stat__print_shadow_stats(FILE *out, struct perf_evsel *evsel,
ratio = total / avg;
fprintf(out, " # %8.0f cycles / elision ", ratio);
+ } else if (perf_evsel__match(evsel, SOFTWARE, SW_TASK_CLOCK) &&
+ (ratio = avg_stats(&walltime_nsecs_stats)) != 0) {
+ fprintf(out, " # %8.3f CPUs utilized ", avg / ratio);
} else if (runtime_nsecs_stats[cpu].n != 0) {
char unit = 'M';
--
2.1.0
^ permalink raw reply related [flat|nested] 51+ messages in thread
* Re: [GIT PULL 00/15] perf/core improvements and fixes
2015-09-05 1:06 [GIT PULL 00/15] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (14 preceding siblings ...)
2015-09-05 1:06 ` [PATCH 15/15] perf stat: Move sw clock metrics printout to stat-shadow Arnaldo Carvalho de Melo
@ 2015-09-08 14:09 ` Arnaldo Carvalho de Melo
2015-09-08 14:21 ` Ingo Molnar
15 siblings, 1 reply; 51+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-09-08 14:09 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: Ingo Molnar, linux-kernel, Adrian Hunter, Andi Kleen,
Corey Ashford, David Ahern, Frederic Weisbecker, Jan Stancek,
Jiri Olsa, Kan Liang, Matt Fleming, Namhyung Kim, Paul Mackerras,
Peter Zijlstra, Raphael Beamonte, Stephane Eranian,
Steven Rostedt
Em Fri, Sep 04, 2015 at 10:06:28PM -0300, Arnaldo Carvalho de Melo escreveu:
> Hi Ingo,
>
> Please consider pulling, this is on top of the previous pull request,
> perf-core-for-mingo.
Ingo, please do not pull this 'perf-core-for-mingo-2' tag, there were
some misunderstandings about the acks for "Move sw clock metrics
printout to stat-shadow" and Jiri and Andi are working that out.
I'll remove those patches and get a new perf-core-for-mingo-2
tag in place, before continuing today's batch, which possibly will be
available as 'perf-core-for-mingo-3'
What is in 'perf-core-for-mingo" should be Ok.
- Arnaldo
> - Arnaldo
>
> The following changes since commit cf2f33a4e54096f90652cca3511fd6a456ea5abe:
>
> perf trace: Add read/write to the file group (2015-09-04 13:22:06 -0300)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-2
>
> for you to fetch changes up to 0959e527b1593e662cb99639a587eac39ea1232d:
>
> perf stat: Move sw clock metrics printout to stat-shadow (2015-09-04 20:30:01 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> User visible:
>
> - Add 'socket' sort entry, to sort by the processor socket in
> 'perf top' and 'perf report' (Kan Liang)
>
> - Introduce --socket-filter to 'perf report', for filtering by
> processor socket (Kan Liang)
>
> - Add new "Zoom into Processor Socket" operation in the perf hists browser,
> used in 'perf top' and 'perf report' (Kan Liang)
>
> Infrastructure:
>
> - 'perf test' fixes for the object code reading entry (Jan Stancek)
>
> - Add processor socket and cpu topology 'perf test' entries (Kan Liang)
>
> - Move sw clock metrics printout to stat-shadow (Andi Kleen)
>
> - Switch to tracing_patch interface (Jiri Olsa)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Andi Kleen (1):
> perf stat: Move sw clock metrics printout to stat-shadow
>
> Jan Stancek (4):
> perf tests: Take into account address of each objdump line
> perf tests: Make objdump disassemble zero blocks
> perf tests: Stop reading if objdump output crossed sections
> perf tests: Print objdump/dso buffers if they don't match
>
> Jiri Olsa (4):
> tools lib api fs: Make tracing_path_strerror_open message generic
> tools lib api fs: Replace debugfs/tracefs objects interface with fs.c
> tools lib api fs: Remove debugfs, tracefs and findfs objects
> perf tools: Switch to tracing_path interface on appropriate places
>
> Kan Liang (6):
> perf test: Add entry to test cpu topology
> perf tools: Add processor socket info to hist_entry and addr_location
> perf tools: Introduce new sort type "socket" for the processor socket
> perf report: Introduce --socket-filter option
> perf hists browser: Zoom in/out for processor socket
> perf test: Add entry for hists socket filter
>
> tools/lib/api/fs/Build | 3 -
> tools/lib/api/fs/debugfs.c | 77 -------------------
> tools/lib/api/fs/debugfs.h | 23 ------
> tools/lib/api/fs/findfs.c | 63 ----------------
> tools/lib/api/fs/findfs.h | 23 ------
> tools/lib/api/fs/fs.c | 1 -
> tools/lib/api/fs/tracefs.c | 78 -------------------
> tools/lib/api/fs/tracefs.h | 21 ------
> tools/lib/api/fs/tracing_path.c | 35 +++++----
> tools/perf/Documentation/perf-report.txt | 6 +-
> tools/perf/builtin-kvm.c | 1 -
> tools/perf/builtin-probe.c | 1 -
> tools/perf/builtin-report.c | 15 ++++
> tools/perf/builtin-stat.c | 9 ---
> tools/perf/tests/Build | 1 +
> tools/perf/tests/builtin-test.c | 4 +
> tools/perf/tests/code-reading.c | 74 +++++++++++++++----
> tools/perf/tests/hists_filter.c | 55 +++++++++++---
> tools/perf/tests/openat-syscall-all-cpus.c | 10 +--
> tools/perf/tests/openat-syscall.c | 10 +--
> tools/perf/tests/parse-events.c | 19 +----
> tools/perf/tests/tests.h | 1 +
> tools/perf/tests/topology.c | 115 +++++++++++++++++++++++++++++
> tools/perf/ui/browsers/hists.c | 59 ++++++++++++++-
> tools/perf/util/event.c | 1 +
> tools/perf/util/evsel.c | 2 +-
> tools/perf/util/hist.c | 37 ++++++++++
> tools/perf/util/hist.h | 6 +-
> tools/perf/util/probe-event.c | 5 +-
> tools/perf/util/probe-file.c | 15 +---
> tools/perf/util/sort.c | 22 ++++++
> tools/perf/util/sort.h | 2 +
> tools/perf/util/stat-shadow.c | 3 +
> tools/perf/util/symbol.h | 1 +
> tools/perf/util/util.h | 3 +-
> 35 files changed, 409 insertions(+), 392 deletions(-)
> delete mode 100644 tools/lib/api/fs/debugfs.c
> delete mode 100644 tools/lib/api/fs/debugfs.h
> delete mode 100644 tools/lib/api/fs/findfs.c
> delete mode 100644 tools/lib/api/fs/findfs.h
> delete mode 100644 tools/lib/api/fs/tracefs.c
> delete mode 100644 tools/lib/api/fs/tracefs.h
> create mode 100644 tools/perf/tests/topology.c
^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: [GIT PULL 00/15] perf/core improvements and fixes
2015-09-08 14:09 ` [GIT PULL 00/15] perf/core improvements and fixes Arnaldo Carvalho de Melo
@ 2015-09-08 14:21 ` Ingo Molnar
2015-09-08 14:30 ` Arnaldo Carvalho de Melo
0 siblings, 1 reply; 51+ messages in thread
From: Ingo Molnar @ 2015-09-08 14:21 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: Arnaldo Carvalho de Melo, linux-kernel, Adrian Hunter,
Andi Kleen, Corey Ashford, David Ahern, Frederic Weisbecker,
Jan Stancek, Jiri Olsa, Kan Liang, Matt Fleming, Namhyung Kim,
Paul Mackerras, Peter Zijlstra, Raphael Beamonte,
Stephane Eranian, Steven Rostedt
* Arnaldo Carvalho de Melo <acme@redhat.com> wrote:
> Em Fri, Sep 04, 2015 at 10:06:28PM -0300, Arnaldo Carvalho de Melo escreveu:
> > Hi Ingo,
> >
> > Please consider pulling, this is on top of the previous pull request,
> > perf-core-for-mingo.
>
> Ingo, please do not pull this 'perf-core-for-mingo-2' tag, there were
> some misunderstandings about the acks for "Move sw clock metrics
> printout to stat-shadow" and Jiri and Andi are working that out.
>
> I'll remove those patches and get a new perf-core-for-mingo-2
> tag in place, before continuing today's batch, which possibly will be
> available as 'perf-core-for-mingo-3'
>
> What is in 'perf-core-for-mingo" should be Ok.
Ok!
Thanks,
Ingo
^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: [GIT PULL 00/15] perf/core improvements and fixes
2015-09-08 14:21 ` Ingo Molnar
@ 2015-09-08 14:30 ` Arnaldo Carvalho de Melo
2015-09-14 8:41 ` Ingo Molnar
0 siblings, 1 reply; 51+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-09-08 14:30 UTC (permalink / raw)
To: Ingo Molnar
Cc: Arnaldo Carvalho de Melo, linux-kernel, Adrian Hunter,
Andi Kleen, Corey Ashford, David Ahern, Frederic Weisbecker,
Jan Stancek, Jiri Olsa, Kan Liang, Matt Fleming, Namhyung Kim,
Paul Mackerras, Peter Zijlstra, Raphael Beamonte,
Stephane Eranian, Steven Rostedt
Em Tue, Sep 08, 2015 at 04:21:47PM +0200, Ingo Molnar escreveu:
>
> * Arnaldo Carvalho de Melo <acme@redhat.com> wrote:
>
> > Em Fri, Sep 04, 2015 at 10:06:28PM -0300, Arnaldo Carvalho de Melo escreveu:
> > > Hi Ingo,
> > >
> > > Please consider pulling, this is on top of the previous pull request,
> > > perf-core-for-mingo.
> >
> > Ingo, please do not pull this 'perf-core-for-mingo-2' tag, there were
> > some misunderstandings about the acks for "Move sw clock metrics
> > printout to stat-shadow" and Jiri and Andi are working that out.
> >
> > I'll remove those patches and get a new perf-core-for-mingo-2
> > tag in place, before continuing today's batch, which possibly will be
> > available as 'perf-core-for-mingo-3'
> >
> > What is in 'perf-core-for-mingo" should be Ok.
>
> Ok!
Thanks! I have already removed that problematic changeset and resigned
the 'perf-core-for-mingo-2' tag, same contents modulo that cset.
- Arnaldo
^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: [GIT PULL 00/15] perf/core improvements and fixes
2015-09-08 14:30 ` Arnaldo Carvalho de Melo
@ 2015-09-14 8:41 ` Ingo Molnar
2015-09-14 9:07 ` Wangnan (F)
0 siblings, 1 reply; 51+ messages in thread
From: Ingo Molnar @ 2015-09-14 8:41 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: Arnaldo Carvalho de Melo, linux-kernel, Adrian Hunter,
Andi Kleen, Corey Ashford, David Ahern, Frederic Weisbecker,
Jan Stancek, Jiri Olsa, Kan Liang, Matt Fleming, Namhyung Kim,
Paul Mackerras, Peter Zijlstra, Raphael Beamonte,
Stephane Eranian, Steven Rostedt
* Arnaldo Carvalho de Melo <acme@redhat.com> wrote:
> Em Tue, Sep 08, 2015 at 04:21:47PM +0200, Ingo Molnar escreveu:
> >
> > * Arnaldo Carvalho de Melo <acme@redhat.com> wrote:
> >
> > > Em Fri, Sep 04, 2015 at 10:06:28PM -0300, Arnaldo Carvalho de Melo escreveu:
> > > > Hi Ingo,
> > > >
> > > > Please consider pulling, this is on top of the previous pull request,
> > > > perf-core-for-mingo.
> > >
> > > Ingo, please do not pull this 'perf-core-for-mingo-2' tag, there were
> > > some misunderstandings about the acks for "Move sw clock metrics
> > > printout to stat-shadow" and Jiri and Andi are working that out.
> > >
> > > I'll remove those patches and get a new perf-core-for-mingo-2
> > > tag in place, before continuing today's batch, which possibly will be
> > > available as 'perf-core-for-mingo-3'
> > >
> > > What is in 'perf-core-for-mingo" should be Ok.
> >
> > Ok!
>
> Thanks! I have already removed that problematic changeset and resigned
> the 'perf-core-for-mingo-2' tag, same contents modulo that cset.
Hm, so I pulled it (commit 1765d9b26f84), but with an old perf.data I'm getting
this crash:
triton:~/tip/tools/perf> perf report
perf: Segmentation fault
-------- backtrace --------
perf[0x52bc0b]
/lib/x86_64-linux-gnu/libc.so.6(+0x352f0)[0x7f51a583c2f0]
perf[0x42ce95]
perf[0x4bc6c3]
perf[0x4bcfa1]
perf[0x4bf939]
perf(perf_session__process_events+0x390)[0x4be430]
perf(cmd_report+0x1070)[0x42e2e0]
perf[0x478e03]
perf(main+0x60a)[0x41f1ba]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7f51a5827a40]
perf(_start+0x29)[0x41f2d9]
[0x0]
I also re-tested 1765d9b26f84 and it still crashes.
Bisected it to:
e1e499aba570 perf tools: Add processor socket info to hist_entry and addr_location
Running on Ubuntu, 1 socket box, 12 CPUs.
I went back to perf/core 8f3e5684d3fb and it doesn't crash anymore - so I unpulled
your tree for now. (Will send you the perf.data privately.)
Thanks,
Ingo
^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: [GIT PULL 00/15] perf/core improvements and fixes
2015-09-14 8:41 ` Ingo Molnar
@ 2015-09-14 9:07 ` Wangnan (F)
0 siblings, 0 replies; 51+ messages in thread
From: Wangnan (F) @ 2015-09-14 9:07 UTC (permalink / raw)
To: Ingo Molnar, Arnaldo Carvalho de Melo
Cc: Arnaldo Carvalho de Melo, linux-kernel, Adrian Hunter,
Andi Kleen, Corey Ashford, David Ahern, Frederic Weisbecker,
Jan Stancek, Jiri Olsa, Kan Liang, Matt Fleming, Namhyung Kim,
Paul Mackerras, Peter Zijlstra, Raphael Beamonte,
Stephane Eranian, Steven Rostedt
On 2015/9/14 16:41, Ingo Molnar wrote:
> * Arnaldo Carvalho de Melo <acme@redhat.com> wrote:
>
>> Em Tue, Sep 08, 2015 at 04:21:47PM +0200, Ingo Molnar escreveu:
>>> * Arnaldo Carvalho de Melo <acme@redhat.com> wrote:
>>>
>>>> Em Fri, Sep 04, 2015 at 10:06:28PM -0300, Arnaldo Carvalho de Melo escreveu:
>>>>> Hi Ingo,
>>>>>
>>>>> Please consider pulling, this is on top of the previous pull request,
>>>>> perf-core-for-mingo.
>>>> Ingo, please do not pull this 'perf-core-for-mingo-2' tag, there were
>>>> some misunderstandings about the acks for "Move sw clock metrics
>>>> printout to stat-shadow" and Jiri and Andi are working that out.
>>>>
>>>> I'll remove those patches and get a new perf-core-for-mingo-2
>>>> tag in place, before continuing today's batch, which possibly will be
>>>> available as 'perf-core-for-mingo-3'
>>>>
>>>> What is in 'perf-core-for-mingo" should be Ok.
>>> Ok!
>> Thanks! I have already removed that problematic changeset and resigned
>> the 'perf-core-for-mingo-2' tag, same contents modulo that cset.
> Hm, so I pulled it (commit 1765d9b26f84), but with an old perf.data I'm getting
> this crash:
>
> triton:~/tip/tools/perf> perf report
> perf: Segmentation fault
> -------- backtrace --------
> perf[0x52bc0b]
> /lib/x86_64-linux-gnu/libc.so.6(+0x352f0)[0x7f51a583c2f0]
> perf[0x42ce95]
> perf[0x4bc6c3]
> perf[0x4bcfa1]
> perf[0x4bf939]
> perf(perf_session__process_events+0x390)[0x4be430]
> perf(cmd_report+0x1070)[0x42e2e0]
> perf[0x478e03]
> perf(main+0x60a)[0x41f1ba]
> /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7f51a5827a40]
> perf(_start+0x29)[0x41f2d9]
> [0x0]
>
> I also re-tested qand it still crashes.
>
> Bisected it to:
>
> e1e499aba570 perf tools: Add processor socket info to hist_entry and addr_location
>
> Running on Ubuntu, 1 socket box, 12 CPUs.
Hi Ingo,
It seems you met a bug we are discussing these days. Please have a look at
the following discussions:
http://lkml.kernel.org/r/1441630315-189525-1-git-send-email-wangnan0@huawei.com
http://lkml.kernel.org/r/1441828225-667-1-git-send-email-acme@kernel.org
Thank you.
> I went back to perf/core 8f3e5684d3fb and it doesn't crash anymore - so I unpulled
> your tree for now. (Will send you the perf.data privately.)
>
> Thanks,
>
> 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] 51+ messages in thread
* [GIT PULL 00/15] perf/core improvements and fixes
@ 2017-08-23 19:35 Arnaldo Carvalho de Melo
0 siblings, 0 replies; 51+ messages in thread
From: Arnaldo Carvalho de Melo @ 2017-08-23 19:35 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, linux-perf-users, Arnaldo Carvalho de Melo,
Alexander Shishkin, Andi Kleen, Borislav Petkov, Jiri Olsa,
Konstantin Khlebnikov, Peter Zijlstra, 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 ba63f76e22ee723819c8cec86b31f7ea3182b2ed:
Merge tag 'perf-core-for-mingo-4.14-20170821' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2017-08-22 12:16:39 +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-20170823
for you to fetch changes up to 60913e005c8d19ec5187a638eafdd088509dfb9e:
perf tools: Fix static linking with libunwind (2017-08-22 13:24:55 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
- Expression parser enhancements for metrics (Andi Kleen)
- Fix buffer overflow while freeing events in 'perf stat' (Andi Kleen)
- Fix static linking with elfutils's libdf and with libunwind
in Debian/Ubuntu (Konstantin Khlebnikov)
- Tighten detection of BPF events, avoiding matching some other PMU
events such as 'cpu/uops_executed.core,cmask=1/' as a .c source
file that ended up being considered a BPF event (Andi Kleen)
- Add Skylake server uncore JSON vendor events (Andi Kleen)
- Add support for printing new mem_info encodings, including
'perf test' checks (Andi Kleen)
- Really install manpages via 'make install-man' (Konstantin Khlebnikov)
- Fix documentation for perf_event_paranoid and perf_event_mlock_kb
sysctls (Konstantin Khlebnikov)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Andi Kleen (11):
perf xyarray: Save max_x, max_y
perf evsel: Fix buffer overflow while freeing events
perf bpf: Tighten detection of BPF events
perf tools: Add utility function to detect SMT status
perf tools: Expression parser enhancements for metrics
perf tools: Increase maximum number of events in expressions
perf tools: Dedup events in expression parsing
perf vendor events: Add core event list for Skylake Server
perf vendor events: Add Skylake server uncore event list
perf tools: Add support for printing new mem_info encodings
perf test: Add test cases for new data source encoding
Konstantin Khlebnikov (4):
perf tools: Really install manpages via 'make install-man'
perf: Fix documentation for sysctls perf_event_paranoid and perf_event_mlock_kb
perf tools: Fix static linking with libdw from elfutils
perf tools: Fix static linking with libunwind
Documentation/sysctl/kernel.txt | 13 +-
tools/include/uapi/linux/perf_event.h | 30 +-
tools/perf/Documentation/Makefile | 2 +-
tools/perf/Makefile.config | 16 +-
tools/perf/pmu-events/arch/x86/mapfile.csv | 1 +
tools/perf/pmu-events/arch/x86/skylakex/cache.json | 1672 ++++++++++++++++++++
.../arch/x86/skylakex/floating-point.json | 88 ++
.../pmu-events/arch/x86/skylakex/frontend.json | 482 ++++++
.../perf/pmu-events/arch/x86/skylakex/memory.json | 1396 ++++++++++++++++
tools/perf/pmu-events/arch/x86/skylakex/other.json | 72 +
.../pmu-events/arch/x86/skylakex/pipeline.json | 950 +++++++++++
.../arch/x86/skylakex/uncore-memory.json | 172 ++
.../pmu-events/arch/x86/skylakex/uncore-other.json | 1156 ++++++++++++++
.../arch/x86/skylakex/virtual-memory.json | 284 ++++
tools/perf/tests/Build | 1 +
tools/perf/tests/builtin-test.c | 4 +
tools/perf/tests/expr.c | 5 +
tools/perf/tests/mem.c | 56 +
tools/perf/tests/openat-syscall-all-cpus.c | 2 +-
tools/perf/tests/openat-syscall.c | 2 +-
tools/perf/tests/tests.h | 1 +
tools/perf/util/Build | 1 +
tools/perf/util/evlist.c | 12 +-
tools/perf/util/evsel.c | 41 +-
tools/perf/util/evsel.h | 7 +-
tools/perf/util/expr.h | 2 +-
tools/perf/util/expr.y | 74 +-
tools/perf/util/mem-events.c | 43 +-
tools/perf/util/parse-events.l | 23 +-
tools/perf/util/smt.c | 44 +
tools/perf/util/smt.h | 6 +
tools/perf/util/xyarray.c | 2 +
tools/perf/util/xyarray.h | 12 +
33 files changed, 6607 insertions(+), 65 deletions(-)
create mode 100644 tools/perf/pmu-events/arch/x86/skylakex/cache.json
create mode 100644 tools/perf/pmu-events/arch/x86/skylakex/floating-point.json
create mode 100644 tools/perf/pmu-events/arch/x86/skylakex/frontend.json
create mode 100644 tools/perf/pmu-events/arch/x86/skylakex/memory.json
create mode 100644 tools/perf/pmu-events/arch/x86/skylakex/other.json
create mode 100644 tools/perf/pmu-events/arch/x86/skylakex/pipeline.json
create mode 100644 tools/perf/pmu-events/arch/x86/skylakex/uncore-memory.json
create mode 100644 tools/perf/pmu-events/arch/x86/skylakex/uncore-other.json
create mode 100644 tools/perf/pmu-events/arch/x86/skylakex/virtual-memory.json
create mode 100644 tools/perf/tests/mem.c
create mode 100644 tools/perf/util/smt.c
create mode 100644 tools/perf/util/smt.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.
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: Test data source output : Ok
6: Parse event definition strings : Ok
7: Simple expression parser : Ok
8: PERF_RECORD_* events & perf_sample fields : Ok
9: Parse perf pmu format : Ok
10: DSO data read : Ok
11: DSO data cache : Ok
12: DSO data reopen : Ok
13: Roundtrip evsel->name : Ok
14: Parse sched tracepoints fields : Ok
15: syscalls:sys_enter_openat event fields : Ok
16: Setup struct perf_event_attr : Ok
17: Match and link multiple hists : Ok
18: 'import perf' in python : Ok
19: Breakpoint overflow signal handler : Ok
20: Breakpoint overflow sampling : Ok
21: Number of exit events of a simple workload : Ok
22: Software clock events period values : Ok
23: Object code reading : Ok
24: Sample parsing : Ok
25: Use a dummy software event to keep tracking : Ok
26: Parse with no sample_id_all bit set : Ok
27: Filter hist entries : Ok
28: Lookup mmap thread : Ok
29: Share thread mg : Ok
30: Sort output of hist entries : Ok
31: Cumulate child hist entries : Ok
32: Track with sched_switch : Ok
33: Filter fds with revents mask in a fdarray : Ok
34: Add fd to a fdarray, making it autogrow : Ok
35: kmod_path__parse : Ok
36: Thread map : Ok
37: LLVM search and compile :
37.1: Basic BPF llvm compile : Ok
37.2: kbuild searching : Ok
37.3: Compile source for BPF prologue generation : Ok
37.4: Compile source for BPF relocation : Ok
38: Session topology : Ok
39: BPF filter :
39.1: Basic BPF filtering : Ok
39.2: BPF pinning : Ok
39.3: BPF prologue generation : Ok
39.4: BPF relocation checker : Ok
40: Synthesize thread map : Ok
41: Remove thread map : Ok
42: Synthesize cpu map : Ok
43: Synthesize stat config : Ok
44: Synthesize stat : Ok
45: Synthesize stat round : Ok
46: Synthesize attr update : Ok
47: Event times : Ok
48: Read backward ring buffer : Ok
49: Print cpu map : Ok
50: Probe SDT events : Ok
51: is_printable_array : Ok
52: Print bitmap : Ok
53: perf hooks : Ok
54: builtin clang support : Skip (not compiled in)
55: unit_number__scnprintf : Ok
56: x86 rdpmc : Ok
57: Convert perf time to TSC : Ok
58: DWARF unwind : Ok
59: x86 instruction decoder - new instructions : Ok
60: Intel cqm nmi context read : Skip
61: Use vfs_getname probe to get syscall args filenames : Ok
62: probe libc's inet_pton & backtrace it with ping : Ok
63: Check open filename arg using perf trace + vfs_getname: Ok
64: Add vfs_getname probe to get syscall args filenames : Ok
#
$ make -C tools/perf build-test
make: Entering directory '/home/acme/git/linux/tools/perf'
- tarpkg: ./tests/perf-targz-src-pkg .
make_pure_O: make
make_util_pmu_bison_o_O: make util/pmu-bison.o
make_tags_O: make tags
make_util_map_o_O: make util/map.o
make_no_libunwind_O: make NO_LIBUNWIND=1
make_clean_all_O: make clean all
make_no_libdw_dwarf_unwind_O: make NO_LIBDW_DWARF_UNWIND=1
make_perf_o_O: make perf.o
make_help_O: make help
make_no_libbionic_O: make NO_LIBBIONIC=1
make_no_libpython_O: make NO_LIBPYTHON=1
make_no_libperl_O: make NO_LIBPERL=1
make_doc_O: make doc
make_install_prefix_slash_O: make install prefix=/tmp/krava/
make_install_O: make install
make_no_newt_O: make NO_NEWT=1
make_no_libnuma_O: make NO_LIBNUMA=1
make_install_bin_O: make install-bin
make_install_prefix_O: make install prefix=/tmp/krava
make_no_auxtrace_O: make NO_AUXTRACE=1
make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1
make_no_gtk2_O: make NO_GTK2=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_with_babeltrace_O: make LIBBABELTRACE=1
make_no_libelf_O: make NO_LIBELF=1
make_no_demangle_O: make NO_DEMANGLE=1
make_no_libaudit_O: make NO_LIBAUDIT=1
make_no_libbpf_O: make NO_LIBBPF=1
make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1
make_no_backtrace_O: make NO_BACKTRACE=1
make_debug_O: make DEBUG=1
make_with_clangllvm_O: make LIBCLANGLLVM=1
make_no_slang_O: make NO_SLANG=1
OK
make: Leaving directory '/home/acme/git/linux/tools/perf'
$
^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: [GIT PULL 00/15] perf/core improvements and fixes
2017-07-28 20:00 Arnaldo Carvalho de Melo
@ 2017-07-30 9:31 ` Ingo Molnar
0 siblings, 0 replies; 51+ messages in thread
From: Ingo Molnar @ 2017-07-30 9:31 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, linux-perf-users, Adrian Hunter,
Alexander Shishkin, Andi Kleen, David Ahern,
David Carrillo-Cisneros, Francis Deslauriers,
Geneviève Bastien, Jiri Olsa, Julien Desfossez,
Martin Liška, Mathieu Desnoyers, Milian Wolff, Namhyung Kim,
Paul Turner, Peter Zijlstra, Simon Que, Stephane Eranian,
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 ee438ec8f33c5af0d4a4ffb935c5b9272e8c2680:
>
> Merge tag 'perf-core-for-mingo-4.14-20170725' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2017-07-26 19:07:30 +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-20170728
>
> for you to fetch changes up to 6b7007af728df7258bb60ed73099be3b59b3030e:
>
> perf data: Add doc when no conversion support compiled (2017-07-28 16:30:45 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes for 4.14:
>
> New features:
>
> - Add PERF_SAMPLE_CALLCHAIN and PERF_RECORD_MMAP[2] to 'perf data' CTF
> conversion, allowing CTF trace visualization tools to show callchains
> and to resolve symbols (Geneviève Bastien)
>
> Improvements:
>
> - Use group read for event groups in 'perf stat', reducing overhead when
> groups are defined in the event specification, i.e. when using {} to
> enclose a list of events, asking them to be read at the same time,
> e.g.: "perf stat -e '{cycles,instructions}'" (Jiri Olsa)
>
> Fixes:
>
> - Do not overwrite perf_sample->weight in 'perf annotate' when
> processing samples, use whatever came from the kernel when
> perf_event_attr.sample_type has PERF_SAMPLE_WEIGHT set or just handle
> its default value, 0, when that is not set and "weight" is one of the
> sort orders chosen (Arnaldo Carvalho de Melo)
>
> - 'perf annotate --show-total-period' fixes:
> - TUI should show period, not nr_samples
> - Set appropriate column width for period/percent
> - Fix the column header to show "Period" when when that is what
> is being asked for
> (Taeung Song, Arnaldo Carvalho de Melo)
>
> - Use default sort if evlist is empty, fixing pipe mode (David Carrillo-Cisneros)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (6):
> perf annotate: Do not overwrite perf_sample->weight
> perf annotate stdio: Set enough columns for --show-total-period
> perf annotate: Fix storing per line sym_hist_entry
> perf annotate TUI: Use sym_hist_entry in disasm_line_samples
> perf annotate TUI: Clarify calculation of column header widths
> perf annotate TUI: Set appropriate column width for period/percent
>
> David Carrillo-Cisneros (1):
> perf sort: Use default sort if evlist is empty
>
> Geneviève Bastien (3):
> perf data: Add callchain to CTF conversion
> perf data: Add mmap[2] events to CTF conversion
> perf data: Add doc when no conversion support compiled
>
> Jiri Olsa (3):
> perf tools: Add perf_evsel__read_size function
> perf evsel: Add read_counter()
> perf stat: Use group read for event groups
>
> Taeung Song (2):
> perf annotate TUI: Fix --show-total-period
> perf annotate TUI: Fix column header when toggling period/percent
>
> tools/perf/builtin-annotate.c | 2 -
> tools/perf/builtin-data.c | 2 +-
> tools/perf/builtin-stat.c | 30 +++++++-
> tools/perf/ui/browsers/annotate.c | 36 +++++-----
> tools/perf/util/annotate.c | 11 +--
> tools/perf/util/counts.h | 1 +
> tools/perf/util/data-convert-bt.c | 127 +++++++++++++++++++++++++++++++++-
> tools/perf/util/evlist.h | 5 ++
> tools/perf/util/evsel.c | 139 +++++++++++++++++++++++++++++++++++++-
> tools/perf/util/evsel.h | 2 +
> tools/perf/util/sort.c | 2 +-
> tools/perf/util/stat.c | 4 ++
> tools/perf/util/stat.h | 5 +-
> 13 files changed, 334 insertions(+), 32 deletions(-)
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 51+ messages in thread
* [GIT PULL 00/15] perf/core improvements and fixes
@ 2017-07-28 20:00 Arnaldo Carvalho de Melo
2017-07-30 9:31 ` Ingo Molnar
0 siblings, 1 reply; 51+ messages in thread
From: Arnaldo Carvalho de Melo @ 2017-07-28 20:00 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, linux-perf-users, Arnaldo Carvalho de Melo,
Adrian Hunter, Alexander Shishkin, Andi Kleen, David Ahern,
David Carrillo-Cisneros, Francis Deslauriers,
Geneviève Bastien, Jiri Olsa, Julien Desfossez,
Martin Liška, Mathieu Desnoyers, Milian Wolff, Namhyung Kim,
Paul Turner, Peter Zijlstra, Simon Que, Stephane Eranian,
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 ee438ec8f33c5af0d4a4ffb935c5b9272e8c2680:
Merge tag 'perf-core-for-mingo-4.14-20170725' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2017-07-26 19:07:30 +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-20170728
for you to fetch changes up to 6b7007af728df7258bb60ed73099be3b59b3030e:
perf data: Add doc when no conversion support compiled (2017-07-28 16:30:45 -0300)
----------------------------------------------------------------
perf/core improvements and fixes for 4.14:
New features:
- Add PERF_SAMPLE_CALLCHAIN and PERF_RECORD_MMAP[2] to 'perf data' CTF
conversion, allowing CTF trace visualization tools to show callchains
and to resolve symbols (Geneviève Bastien)
Improvements:
- Use group read for event groups in 'perf stat', reducing overhead when
groups are defined in the event specification, i.e. when using {} to
enclose a list of events, asking them to be read at the same time,
e.g.: "perf stat -e '{cycles,instructions}'" (Jiri Olsa)
Fixes:
- Do not overwrite perf_sample->weight in 'perf annotate' when
processing samples, use whatever came from the kernel when
perf_event_attr.sample_type has PERF_SAMPLE_WEIGHT set or just handle
its default value, 0, when that is not set and "weight" is one of the
sort orders chosen (Arnaldo Carvalho de Melo)
- 'perf annotate --show-total-period' fixes:
- TUI should show period, not nr_samples
- Set appropriate column width for period/percent
- Fix the column header to show "Period" when when that is what
is being asked for
(Taeung Song, Arnaldo Carvalho de Melo)
- Use default sort if evlist is empty, fixing pipe mode (David Carrillo-Cisneros)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Arnaldo Carvalho de Melo (6):
perf annotate: Do not overwrite perf_sample->weight
perf annotate stdio: Set enough columns for --show-total-period
perf annotate: Fix storing per line sym_hist_entry
perf annotate TUI: Use sym_hist_entry in disasm_line_samples
perf annotate TUI: Clarify calculation of column header widths
perf annotate TUI: Set appropriate column width for period/percent
David Carrillo-Cisneros (1):
perf sort: Use default sort if evlist is empty
Geneviève Bastien (3):
perf data: Add callchain to CTF conversion
perf data: Add mmap[2] events to CTF conversion
perf data: Add doc when no conversion support compiled
Jiri Olsa (3):
perf tools: Add perf_evsel__read_size function
perf evsel: Add read_counter()
perf stat: Use group read for event groups
Taeung Song (2):
perf annotate TUI: Fix --show-total-period
perf annotate TUI: Fix column header when toggling period/percent
tools/perf/builtin-annotate.c | 2 -
tools/perf/builtin-data.c | 2 +-
tools/perf/builtin-stat.c | 30 +++++++-
tools/perf/ui/browsers/annotate.c | 36 +++++-----
tools/perf/util/annotate.c | 11 +--
tools/perf/util/counts.h | 1 +
tools/perf/util/data-convert-bt.c | 127 +++++++++++++++++++++++++++++++++-
tools/perf/util/evlist.h | 5 ++
tools/perf/util/evsel.c | 139 +++++++++++++++++++++++++++++++++++++-
tools/perf/util/evsel.h | 2 +
tools/perf/util/sort.c | 2 +-
tools/perf/util/stat.c | 4 ++
tools/perf/util/stat.h | 5 +-
13 files changed, 334 insertions(+), 32 deletions(-)
Test results:
The first ones are container (docker) based builds of tools/perf with and
without libelf support, objtool where it is supported and samples/bpf/, ditto.
Where clang is available, it is also used to build perf with/without libelf.
Several are cross builds, the ones with -x-ARCH and the android one, and those
may not have all the features built, due to lack of multi-arch devel packages,
available and being used so far on just a few, like
debian:experimental-x-{arm64,mipsel}.
The 'perf test' one will perform a variety of tests exercising
tools/perf/util/, tools/lib/{bpf,traceevent,etc}, as well as run perf commands
with a variety of command line event specifications to then intercept the
sys_perf_event syscall to check that the perf_event_attr fields are set up as
expected, among a variety of other unit tests.
Then there is the 'make -C tools/perf build-test' ones, that build tools/perf/
with a variety of feature sets, exercising the build with an incomplete set of
features as well as with a complete one. It is planned to have it run on each
of the containers mentioned above, using some container orchestration
infrastructure. Get in contact if interested in helping having this in place.
# uname -a
Linux jouet 4.12.0-rc6+ #3 SMP Tue Jun 27 15:12:38 -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
#
# 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: FAIL
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
#
$ make -C tools/perf build-test
make: Entering directory '/home/acme/git/linux/tools/perf'
- tarpkg: ./tests/perf-targz-src-pkg .
make_no_libunwind_O: make NO_LIBUNWIND=1
make_install_prefix_O: make install prefix=/tmp/krava
make_static_O: make LDFLAGS=-static
make_no_libdw_dwarf_unwind_O: make NO_LIBDW_DWARF_UNWIND=1
make_no_libelf_O: make NO_LIBELF=1
make_no_libperl_O: make NO_LIBPERL=1
make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1
make_install_bin_O: make install-bin
make_no_backtrace_O: make NO_BACKTRACE=1
make_with_clangllvm_O: make LIBCLANGLLVM=1
make_no_gtk2_O: make NO_GTK2=1
make_install_prefix_slash_O: make install prefix=/tmp/krava/
make_util_map_o_O: make util/map.o
make_minimal_O: make NO_LIBPERL=1 NO_LIBPYTHON=1 NO_NEWT=1 NO_GTK2=1 NO_DEMANGLE=1 NO_LIBELF=1 NO_LIBUNWIND=1 NO_BACKTRACE=1 NO_LIBNUMA=1 NO_LIBAUDIT=1 NO_LIBBIONIC=1 NO_LIBDW_DWARF_UNWIND=1 NO_AUXTRACE=1 NO_LIBBPF=1 NO_LIBCRYPTO=1 NO_SDT=1 NO_JVMTI=1
make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1
make_no_slang_O: make NO_SLANG=1
make_util_pmu_bison_o_O: make util/pmu-bison.o
make_perf_o_O: make perf.o
make_help_O: make help
make_no_libpython_O: make NO_LIBPYTHON=1
make_with_babeltrace_O: make LIBBABELTRACE=1
make_debug_O: make DEBUG=1
make_no_libnuma_O: make NO_LIBNUMA=1
make_no_auxtrace_O: make NO_AUXTRACE=1
make_pure_O: make
make_no_demangle_O: make NO_DEMANGLE=1
make_no_newt_O: make NO_NEWT=1
make_no_libbionic_O: make NO_LIBBIONIC=1
make_clean_all_O: make clean all
make_doc_O: make doc
make_no_libaudit_O: make NO_LIBAUDIT=1
make_tags_O: make tags
make_install_O: make install
make_no_libbpf_O: make NO_LIBBPF=1
OK
make: Leaving directory '/home/acme/git/linux/tools/perf'
$
^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: [GIT PULL 00/15] perf/core improvements and fixes
2017-02-14 1:13 Arnaldo Carvalho de Melo
@ 2017-02-14 6:31 ` Ingo Molnar
0 siblings, 0 replies; 51+ messages in thread
From: Ingo Molnar @ 2017-02-14 6:31 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Adrian Hunter, Alexei Starovoitov, Clark Williams,
Daniel Borkmann, David Ahern, David S . Miller, Jiri Olsa,
Joe Perches, Joe Stringer, Mickaël Salaün,
Namhyung Kim, netdev, Peter Zijlstra, Steven Rostedt,
Taeung Song, Wang Nan, Wang YanQing, linux-perf-users,
Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Hi Ingo,
>
> Please consider pulling,
>
> - Arnaldo
>
> Test results at the end of this message, as usual.
>
> The following changes since commit f2029b1e47b607619d1dd2cb0bbb77f64ec6b7c2:
>
> perf/x86/intel: Add Kaby Lake support (2017-02-11 21:28:23 +0100)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-4.11-20170213
>
> for you to fetch changes up to a734fb5d60067a73dd7099a58756847c07f9cd68:
>
> samples/bpf: Reset global variables (2017-02-13 17:22:53 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> New feature:
>
> - Introduce the 'delta-abs' 'perf diff' compute method, that orders the
> histogram entries by the absolute value of the percentage delta for a
> function in two perf.data files, i.e. the functions that changed the
> most (increase or decrease in samples) comes first (Namhyung Kim)
>
> User visible:
>
> - Improve message about tweaking the kernel.perf_event_paranoid setting,
> telling how to make the change permanent by editing /etc/sysctl.conf
> (Ingo Molnar)
>
> Infrastructure:
>
> - Introduce linux/compiler-gcc.h as a counterpart to the kernel's,
> initially containing the definition of __fallthrough, more to
> come (__maybe_unused, etc) (Arnaldo Carvalho de Melo)
>
> - Fixes for problems uncovered by building tools/perf with clang, such
> as always true tests of arrays against NULL and variables that sometimes
> were used without being initialized (Arnaldo Carvalho de Melo, Steven Rostedt)
>
> - Before loading a new ELF, clear global variables set by the
> samples/bpf loader (Mickaël Salaün)
>
> - Ignore already processed ELF sections in the samples/bpf
> loader (Mickaël Salaün)
>
> - Fix compile error in the scripting code with some perl5
> versions (Wang YanQing)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (6):
> tools include: Introduce linux/compiler-gcc.h
> tools lib traceevent plugin function: Initialize 'index' variable
> perf evsel: Inform how to make a sysctl setting permanent
> perf symbols: No need to check if sym->name is NULL
> perf tests record: No need to test an array against NULL
> perf symbols: dso->name is an array, no need to check it against NULL
>
> Mickaël Salaün (3):
> samples/bpf: Add missing header
> samples/bpf: Ignore already processed ELF sections
> samples/bpf: Reset global variables
>
> Namhyung Kim (4):
> perf diff: Add 'delta-abs' compute method
> perf diff: Add diff.order config option
> perf diff: Add diff.compute config option
> perf diff: Change default setting to "delta-abs"
>
> Steven Rostedt (VMware) (1):
> tools lib traceevent: Initialize lenght on OLD_RING_BUFFER_TYPE_TIME_STAMP
>
> Wang YanQing (1):
> perf scripting perl: Fix compile error with some perl5 versions
>
> samples/bpf/bpf_load.c | 7 ++
> samples/bpf/tracex5_kern.c | 1 +
> tools/include/linux/compiler-gcc.h | 14 ++++
> tools/include/linux/compiler.h | 10 +--
> tools/lib/traceevent/kbuffer-parse.c | 1 +
> tools/lib/traceevent/plugin_function.c | 2 +-
> tools/perf/Documentation/perf-config.txt | 12 ++++
> tools/perf/Documentation/perf-diff.txt | 15 ++++-
> tools/perf/MANIFEST | 1 +
> tools/perf/builtin-diff.c | 78 ++++++++++++++++++++--
> tools/perf/builtin-kmem.c | 4 +-
> tools/perf/builtin-record.c | 2 +-
> tools/perf/builtin-sched.c | 2 +-
> tools/perf/builtin-stat.c | 2 +-
> tools/perf/builtin-top.c | 2 +-
> tools/perf/tests/perf-record.c | 2 +-
> tools/perf/util/evsel.c | 4 +-
> tools/perf/util/evsel_fprintf.c | 1 -
> tools/perf/util/machine.c | 2 +-
> tools/perf/util/map.c | 4 +-
> tools/perf/util/scripting-engines/Build | 2 +-
> .../perf/util/scripting-engines/trace-event-perl.c | 4 +-
> tools/perf/util/symbol_fprintf.c | 2 +-
> 23 files changed, 145 insertions(+), 29 deletions(-)
> create mode 100644 tools/include/linux/compiler-gcc.h
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 51+ messages in thread
* [GIT PULL 00/15] perf/core improvements and fixes
@ 2017-02-14 1:13 Arnaldo Carvalho de Melo
2017-02-14 6:31 ` Ingo Molnar
0 siblings, 1 reply; 51+ messages in thread
From: Arnaldo Carvalho de Melo @ 2017-02-14 1:13 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Alexei Starovoitov, Clark Williams, Daniel Borkmann, David Ahern,
David S . Miller, Jiri Olsa, Joe Perches, Joe Stringer,
Mickaël Salaün, Namhyung Kim, netdev, Peter Zijlstra,
Steven Rostedt, Taeung Song, Wang Nan, Wang YanQing,
linux-perf-users, Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling,
- Arnaldo
Test results at the end of this message, as usual.
The following changes since commit f2029b1e47b607619d1dd2cb0bbb77f64ec6b7c2:
perf/x86/intel: Add Kaby Lake support (2017-02-11 21:28:23 +0100)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-4.11-20170213
for you to fetch changes up to a734fb5d60067a73dd7099a58756847c07f9cd68:
samples/bpf: Reset global variables (2017-02-13 17:22:53 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
New feature:
- Introduce the 'delta-abs' 'perf diff' compute method, that orders the
histogram entries by the absolute value of the percentage delta for a
function in two perf.data files, i.e. the functions that changed the
most (increase or decrease in samples) comes first (Namhyung Kim)
User visible:
- Improve message about tweaking the kernel.perf_event_paranoid setting,
telling how to make the change permanent by editing /etc/sysctl.conf
(Ingo Molnar)
Infrastructure:
- Introduce linux/compiler-gcc.h as a counterpart to the kernel's,
initially containing the definition of __fallthrough, more to
come (__maybe_unused, etc) (Arnaldo Carvalho de Melo)
- Fixes for problems uncovered by building tools/perf with clang, such
as always true tests of arrays against NULL and variables that sometimes
were used without being initialized (Arnaldo Carvalho de Melo, Steven Rostedt)
- Before loading a new ELF, clear global variables set by the
samples/bpf loader (Mickaël Salaün)
- Ignore already processed ELF sections in the samples/bpf
loader (Mickaël Salaün)
- Fix compile error in the scripting code with some perl5
versions (Wang YanQing)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Arnaldo Carvalho de Melo (6):
tools include: Introduce linux/compiler-gcc.h
tools lib traceevent plugin function: Initialize 'index' variable
perf evsel: Inform how to make a sysctl setting permanent
perf symbols: No need to check if sym->name is NULL
perf tests record: No need to test an array against NULL
perf symbols: dso->name is an array, no need to check it against NULL
Mickaël Salaün (3):
samples/bpf: Add missing header
samples/bpf: Ignore already processed ELF sections
samples/bpf: Reset global variables
Namhyung Kim (4):
perf diff: Add 'delta-abs' compute method
perf diff: Add diff.order config option
perf diff: Add diff.compute config option
perf diff: Change default setting to "delta-abs"
Steven Rostedt (VMware) (1):
tools lib traceevent: Initialize lenght on OLD_RING_BUFFER_TYPE_TIME_STAMP
Wang YanQing (1):
perf scripting perl: Fix compile error with some perl5 versions
samples/bpf/bpf_load.c | 7 ++
samples/bpf/tracex5_kern.c | 1 +
tools/include/linux/compiler-gcc.h | 14 ++++
tools/include/linux/compiler.h | 10 +--
tools/lib/traceevent/kbuffer-parse.c | 1 +
tools/lib/traceevent/plugin_function.c | 2 +-
tools/perf/Documentation/perf-config.txt | 12 ++++
tools/perf/Documentation/perf-diff.txt | 15 ++++-
tools/perf/MANIFEST | 1 +
tools/perf/builtin-diff.c | 78 ++++++++++++++++++++--
tools/perf/builtin-kmem.c | 4 +-
tools/perf/builtin-record.c | 2 +-
tools/perf/builtin-sched.c | 2 +-
tools/perf/builtin-stat.c | 2 +-
tools/perf/builtin-top.c | 2 +-
tools/perf/tests/perf-record.c | 2 +-
tools/perf/util/evsel.c | 4 +-
tools/perf/util/evsel_fprintf.c | 1 -
tools/perf/util/machine.c | 2 +-
tools/perf/util/map.c | 4 +-
tools/perf/util/scripting-engines/Build | 2 +-
.../perf/util/scripting-engines/trace-event-perl.c | 4 +-
tools/perf/util/symbol_fprintf.c | 2 +-
23 files changed, 145 insertions(+), 29 deletions(-)
create mode 100644 tools/include/linux/compiler-gcc.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.
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.8-201.fc25.x86_64 #1 SMP Tue Feb 7 11:28:07 UTC 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: 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 pinning : Ok
37.3: BPF prologue generation : Ok
37.4: 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_install_O: make install
make_no_libunwind_O: make NO_LIBUNWIND=1
make_no_newt_O: make NO_NEWT=1
make_no_slang_O: make NO_SLANG=1
make_static_O: make LDFLAGS=-static
make_no_backtrace_O: make NO_BACKTRACE=1
make_no_libbionic_O: make NO_LIBBIONIC=1
make_clean_all_O: make clean all
make_util_pmu_bison_o_O: make util/pmu-bison.o
make_no_libnuma_O: make NO_LIBNUMA=1
make_tags_O: make tags
make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1
make_no_libdw_dwarf_unwind_O: make NO_LIBDW_DWARF_UNWIND=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_perf_o_O: make perf.o
make_install_prefix_slash_O: make install prefix=/tmp/krava/
make_no_libpython_O: make NO_LIBPYTHON=1
make_no_gtk2_O: make NO_GTK2=1
make_no_libaudit_O: make NO_LIBAUDIT=1
make_help_O: make help
make_with_babeltrace_O: make LIBBABELTRACE=1
make_install_prefix_O: make install prefix=/tmp/krava
make_debug_O: make DEBUG=1
make_no_libbpf_O: make NO_LIBBPF=1
make_util_map_o_O: make util/map.o
make_with_clangllvm_O: make LIBCLANGLLVM=1
make_no_libperl_O: make NO_LIBPERL=1
make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1
make_doc_O: make doc
make_no_libelf_O: make NO_LIBELF=1
make_no_auxtrace_O: make NO_AUXTRACE=1
make_install_bin_O: make install-bin
make_no_demangle_O: make NO_DEMANGLE=1
make_pure_O: make
OK
make: Leaving directory '/home/acme/git/linux/tools/perf'
$
^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: [GIT PULL 00/15] perf/core improvements and fixes
2016-11-15 1:38 Arnaldo Carvalho de Melo
@ 2016-11-15 8:47 ` Ingo Molnar
0 siblings, 0 replies; 51+ messages in thread
From: Ingo Molnar @ 2016-11-15 8:47 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Andi Kleen, David Ahern, He Kuang, Jiri Olsa, Kan Liang,
Nambong Ha, Namhyung Kim, Peter Zijlstra, Rabin Vincent,
Stephane Eranian, Taeung Song, Wang Nan, William Cohen,
Wookje Kwon, Yao Jin
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Hi Ingo,
>
> Please consider pulling,
>
> - Arnaldo
>
> Test results at the end.
>
> The following changes since commit 91a79e5fa696fa626bfbd47f827eaf3eb7d76dc5:
>
> Merge tag 'perf-core-for-mingo-20161028' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2016-10-28 19:37:34 +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-20161114
>
> for you to fetch changes up to fef51ecd1056b5e090c9fb73e0833bd751389572:
>
> perf report: Show branch info in callchain entry for browser mode (2016-11-14 13:34:08 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> New features:
>
> - Allow querying and setting .perfconfig variables (Taeung Song)
>
> - Show branch information in callchains (predicted, TSX aborts, loop
> iteractions, etc) (Jin Yao)
>
> Infrastructure:
>
> - Support kbuild's CFLAGS_REMOVE_ in tools/build (Jiri Olsa)
>
> - Plug building jvmti to the main perf Makefile (Jiri Olsa)
>
> Documentation:
>
> - Update Intel PT documentation about context switch events (Arnaldo Carvalho de Melo)
>
> - Fix 'perf record --call-graph dwarf' help/config in builds not linking
> with a unwind library, mentioning that is a possible record option (Rabin Vincent)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (1):
> perf intel-pt: Update documentation about context switch events
>
> Jin Yao (5):
> perf report: Add branch flag to callchain cursor node
> perf report: Create a symbol_conf flag for showing branch flag counting
> perf report: Calculate and return the branch flag counting
> perf report: Show branch info in callchain entry for stdio mode
> perf report: Show branch info in callchain entry for browser mode
>
> Jiri Olsa (4):
> tools build: Add CFLAGS_REMOVE_* support
> tools build: Add jvmti feature detection support
> perf jvmti: Plug compilation into perf build
> perf kvmti: Remove unused Makefile file
>
> Rabin Vincent (1):
> perf callchain: Fixup help/config for no-unwinding
>
> Taeung Song (4):
> perf config: Add support for getting config key-value pairs
> perf config: Validate config variable arguments before trying use them
> perf config: Add support setting variables in a config file
> perf config: Mark where are config items from (user or system)
>
> tools/build/Build.include | 4 +-
> tools/build/Documentation/Build.txt | 6 +-
> tools/build/feature/Makefile | 6 +-
> tools/build/feature/test-jvmti.c | 13 ++
> tools/perf/Documentation/intel-pt.txt | 19 ++-
> tools/perf/Documentation/perf-config.txt | 35 ++++++
> tools/perf/Makefile.config | 26 ++++
> tools/perf/Makefile.perf | 24 +++-
> tools/perf/builtin-config.c | 137 ++++++++++++++++++++-
> tools/perf/builtin-report.c | 3 +
> tools/perf/jvmti/Build | 8 ++
> tools/perf/jvmti/Makefile | 89 --------------
> tools/perf/tests/make | 2 +-
> tools/perf/ui/browsers/hists.c | 20 ++-
> tools/perf/ui/stdio/hist.c | 35 +++++-
> tools/perf/util/callchain.c | 205 ++++++++++++++++++++++++++++++-
> tools/perf/util/callchain.h | 26 +++-
> tools/perf/util/config.c | 20 +++
> tools/perf/util/config.h | 4 +
> tools/perf/util/machine.c | 82 ++++++++++---
> tools/perf/util/symbol.h | 1 +
> 21 files changed, 634 insertions(+), 131 deletions(-)
> create mode 100644 tools/build/feature/test-jvmti.c
> create mode 100644 tools/perf/jvmti/Build
> delete mode 100644 tools/perf/jvmti/Makefile
>
> [root@jouet ~]# 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 events tests : Ok
> 6: Validate PERF_RECORD_* events & perf_sample fields : Ok
> 7: Test perf pmu format parsing : Ok
> 8: Test dso data read : Ok
> 9: Test dso data cache : Ok
> 10: Test dso data reopen : Ok
> 11: roundtrip evsel->name check : Ok
> 12: Check parsing of sched tracepoints fields : Ok
> 13: Generate and check syscalls:sys_enter_openat event fields: Ok
> 14: struct perf_event_attr setup : Ok
> 15: Test matching and linking multiple hists : Ok
> 16: Try 'import perf' in python, checking link problems : Ok
> 17: Test breakpoint overflow signal handler : Ok
> 18: Test breakpoint overflow sampling : Ok
> 19: Test number of exit event of a simple workload : Ok
> 20: Test software clock events have valid period values : Ok
> 21: Test object code reading : Ok
> 22: Test sample parsing : Ok
> 23: Test using a dummy software event to keep tracking : Ok
> 24: Test parsing with no sample_id_all bit set : Ok
> 25: Test filtering hist entries : Ok
> 26: Test mmap thread lookup : Ok
> 27: Test thread mg sharing : Ok
> 28: Test output sorting of hist entries : Ok
> 29: Test cumulation of child hist entries : Ok
> 30: Test tracking 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: Test kmod_path__parse function : Ok
> 34: Test thread map : Ok
> 35: Test LLVM searching and compiling :
> 35.1: Basic BPF llvm compiling test : Ok
> 35.2: Test kbuild searching : Ok
> 35.3: Compile source for BPF prologue generation test : Ok
> 35.4: Compile source for BPF relocation test : Ok
> 36: Test topology in session : Ok
> 37: Test BPF filter :
> 37.1: Test basic BPF filtering : Ok
> 37.2: Test BPF prologue generation : Ok
> 37.3: Test BPF relocation checker : Ok
> 38: Test thread map synthesize : Ok
> 39: Test cpu map synthesize : Ok
> 40: Test stat config synthesize : Ok
> 41: Test stat synthesize : Ok
> 42: Test stat round synthesize : Ok
> 43: Test attr update synthesize : Ok
> 44: Test events times : Ok
> 45: Test backward reading from ring buffer : Ok
> 46: Test cpu map print : Ok
> 47: Test SDT event probing : Ok
> 48: Test is_printable_array function : Ok
> 49: Test bitmap print : Ok
> 50: x86 rdpmc test : Ok
> 51: Test converting perf time to TSC : Ok
> 52: Test dwarf unwind : Ok
> 53: Test x86 instruction decoder - new instructions : Ok
> 54: Test intel cqm nmi context read : Skip
> [root@jouet ~]#
>
> [root@zoo ~]# 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
>
> real 61m29.498s
> user 0m3.969s
> sys 0m3.525s
> [root@zoo ~]#
>
> [acme@jouet linux]$ perf stat make -C tools/perf build-test
> make: Entering directory '/home/acme/git/linux/tools/perf'
> - tarpkg: ./tests/perf-targz-src-pkg .
> make_no_libbionic_O: make NO_LIBBIONIC=1
> make_no_libbpf_O: make NO_LIBBPF=1
> make_no_libunwind_O: make NO_LIBUNWIND=1
> make_install_O: make install
> make_no_libaudit_O: make NO_LIBAUDIT=1
> make_no_libperl_O: make NO_LIBPERL=1
> make_install_prefix_slash_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_clean_all_O: make clean all
> make_debug_O: make DEBUG=1
> make_no_newt_O: make NO_NEWT=1
> make_perf_o_O: make perf.o
> make_no_demangle_O: make NO_DEMANGLE=1
> make_doc_O: make doc
> make_install_bin_O: make install-bin
> make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1
> make_install_prefix_O: make install prefix=/tmp/krava
> make_no_slang_O: make NO_SLANG=1
> make_no_libelf_O: make NO_LIBELF=1
> make_static_O: make LDFLAGS=-static
> make_util_map_o_O: make util/map.o
> make_with_babeltrace_O: make LIBBABELTRACE=1
> make_no_auxtrace_O: make NO_AUXTRACE=1
> make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1
> make_no_libnuma_O: make NO_LIBNUMA=1
> make_pure_O: make
> make_help_O: make help
> make_no_gtk2_O: make NO_GTK2=1
> make_no_libpython_O: make NO_LIBPYTHON=1
> make_no_backtrace_O: make NO_BACKTRACE=1
> make_tags_O: make tags
> make_no_libdw_dwarf_unwind_O: make NO_LIBDW_DWARF_UNWIND=1
> make_util_pmu_bison_o_O: make util/pmu-bison.o
> OK
> make: Leaving directory '/home/acme/git/linux/tools/perf'
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 51+ messages in thread
* [GIT PULL 00/15] perf/core improvements and fixes
@ 2016-11-15 1:38 Arnaldo Carvalho de Melo
2016-11-15 8:47 ` Ingo Molnar
0 siblings, 1 reply; 51+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-11-15 1:38 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Arnaldo Carvalho de Melo,
Adrian Hunter, Andi Kleen, David Ahern, He Kuang, Jiri Olsa,
Kan Liang, Linux-kernel, Nambong Ha, Namhyung Kim,
Peter Zijlstra, Rabin Vincent, Stephane Eranian, Taeung Song,
Wang Nan, William Cohen, Wookje Kwon, Yao Jin
Hi Ingo,
Please consider pulling,
- Arnaldo
Test results at the end.
The following changes since commit 91a79e5fa696fa626bfbd47f827eaf3eb7d76dc5:
Merge tag 'perf-core-for-mingo-20161028' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2016-10-28 19:37:34 +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-20161114
for you to fetch changes up to fef51ecd1056b5e090c9fb73e0833bd751389572:
perf report: Show branch info in callchain entry for browser mode (2016-11-14 13:34:08 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
New features:
- Allow querying and setting .perfconfig variables (Taeung Song)
- Show branch information in callchains (predicted, TSX aborts, loop
iteractions, etc) (Jin Yao)
Infrastructure:
- Support kbuild's CFLAGS_REMOVE_ in tools/build (Jiri Olsa)
- Plug building jvmti to the main perf Makefile (Jiri Olsa)
Documentation:
- Update Intel PT documentation about context switch events (Arnaldo Carvalho de Melo)
- Fix 'perf record --call-graph dwarf' help/config in builds not linking
with a unwind library, mentioning that is a possible record option (Rabin Vincent)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Arnaldo Carvalho de Melo (1):
perf intel-pt: Update documentation about context switch events
Jin Yao (5):
perf report: Add branch flag to callchain cursor node
perf report: Create a symbol_conf flag for showing branch flag counting
perf report: Calculate and return the branch flag counting
perf report: Show branch info in callchain entry for stdio mode
perf report: Show branch info in callchain entry for browser mode
Jiri Olsa (4):
tools build: Add CFLAGS_REMOVE_* support
tools build: Add jvmti feature detection support
perf jvmti: Plug compilation into perf build
perf kvmti: Remove unused Makefile file
Rabin Vincent (1):
perf callchain: Fixup help/config for no-unwinding
Taeung Song (4):
perf config: Add support for getting config key-value pairs
perf config: Validate config variable arguments before trying use them
perf config: Add support setting variables in a config file
perf config: Mark where are config items from (user or system)
tools/build/Build.include | 4 +-
tools/build/Documentation/Build.txt | 6 +-
tools/build/feature/Makefile | 6 +-
tools/build/feature/test-jvmti.c | 13 ++
tools/perf/Documentation/intel-pt.txt | 19 ++-
tools/perf/Documentation/perf-config.txt | 35 ++++++
tools/perf/Makefile.config | 26 ++++
tools/perf/Makefile.perf | 24 +++-
tools/perf/builtin-config.c | 137 ++++++++++++++++++++-
tools/perf/builtin-report.c | 3 +
tools/perf/jvmti/Build | 8 ++
tools/perf/jvmti/Makefile | 89 --------------
tools/perf/tests/make | 2 +-
tools/perf/ui/browsers/hists.c | 20 ++-
tools/perf/ui/stdio/hist.c | 35 +++++-
tools/perf/util/callchain.c | 205 ++++++++++++++++++++++++++++++-
tools/perf/util/callchain.h | 26 +++-
tools/perf/util/config.c | 20 +++
tools/perf/util/config.h | 4 +
tools/perf/util/machine.c | 82 ++++++++++---
tools/perf/util/symbol.h | 1 +
21 files changed, 634 insertions(+), 131 deletions(-)
create mode 100644 tools/build/feature/test-jvmti.c
create mode 100644 tools/perf/jvmti/Build
delete mode 100644 tools/perf/jvmti/Makefile
[root@jouet ~]# 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 events tests : Ok
6: Validate PERF_RECORD_* events & perf_sample fields : Ok
7: Test perf pmu format parsing : Ok
8: Test dso data read : Ok
9: Test dso data cache : Ok
10: Test dso data reopen : Ok
11: roundtrip evsel->name check : Ok
12: Check parsing of sched tracepoints fields : Ok
13: Generate and check syscalls:sys_enter_openat event fields: Ok
14: struct perf_event_attr setup : Ok
15: Test matching and linking multiple hists : Ok
16: Try 'import perf' in python, checking link problems : Ok
17: Test breakpoint overflow signal handler : Ok
18: Test breakpoint overflow sampling : Ok
19: Test number of exit event of a simple workload : Ok
20: Test software clock events have valid period values : Ok
21: Test object code reading : Ok
22: Test sample parsing : Ok
23: Test using a dummy software event to keep tracking : Ok
24: Test parsing with no sample_id_all bit set : Ok
25: Test filtering hist entries : Ok
26: Test mmap thread lookup : Ok
27: Test thread mg sharing : Ok
28: Test output sorting of hist entries : Ok
29: Test cumulation of child hist entries : Ok
30: Test tracking 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: Test kmod_path__parse function : Ok
34: Test thread map : Ok
35: Test LLVM searching and compiling :
35.1: Basic BPF llvm compiling test : Ok
35.2: Test kbuild searching : Ok
35.3: Compile source for BPF prologue generation test : Ok
35.4: Compile source for BPF relocation test : Ok
36: Test topology in session : Ok
37: Test BPF filter :
37.1: Test basic BPF filtering : Ok
37.2: Test BPF prologue generation : Ok
37.3: Test BPF relocation checker : Ok
38: Test thread map synthesize : Ok
39: Test cpu map synthesize : Ok
40: Test stat config synthesize : Ok
41: Test stat synthesize : Ok
42: Test stat round synthesize : Ok
43: Test attr update synthesize : Ok
44: Test events times : Ok
45: Test backward reading from ring buffer : Ok
46: Test cpu map print : Ok
47: Test SDT event probing : Ok
48: Test is_printable_array function : Ok
49: Test bitmap print : Ok
50: x86 rdpmc test : Ok
51: Test converting perf time to TSC : Ok
52: Test dwarf unwind : Ok
53: Test x86 instruction decoder - new instructions : Ok
54: Test intel cqm nmi context read : Skip
[root@jouet ~]#
[root@zoo ~]# 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
real 61m29.498s
user 0m3.969s
sys 0m3.525s
[root@zoo ~]#
[acme@jouet linux]$ perf stat make -C tools/perf build-test
make: Entering directory '/home/acme/git/linux/tools/perf'
- tarpkg: ./tests/perf-targz-src-pkg .
make_no_libbionic_O: make NO_LIBBIONIC=1
make_no_libbpf_O: make NO_LIBBPF=1
make_no_libunwind_O: make NO_LIBUNWIND=1
make_install_O: make install
make_no_libaudit_O: make NO_LIBAUDIT=1
make_no_libperl_O: make NO_LIBPERL=1
make_install_prefix_slash_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_clean_all_O: make clean all
make_debug_O: make DEBUG=1
make_no_newt_O: make NO_NEWT=1
make_perf_o_O: make perf.o
make_no_demangle_O: make NO_DEMANGLE=1
make_doc_O: make doc
make_install_bin_O: make install-bin
make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1
make_install_prefix_O: make install prefix=/tmp/krava
make_no_slang_O: make NO_SLANG=1
make_no_libelf_O: make NO_LIBELF=1
make_static_O: make LDFLAGS=-static
make_util_map_o_O: make util/map.o
make_with_babeltrace_O: make LIBBABELTRACE=1
make_no_auxtrace_O: make NO_AUXTRACE=1
make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1
make_no_libnuma_O: make NO_LIBNUMA=1
make_pure_O: make
make_help_O: make help
make_no_gtk2_O: make NO_GTK2=1
make_no_libpython_O: make NO_LIBPYTHON=1
make_no_backtrace_O: make NO_BACKTRACE=1
make_tags_O: make tags
make_no_libdw_dwarf_unwind_O: make NO_LIBDW_DWARF_UNWIND=1
make_util_pmu_bison_o_O: make util/pmu-bison.o
OK
make: Leaving directory '/home/acme/git/linux/tools/perf'
^ permalink raw reply [flat|nested] 51+ messages in thread
* [GIT PULL 00/15] perf/core improvements and fixes
@ 2016-10-27 20:40 Arnaldo Carvalho de Melo
0 siblings, 0 replies; 51+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-10-27 20:40 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Andi Kleen, Dave Hansen, David Ahern, Davidlohr Bueso,
Frederic Weisbecker, Jiri Olsa, Josh Poimboeuf, Namhyung Kim,
Peter Zijlstra, Sebastian Andrzej Siewior, Thomas Gleixner,
Tom Zanussi, Wang Nan, Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling,
- Arnaldo
Build and test stats at the end of the message.
The following changes since commit 76e2d2617d767c445498c4c4b1162eb2201cdd77:
Merge tag 'perf-core-for-mingo-20161024' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2016-10-24 20:42:42 +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-20161027
for you to fetch changes up to 97321c8437977490432d470799faa3e5f1227806:
perf tools: Add missing object file to the python binding linkage list (2016-10-26 19:08:43 -0200)
----------------------------------------------------------------
perf/core improvements and fixes:
New features:
- Support matching by topic in 'perf list' (Andi Kleen)
User visible:
- Apply cpu color only when there was activity in 'perf sched map' (Namhyung Kim)
- Always show the task's COMM in 'perf sched map -v' (Namhyung Kim)
- Fix hierarchy column counts in the perf hist browser (top, report), avoiding
showing nothing after pressing the RIGHT key a number of times (Namhyung Kim)
Infrastructure:
- Support cascading options in libsubcmd and use it to share common options in
'perf sched' subcommands (Namhyung Kim)
- Avoid worker cacheline bouncing in 'perf bench futex' (Davidlohr Bueso)
- Sanitize numeric parameters in 'perf bench futex' (Davidlohr Bueso)
- Update copies of kernel files (Arnaldo Carvalho de Melo)
- Fix scripting (perl, python) setup to avoid leaks (Arnaldo Carvalho de Melo)
- Add missing object file to the python binding linkage list (Arnaldo Carvalho de Melo)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Andi Kleen (1):
perf list: Support matching by topic
Arnaldo Carvalho de Melo (6):
perf bench mem: Ignore export.h related changes to mem{cpy,set}.S
tools: Update asm-generic/mman-common.h copy from the kernel
perf tools: Update x86's syscall_64.tbl, adding pkey_(alloc,free,mprotect)
perf scripting: Avoid leaking the scripting_context variable
perf scripting: Don't die if scripting can't be setup, disable it
perf tools: Add missing object file to the python binding linkage list
Davidlohr Bueso (2):
perf bench futex: Avoid worker cacheline bouncing
perf bench futex: Sanitize numeric parameters
Namhyung Kim (6):
perf hist browser: Fix hierarchy column counts
tools lib subcmd: Suppport cascading options
perf sched: Make common options cascading
perf sched map: Apply cpu color when there's an activity
perf sched map: Always show task comm with -v
perf tools: Introduce timestamp_in_usec()
tools/include/uapi/asm-generic/mman-common.h | 5 +++
tools/lib/subcmd/parse-options.c | 14 ++++++++
tools/lib/subcmd/parse-options.h | 2 ++
tools/perf/Makefile.perf | 4 +--
tools/perf/arch/x86/entry/syscalls/syscall_64.tbl | 3 ++
tools/perf/bench/futex-hash.c | 15 +++++----
tools/perf/bench/futex-lock-pi.c | 7 +++-
tools/perf/bench/futex-requeue.c | 2 ++
tools/perf/bench/futex-wake-parallel.c | 4 +++
tools/perf/bench/futex-wake.c | 3 ++
tools/perf/bench/futex.h | 4 +++
tools/perf/builtin-sched.c | 37 +++++++++++----------
tools/perf/builtin-script.c | 9 ++++--
tools/perf/ui/browsers/hists.c | 15 ++++++++-
tools/perf/util/parse-branch-options.c | 2 +-
tools/perf/util/pmu.c | 4 ++-
tools/perf/util/python-ext-sources | 1 +
tools/perf/util/trace-event-scripting.c | 39 +++++++++++------------
tools/perf/util/util.c | 9 ++++++
tools/perf/util/util.h | 3 ++
20 files changed, 130 insertions(+), 52 deletions(-)
# 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 events tests : Ok
6: Validate PERF_RECORD_* events & perf_sample fields : Ok
7: Test perf pmu format parsing : Ok
8: Test dso data read : Ok
9: Test dso data cache : Ok
10: Test dso data reopen : Ok
11: roundtrip evsel->name check : Ok
12: Check parsing of sched tracepoints fields : Ok
13: Generate and check syscalls:sys_enter_openat event fields: Ok
14: struct perf_event_attr setup : Ok
15: Test matching and linking multiple hists : Ok
16: Try 'import perf' in python, checking link problems : Ok
17: Test breakpoint overflow signal handler : Ok
18: Test breakpoint overflow sampling : Ok
19: Test number of exit event of a simple workload : Ok
20: Test software clock events have valid period values : Ok
21: Test object code reading : Ok
22: Test sample parsing : Ok
23: Test using a dummy software event to keep tracking : Ok
24: Test parsing with no sample_id_all bit set : Ok
25: Test filtering hist entries : Ok
26: Test mmap thread lookup : Ok
27: Test thread mg sharing : Ok
28: Test output sorting of hist entries : Ok
29: Test cumulation of child hist entries : Ok
30: Test tracking 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: Test kmod_path__parse function : Ok
34: Test thread map : Ok
35: Test LLVM searching and compiling :
35.1: Basic BPF llvm compiling test : Ok
35.2: Test kbuild searching : Ok
35.3: Compile source for BPF prologue generation test : Ok
35.4: Compile source for BPF relocation test : Ok
36: Test topology in session : Ok
37: Test BPF filter :
37.1: Test basic BPF filtering : Ok
37.2: Test BPF prologue generation : Ok
37.3: Test BPF relocation checker : Ok
38: Test thread map synthesize : Ok
39: Test cpu map synthesize : Ok
40: Test stat config synthesize : Ok
41: Test stat synthesize : Ok
42: Test stat round synthesize : Ok
43: Test attr update synthesize : Ok
44: Test events times : Ok
45: Test backward reading from ring buffer : Ok
46: Test cpu map print : Ok
47: Test SDT event probing : Ok
48: Test is_printable_array function : Ok
49: Test bitmap print : Ok
50: x86 rdpmc test : Ok
51: Test converting perf time to TSC : Ok
52: Test dwarf unwind : Ok
53: Test x86 instruction decoder - new instructions : Ok
54: Test intel cqm nmi context read : Skip
#
# 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_debug_O: make DEBUG=1
make_install_prefix_O: make install prefix=/tmp/krava
make_with_babeltrace_O: make LIBBABELTRACE=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
make_tags_O: make tags
make_util_pmu_bison_o_O: make util/pmu-bison.o
make_help_O: make help
make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1
make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1
make_no_newt_O: make NO_NEWT=1
make_no_gtk2_O: make NO_GTK2=1
make_no_libunwind_O: make NO_LIBUNWIND=1
make_util_map_o_O: make util/map.o
make_install_bin_O: make install-bin
make_no_backtrace_O: make NO_BACKTRACE=1
make_no_demangle_O: make NO_DEMANGLE=1
make_doc_O: make doc
make_perf_o_O: make perf.o
make_no_libbionic_O: make NO_LIBBIONIC=1
make_no_auxtrace_O: make NO_AUXTRACE=1
make_no_slang_O: make NO_SLANG=1
make_no_libperl_O: make NO_LIBPERL=1
make_no_libnuma_O: make NO_LIBNUMA=1
make_install_prefix_slash_O: make install prefix=/tmp/krava/
make_clean_all_O: make clean all
make_no_libpython_O: make NO_LIBPYTHON=1
make_pure_O: make
make_no_libaudit_O: make NO_LIBAUDIT=1
make_no_libdw_dwarf_unwind_O: make NO_LIBDW_DWARF_UNWIND=1
make_install_O: make install
make_no_libelf_O: make NO_LIBELF=1
make_static_O: make LDFLAGS=-static
make_no_libbpf_O: make NO_LIBBPF=1
OK
make: Leaving directory '/home/acme/git/linux/tools/perf'
$
^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: [GIT PULL 00/15] perf/core improvements and fixes
2016-09-22 21:12 Arnaldo Carvalho de Melo
@ 2016-09-23 5:22 ` Ingo Molnar
0 siblings, 0 replies; 51+ messages in thread
From: Ingo Molnar @ 2016-09-23 5:22 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Alexander Shishkin, Andi Kleen, David Ahern, Don Zickus,
Jiri Olsa, Joe Mario, linux-arm-kernel, Mathieu Poirier,
Namhyung Kim, Peter Zijlstra
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> From: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> Hi Ingo,
>
> Please consider pulling,
>
> - Arnaldo
>
> The following changes since commit 89f1c2c59c4aef8e26edbc7db5175e6ffb0e9ec7:
>
> Merge tag 'perf-core-for-mingo-20160920' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2016-09-20 23:32: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-20160922
>
> for you to fetch changes up to 2d831454140f28fa643b78deede4511b9e2c9e5f:
>
> perf hists: Make hists__fprintf_headers function global (2016-09-22 13:08:59 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements:
>
> New features:
>
> - Add support for interacting with Coresight PMU ETMs/PTMs, that are IP blocks
> to perform hardware assisted tracing on a ARM CPU core (Mathieu Poirier)
>
> Infrastructure:
>
> - Histogram prep work for the upcoming c2c tool (Jiri Olsa)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Jiri Olsa (9):
> perf evsel: Remove superfluous initialization of weight
> perf hists: Use bigger buffer for stdio headers
> perf hists: Add __hist_entry__snprintf function
> perf tools: Make reset_dimensions global
> perf tools: Make output_field_add and sort_dimension__add global
> perf tools: Make several sorting functions global
> perf tools: Make several display functions global
> perf hists: Make __hist_entry__snprintf function global
> perf hists: Make hists__fprintf_headers function global
>
> Mathieu Poirier (6):
> perf tools: Confine __get_cpuid() to x86 architecture
> perf tools: Make coresight PMU listable
> perf tools: Add coresight etm PMU record capabilities
> perf pmu: Push configuration down to PMU driver
> perf tools: Add PMU configuration to tools
> perf tools: Add sink configuration for cs_etm PMU
>
> MAINTAINERS | 5 +
> tools/perf/Makefile.config | 11 +-
> tools/perf/arch/arm/util/Build | 2 +
> tools/perf/arch/arm/util/auxtrace.c | 54 ++++
> tools/perf/arch/arm/util/cs-etm.c | 617 ++++++++++++++++++++++++++++++++++++
> tools/perf/arch/arm/util/cs-etm.h | 26 ++
> tools/perf/arch/arm/util/pmu.c | 36 +++
> tools/perf/arch/arm64/util/Build | 4 +
> tools/perf/builtin-record.c | 10 +
> tools/perf/builtin-stat.c | 9 +
> tools/perf/builtin-top.c | 13 +
> tools/perf/ui/browsers/hists.c | 2 +-
> tools/perf/ui/hist.c | 2 +-
> tools/perf/ui/stdio/hist.c | 14 +-
> tools/perf/util/Build | 1 +
> tools/perf/util/auxtrace.c | 1 +
> tools/perf/util/auxtrace.h | 1 +
> tools/perf/util/cs-etm.h | 74 +++++
> tools/perf/util/drv_configs.c | 77 +++++
> tools/perf/util/drv_configs.h | 26 ++
> tools/perf/util/evsel.c | 2 -
> tools/perf/util/hist.h | 5 +
> tools/perf/util/pmu.h | 2 +
> tools/perf/util/sort.c | 16 +-
> tools/perf/util/sort.h | 11 +
> 25 files changed, 1001 insertions(+), 20 deletions(-)
> create mode 100644 tools/perf/arch/arm/util/auxtrace.c
> create mode 100644 tools/perf/arch/arm/util/cs-etm.c
> create mode 100644 tools/perf/arch/arm/util/cs-etm.h
> create mode 100644 tools/perf/arch/arm/util/pmu.c
> create mode 100644 tools/perf/util/cs-etm.h
> create mode 100644 tools/perf/util/drv_configs.c
> create mode 100644 tools/perf/util/drv_configs.h
>
> [root@zoo ~]# time dm
> 1 73.911 alpine:3.4: Ok
> 2 26.890 android-ndk:r12b-arm: Ok
> 3 77.833 archlinux:latest: Ok
> 4 40.814 centos:5: Ok
> 5 64.151 centos:6: Ok
> 6 75.720 centos:7: Ok
> 7 68.960 debian:7: Ok
> 8 75.606 debian:8: Ok
> 9 75.127 fedora:20: Ok
> 10 80.186 fedora:21: Ok
> 11 80.157 fedora:22: Ok
> 12 83.273 fedora:23: Ok
> 13 91.566 fedora:24: Ok
> 14 37.720 fedora:24-x-ARC-uClibc: Ok
> 15 98.492 fedora:rawhide: Ok
> 16 100.555 mageia:5: Ok
> 17 94.140 opensuse:13.2: Ok
> 18 95.476 opensuse:42.1: Ok
> 19 106.037 opensuse:tumbleweed: Ok
> 20 75.951 ubuntu:12.04.5: Ok
> 21 52.138 ubuntu:14.04: Ok
> 22 94.814 ubuntu:14.04.4: Ok
> 23 100.525 ubuntu:15.10: Ok
> 24 93.813 ubuntu:16.04: Ok
> 25 85.214 ubuntu:16.04-x-arm: Ok
> 26 83.487 ubuntu:16.04-x-arm64: Ok
> 27 82.918 ubuntu:16.04-x-powerpc64: Ok
> 28 84.189 ubuntu:16.04-x-powerpc64el: Ok
> 29 93.162 ubuntu:16.10: Ok
>
> real 38m13.568s
> user 0m2.379s
> sys 0m2.402s
> [root@zoo ~]#
>
> [root@jouet ~]# 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 events tests : Ok
> 6: Validate PERF_RECORD_* events & perf_sample fields : Ok
> 7: Test perf pmu format parsing : Ok
> 8: Test dso data read : Ok
> 9: Test dso data cache : Ok
> 10: Test dso data reopen : Ok
> 11: roundtrip evsel->name check : Ok
> 12: Check parsing of sched tracepoints fields : Ok
> 13: Generate and check syscalls:sys_enter_openat event fields: Ok
> 14: struct perf_event_attr setup : Ok
> 15: Test matching and linking multiple hists : Ok
> 16: Try 'import perf' in python, checking link problems : Ok
> 17: Test breakpoint overflow signal handler : Ok
> 18: Test breakpoint overflow sampling : Ok
> 19: Test number of exit event of a simple workload : Ok
> 20: Test software clock events have valid period values : Ok
> 21: Test object code reading : Ok
> 22: Test sample parsing : Ok
> 23: Test using a dummy software event to keep tracking : Ok
> 24: Test parsing with no sample_id_all bit set : Ok
> 25: Test filtering hist entries : Ok
> 26: Test mmap thread lookup : Ok
> 27: Test thread mg sharing : Ok
> 28: Test output sorting of hist entries : Ok
> 29: Test cumulation of child hist entries : Ok
> 30: Test tracking 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: Test kmod_path__parse function : Ok
> 34: Test thread map : Ok
> 35: Test LLVM searching and compiling :
> 35.1: Basic BPF llvm compiling test : Ok
> 35.2: Test kbuild searching : Ok
> 35.3: Compile source for BPF prologue generation test : Ok
> 35.4: Compile source for BPF relocation test : Ok
> 36: Test topology in session : Ok
> 37: Test BPF filter :
> 37.1: Test basic BPF filtering : Ok
> 37.2: Test BPF prologue generation : Ok
> 37.3: Test BPF relocation checker : Ok
> 38: Test thread map synthesize : Ok
> 39: Test cpu map synthesize : Ok
> 40: Test stat config synthesize : Ok
> 41: Test stat synthesize : Ok
> 42: Test stat round synthesize : Ok
> 43: Test attr update synthesize : Ok
> 44: Test events times : Ok
> 45: Test backward reading from ring buffer : Ok
> 46: Test cpu map print : Ok
> 47: Test SDT event probing : Ok
> 48: Test is_printable_array function : Ok
> 49: Test bitmap print : Ok
> 50: x86 rdpmc test : Ok
> 51: Test converting perf time to TSC : Ok
> 52: Test dwarf unwind : Ok
> 53: Test x86 instruction decoder - new instructions : Ok
> 54: Test intel cqm nmi context read : Skip
> [root@jouet ~]#
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 51+ messages in thread
* [GIT PULL 00/15] perf/core improvements and fixes
@ 2016-09-22 21:12 Arnaldo Carvalho de Melo
2016-09-23 5:22 ` Ingo Molnar
0 siblings, 1 reply; 51+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-09-22 21:12 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Alexander Shishkin, Andi Kleen, David Ahern, Don Zickus,
Jiri Olsa, Joe Mario, linux-arm-kernel, Mathieu Poirier,
Namhyung Kim, Peter Zijlstra
From: Arnaldo Carvalho de Melo <acme@redhat.com>
Hi Ingo,
Please consider pulling,
- Arnaldo
The following changes since commit 89f1c2c59c4aef8e26edbc7db5175e6ffb0e9ec7:
Merge tag 'perf-core-for-mingo-20160920' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2016-09-20 23:32: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-20160922
for you to fetch changes up to 2d831454140f28fa643b78deede4511b9e2c9e5f:
perf hists: Make hists__fprintf_headers function global (2016-09-22 13:08:59 -0300)
----------------------------------------------------------------
perf/core improvements:
New features:
- Add support for interacting with Coresight PMU ETMs/PTMs, that are IP blocks
to perform hardware assisted tracing on a ARM CPU core (Mathieu Poirier)
Infrastructure:
- Histogram prep work for the upcoming c2c tool (Jiri Olsa)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Jiri Olsa (9):
perf evsel: Remove superfluous initialization of weight
perf hists: Use bigger buffer for stdio headers
perf hists: Add __hist_entry__snprintf function
perf tools: Make reset_dimensions global
perf tools: Make output_field_add and sort_dimension__add global
perf tools: Make several sorting functions global
perf tools: Make several display functions global
perf hists: Make __hist_entry__snprintf function global
perf hists: Make hists__fprintf_headers function global
Mathieu Poirier (6):
perf tools: Confine __get_cpuid() to x86 architecture
perf tools: Make coresight PMU listable
perf tools: Add coresight etm PMU record capabilities
perf pmu: Push configuration down to PMU driver
perf tools: Add PMU configuration to tools
perf tools: Add sink configuration for cs_etm PMU
MAINTAINERS | 5 +
tools/perf/Makefile.config | 11 +-
tools/perf/arch/arm/util/Build | 2 +
tools/perf/arch/arm/util/auxtrace.c | 54 ++++
tools/perf/arch/arm/util/cs-etm.c | 617 ++++++++++++++++++++++++++++++++++++
tools/perf/arch/arm/util/cs-etm.h | 26 ++
tools/perf/arch/arm/util/pmu.c | 36 +++
tools/perf/arch/arm64/util/Build | 4 +
tools/perf/builtin-record.c | 10 +
tools/perf/builtin-stat.c | 9 +
tools/perf/builtin-top.c | 13 +
tools/perf/ui/browsers/hists.c | 2 +-
tools/perf/ui/hist.c | 2 +-
tools/perf/ui/stdio/hist.c | 14 +-
tools/perf/util/Build | 1 +
tools/perf/util/auxtrace.c | 1 +
tools/perf/util/auxtrace.h | 1 +
tools/perf/util/cs-etm.h | 74 +++++
tools/perf/util/drv_configs.c | 77 +++++
tools/perf/util/drv_configs.h | 26 ++
tools/perf/util/evsel.c | 2 -
tools/perf/util/hist.h | 5 +
tools/perf/util/pmu.h | 2 +
tools/perf/util/sort.c | 16 +-
tools/perf/util/sort.h | 11 +
25 files changed, 1001 insertions(+), 20 deletions(-)
create mode 100644 tools/perf/arch/arm/util/auxtrace.c
create mode 100644 tools/perf/arch/arm/util/cs-etm.c
create mode 100644 tools/perf/arch/arm/util/cs-etm.h
create mode 100644 tools/perf/arch/arm/util/pmu.c
create mode 100644 tools/perf/util/cs-etm.h
create mode 100644 tools/perf/util/drv_configs.c
create mode 100644 tools/perf/util/drv_configs.h
[root@zoo ~]# time dm
1 73.911 alpine:3.4: Ok
2 26.890 android-ndk:r12b-arm: Ok
3 77.833 archlinux:latest: Ok
4 40.814 centos:5: Ok
5 64.151 centos:6: Ok
6 75.720 centos:7: Ok
7 68.960 debian:7: Ok
8 75.606 debian:8: Ok
9 75.127 fedora:20: Ok
10 80.186 fedora:21: Ok
11 80.157 fedora:22: Ok
12 83.273 fedora:23: Ok
13 91.566 fedora:24: Ok
14 37.720 fedora:24-x-ARC-uClibc: Ok
15 98.492 fedora:rawhide: Ok
16 100.555 mageia:5: Ok
17 94.140 opensuse:13.2: Ok
18 95.476 opensuse:42.1: Ok
19 106.037 opensuse:tumbleweed: Ok
20 75.951 ubuntu:12.04.5: Ok
21 52.138 ubuntu:14.04: Ok
22 94.814 ubuntu:14.04.4: Ok
23 100.525 ubuntu:15.10: Ok
24 93.813 ubuntu:16.04: Ok
25 85.214 ubuntu:16.04-x-arm: Ok
26 83.487 ubuntu:16.04-x-arm64: Ok
27 82.918 ubuntu:16.04-x-powerpc64: Ok
28 84.189 ubuntu:16.04-x-powerpc64el: Ok
29 93.162 ubuntu:16.10: Ok
real 38m13.568s
user 0m2.379s
sys 0m2.402s
[root@zoo ~]#
[root@jouet ~]# 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 events tests : Ok
6: Validate PERF_RECORD_* events & perf_sample fields : Ok
7: Test perf pmu format parsing : Ok
8: Test dso data read : Ok
9: Test dso data cache : Ok
10: Test dso data reopen : Ok
11: roundtrip evsel->name check : Ok
12: Check parsing of sched tracepoints fields : Ok
13: Generate and check syscalls:sys_enter_openat event fields: Ok
14: struct perf_event_attr setup : Ok
15: Test matching and linking multiple hists : Ok
16: Try 'import perf' in python, checking link problems : Ok
17: Test breakpoint overflow signal handler : Ok
18: Test breakpoint overflow sampling : Ok
19: Test number of exit event of a simple workload : Ok
20: Test software clock events have valid period values : Ok
21: Test object code reading : Ok
22: Test sample parsing : Ok
23: Test using a dummy software event to keep tracking : Ok
24: Test parsing with no sample_id_all bit set : Ok
25: Test filtering hist entries : Ok
26: Test mmap thread lookup : Ok
27: Test thread mg sharing : Ok
28: Test output sorting of hist entries : Ok
29: Test cumulation of child hist entries : Ok
30: Test tracking 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: Test kmod_path__parse function : Ok
34: Test thread map : Ok
35: Test LLVM searching and compiling :
35.1: Basic BPF llvm compiling test : Ok
35.2: Test kbuild searching : Ok
35.3: Compile source for BPF prologue generation test : Ok
35.4: Compile source for BPF relocation test : Ok
36: Test topology in session : Ok
37: Test BPF filter :
37.1: Test basic BPF filtering : Ok
37.2: Test BPF prologue generation : Ok
37.3: Test BPF relocation checker : Ok
38: Test thread map synthesize : Ok
39: Test cpu map synthesize : Ok
40: Test stat config synthesize : Ok
41: Test stat synthesize : Ok
42: Test stat round synthesize : Ok
43: Test attr update synthesize : Ok
44: Test events times : Ok
45: Test backward reading from ring buffer : Ok
46: Test cpu map print : Ok
47: Test SDT event probing : Ok
48: Test is_printable_array function : Ok
49: Test bitmap print : Ok
50: x86 rdpmc test : Ok
51: Test converting perf time to TSC : Ok
52: Test dwarf unwind : Ok
53: Test x86 instruction decoder - new instructions : Ok
54: Test intel cqm nmi context read : Skip
[root@jouet ~]#
^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: [GIT PULL 00/15] perf/core improvements and fixes
2016-07-18 23:33 Arnaldo Carvalho de Melo
@ 2016-07-19 6:46 ` Ingo Molnar
0 siblings, 0 replies; 51+ messages in thread
From: Ingo Molnar @ 2016-07-19 6:46 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Alexander Shishkin, Dan Carpenter, David Ahern, He Kuang,
Jiri Olsa, Jiri Pirko, Josh Poimboeuf, Kan Liang, Mark Rutland,
Masami Hiramatsu, Namhyung Kim, Peter Zijlstra, Stephane Eranian,
Steven Rostedt, Wang Nan
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> From: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> Hi Ingo,
>
> Please consider pulling,
>
> - Arnaldo
>
> Build stats:
>
> [root@jouet 5]# perf stat dm
> alpine:3.4: Ok
> android-ndk:r12b: Ok
> centos:5: Ok
> centos:6: Ok
> centos:7: Ok
> debian:7: Ok
> debian:8: Ok
> debian:experimental: Ok
> fedora:21: Ok
> fedora:22: Ok
> fedora:23: Ok
> fedora:24: Ok
> fedora:rawhide: Ok
> mageia:5: Ok
> opensuse:13.2: Ok
> opensuse:42.1: Ok
> ubuntu:14.04.4: Ok
> ubuntu:15.10: Ok
> ubuntu:16.04: Ok
> ubuntu:16.04-x-armhf: Ok
>
> Performance counter stats for 'dm':
>
> 1896.227285 task-clock (msec) # 0.002 CPUs utilized
> 76,145 context-switches # 0.040 M/sec
> 9,323 cpu-migrations # 0.005 M/sec
> 53,894 page-faults # 0.028 M/sec
> 5,497,625,679 cycles # 2.899 GHz
> 5,110,226,458 instructions # 0.93 insn per cycle
> 950,036,839 branches # 501.014 M/sec
> 16,978,253 branch-misses # 1.79% of all branches
>
> 767.910393301 seconds time elapsed
>
> [root@jouet 5]#
>
> The following changes since commit 09211e2530ab4905ec16edecc27022d6b247419d:
>
> Merge tag 'perf-core-for-mingo-20160715' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2016-07-16 22:36:42 +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-20160718
>
> for you to fetch changes up to 988dd774dcbd9151c2a643fc7284c5c3c4d0adb7:
>
> perf tests: Add is_printable_array test (2016-07-18 19:50:35 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> User visible:
>
> - Properly report when a function wildcard produces no matches in 'perf probe'
> (Masami Hiramatsu)
>
> - Balance opening and reading events in 'perf stat', which could cause
> it to get stuck trying to close invalid file descriptors (Mark Rutland)
>
> Infrastructure:
>
> - Copy more headers from the kernel, this time for headers that
> were just including the contents of its kernel counterparts, should
> help resolving the problems with linux-next, where some uapi related
> patches seem to be breaking tools/object/ build.
>
> Some more combing will be done, but at least it is possible to build
> perf out of tree, via a detached tarball (make help | grep perf)
> without including kernel files in its MANIFEST (Arnaldo Carvalho de Melo)
>
> - Fix smatch found errors that were not causing problems, but are
> mistakes nonetheless (Dan Carpenter)
>
> - Fix string vs byte array resolving in the python script code (Jiri Olsa)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (7):
> perf tools: Add missing linux/compiler.h include to perf-sys.h
> perf tools: Remove tools/perf/util/include/asm/byteorder.h
> perf tools: Remove tools/perf/util/include/linux/const.h
> Remove: kernel unistd*h files from perf's MANIFEST, not used
> tools: Copy the bitops files accessed from the kernel and check for drift
> perf tools: Remove include/linux/list.h from perf's MANIFEST
> tools: Copy linux/{hash,poison}.h and check for drift
>
> Dan Carpenter (2):
> perf jit: Add missing curly braces
> perf jit: Remove some no-op error handling
>
> Jiri Olsa (3):
> perf script python: Fix string vs byte array resolving
> perf tools: Make is_printable_array global
> perf tests: Add is_printable_array test
>
> Mark Rutland (2):
> perf stat: Balance opening and reading events
> perf cpu_map: Add more helpers
>
> Masami Hiramatsu (1):
> perf probe: Warn unmatched function filter correctly
>
> tools/include/asm-generic/bitops/__fls.h | 44 ++++++++-
> tools/include/asm-generic/bitops/arch_hweight.h | 26 ++++-
> tools/include/asm-generic/bitops/const_hweight.h | 44 ++++++++-
> tools/include/asm-generic/bitops/fls.h | 42 ++++++++-
> tools/include/asm-generic/bitops/fls64.h | 37 +++++++-
> tools/include/linux/hash.h | 105 ++++++++++++++++++++-
> tools/include/linux/poison.h | 91 +++++++++++++++++-
> tools/perf/MANIFEST | 13 ---
> tools/perf/Makefile.perf | 18 ++++
> tools/perf/builtin-stat.c | 8 +-
> tools/perf/jvmti/jvmti_agent.c | 10 +-
> tools/perf/perf-sys.h | 1 +
> tools/perf/tests/Build | 1 +
> tools/perf/tests/builtin-test.c | 4 +
> tools/perf/tests/is_printable_array.c | 36 +++++++
> tools/perf/tests/tests.h | 1 +
> tools/perf/util/cpumap.c | 14 ++-
> tools/perf/util/cpumap.h | 2 +
> tools/perf/util/include/asm/byteorder.h | 2 -
> tools/perf/util/include/linux/const.h | 1 -
> tools/perf/util/map.c | 3 +
> tools/perf/util/probe-event.c | 12 ++-
> tools/perf/util/python.c | 12 ---
> .../util/scripting-engines/trace-event-python.c | 25 +++--
> tools/perf/util/util.c | 16 ++++
> tools/perf/util/util.h | 1 +
> 26 files changed, 512 insertions(+), 57 deletions(-)
> create mode 100644 tools/perf/tests/is_printable_array.c
> delete mode 100644 tools/perf/util/include/asm/byteorder.h
> delete mode 100644 tools/perf/util/include/linux/const.h
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 51+ messages in thread
* [GIT PULL 00/15] perf/core improvements and fixes
@ 2016-07-18 23:33 Arnaldo Carvalho de Melo
2016-07-19 6:46 ` Ingo Molnar
0 siblings, 1 reply; 51+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-07-18 23:33 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Alexander Shishkin, Dan Carpenter, David Ahern, He Kuang,
Jiri Olsa, Jiri Pirko, Josh Poimboeuf, Kan Liang, Mark Rutland,
Masami Hiramatsu, Namhyung Kim, Peter Zijlstra, Stephane Eranian,
Steven Rostedt, Wang Nan
From: Arnaldo Carvalho de Melo <acme@redhat.com>
Hi Ingo,
Please consider pulling,
- Arnaldo
Build stats:
[root@jouet 5]# perf stat dm
alpine:3.4: Ok
android-ndk:r12b: Ok
centos:5: Ok
centos:6: Ok
centos:7: Ok
debian:7: Ok
debian:8: Ok
debian:experimental: Ok
fedora:21: Ok
fedora:22: Ok
fedora:23: Ok
fedora:24: Ok
fedora:rawhide: Ok
mageia:5: Ok
opensuse:13.2: Ok
opensuse:42.1: Ok
ubuntu:14.04.4: Ok
ubuntu:15.10: Ok
ubuntu:16.04: Ok
ubuntu:16.04-x-armhf: Ok
Performance counter stats for 'dm':
1896.227285 task-clock (msec) # 0.002 CPUs utilized
76,145 context-switches # 0.040 M/sec
9,323 cpu-migrations # 0.005 M/sec
53,894 page-faults # 0.028 M/sec
5,497,625,679 cycles # 2.899 GHz
5,110,226,458 instructions # 0.93 insn per cycle
950,036,839 branches # 501.014 M/sec
16,978,253 branch-misses # 1.79% of all branches
767.910393301 seconds time elapsed
[root@jouet 5]#
The following changes since commit 09211e2530ab4905ec16edecc27022d6b247419d:
Merge tag 'perf-core-for-mingo-20160715' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2016-07-16 22:36:42 +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-20160718
for you to fetch changes up to 988dd774dcbd9151c2a643fc7284c5c3c4d0adb7:
perf tests: Add is_printable_array test (2016-07-18 19:50:35 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
User visible:
- Properly report when a function wildcard produces no matches in 'perf probe'
(Masami Hiramatsu)
- Balance opening and reading events in 'perf stat', which could cause
it to get stuck trying to close invalid file descriptors (Mark Rutland)
Infrastructure:
- Copy more headers from the kernel, this time for headers that
were just including the contents of its kernel counterparts, should
help resolving the problems with linux-next, where some uapi related
patches seem to be breaking tools/object/ build.
Some more combing will be done, but at least it is possible to build
perf out of tree, via a detached tarball (make help | grep perf)
without including kernel files in its MANIFEST (Arnaldo Carvalho de Melo)
- Fix smatch found errors that were not causing problems, but are
mistakes nonetheless (Dan Carpenter)
- Fix string vs byte array resolving in the python script code (Jiri Olsa)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Arnaldo Carvalho de Melo (7):
perf tools: Add missing linux/compiler.h include to perf-sys.h
perf tools: Remove tools/perf/util/include/asm/byteorder.h
perf tools: Remove tools/perf/util/include/linux/const.h
Remove: kernel unistd*h files from perf's MANIFEST, not used
tools: Copy the bitops files accessed from the kernel and check for drift
perf tools: Remove include/linux/list.h from perf's MANIFEST
tools: Copy linux/{hash,poison}.h and check for drift
Dan Carpenter (2):
perf jit: Add missing curly braces
perf jit: Remove some no-op error handling
Jiri Olsa (3):
perf script python: Fix string vs byte array resolving
perf tools: Make is_printable_array global
perf tests: Add is_printable_array test
Mark Rutland (2):
perf stat: Balance opening and reading events
perf cpu_map: Add more helpers
Masami Hiramatsu (1):
perf probe: Warn unmatched function filter correctly
tools/include/asm-generic/bitops/__fls.h | 44 ++++++++-
tools/include/asm-generic/bitops/arch_hweight.h | 26 ++++-
tools/include/asm-generic/bitops/const_hweight.h | 44 ++++++++-
tools/include/asm-generic/bitops/fls.h | 42 ++++++++-
tools/include/asm-generic/bitops/fls64.h | 37 +++++++-
tools/include/linux/hash.h | 105 ++++++++++++++++++++-
tools/include/linux/poison.h | 91 +++++++++++++++++-
tools/perf/MANIFEST | 13 ---
tools/perf/Makefile.perf | 18 ++++
tools/perf/builtin-stat.c | 8 +-
tools/perf/jvmti/jvmti_agent.c | 10 +-
tools/perf/perf-sys.h | 1 +
tools/perf/tests/Build | 1 +
tools/perf/tests/builtin-test.c | 4 +
tools/perf/tests/is_printable_array.c | 36 +++++++
tools/perf/tests/tests.h | 1 +
tools/perf/util/cpumap.c | 14 ++-
tools/perf/util/cpumap.h | 2 +
tools/perf/util/include/asm/byteorder.h | 2 -
tools/perf/util/include/linux/const.h | 1 -
tools/perf/util/map.c | 3 +
tools/perf/util/probe-event.c | 12 ++-
tools/perf/util/python.c | 12 ---
.../util/scripting-engines/trace-event-python.c | 25 +++--
tools/perf/util/util.c | 16 ++++
tools/perf/util/util.h | 1 +
26 files changed, 512 insertions(+), 57 deletions(-)
create mode 100644 tools/perf/tests/is_printable_array.c
delete mode 100644 tools/perf/util/include/asm/byteorder.h
delete mode 100644 tools/perf/util/include/linux/const.h
^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: [GIT PULL 00/15] perf/core improvements and fixes
2016-05-10 15:15 Arnaldo Carvalho de Melo
@ 2016-05-10 20:28 ` Ingo Molnar
0 siblings, 0 replies; 51+ messages in thread
From: Ingo Molnar @ 2016-05-10 20:28 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Adrian Hunter, Alexander Shishkin, Andi Kleen,
Chris Phlipot, David Ahern, Ekaterina Tumanova, He Kuang,
Jiri Olsa, Josh Poimboeuf, Kan Liang, Masami Hiramatsu,
Milian Wolff, Namhyung Kim, Pekka Enberg, Peter Zijlstra,
pi3orama, Stephane Eranian, Sukadev Bhattiprolu, Wang Nan,
Zefan Li, Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Hi Ingo,
>
> Please consider pulling,
>
> - Arnaldo
>
> The following changes since commit ea7c28518943b26a85d73cd76acd03b71962cb18:
>
> Merge tag 'perf-core-for-mingo-20160506' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2016-05-07 06:49:28 +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-20160510
>
> for you to fetch changes up to 452e84012595d681f254a3a0d733fb0b18ffaf42:
>
> perf tools: Remove xrealloc and ALLOC_GROW (2016-05-10 11:58:27 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> User visible:
>
> - Recording 'dwarf' callchains do not need DWARF unwinding support (He Kuang)
>
> - Print recently added perf_event_attr.write_backward bit flag in -vv
> verbose mode (Arnaldo Carvalho de Melo)
>
> - Fix incorrect python db-export error message in 'perf script' (Chris Phlipot)
>
> - Fix handling of zero-length symbols (Chris Phlipot)
>
> Andi Kleen (1):
> perf stat: Scale values by unit before metrics
>
> Infrastructure:
>
> - Rewrite strbuf not to die(), making tools using it to check its
> return value instead (Masami Hiramatsu)
>
> - Support reading from backward ring buffer, add a 'perf test' entry
> for it (Wang Nan)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Andi Kleen (1):
> perf stat: Scale values by unit before metrics
>
> Arnaldo Carvalho de Melo (1):
> perf evsel: Print state of perf_event_attr.write_backward
>
> Chris Phlipot (2):
> perf script: Fix incorrect python db-export error message
> perf symbols: Fix handling of zero-length symbols.
>
> He Kuang (1):
> perf callchain: Recording 'dwarf' callchains do not need DWARF unwinding support
>
> Masami Hiramatsu (8):
> perf tools: Rewrite strbuf not to die()
> perf probe: Check the return value of strbuf APIs
> perf help: Make check_emacsclient_version to check strbuf APIs
> perf tools: Make alias handler to check return value of strbuf
> perf header: Make topology checkers to check return value of strbuf
> perf pmu: Make pmu_formats_string to check return value of strbuf
> perf help: Do not use ALLOC_GROW in add_cmd_list
> perf tools: Remove xrealloc and ALLOC_GROW
>
> Wang Nan (2):
> perf tools: Support reading from backward ring buffer
> perf tests: Add test to check backward ring buffer
>
> tools/perf/builtin-help.c | 18 +--
> tools/perf/perf.c | 8 +-
> tools/perf/tests/Build | 1 +
> tools/perf/tests/backward-ring-buffer.c | 151 +++++++++++++++++++++
> tools/perf/tests/builtin-test.c | 4 +
> tools/perf/tests/tests.h | 1 +
> tools/perf/util/Build | 1 -
> tools/perf/util/cache.h | 19 ---
> tools/perf/util/dwarf-aux.c | 52 ++++---
> tools/perf/util/evlist.c | 50 +++++++
> tools/perf/util/evlist.h | 4 +
> tools/perf/util/evsel.c | 1 +
> tools/perf/util/header.c | 31 +++--
> tools/perf/util/help-unknown-cmd.c | 30 ++--
> tools/perf/util/pmu.c | 10 +-
> tools/perf/util/probe-event.c | 143 +++++++++++--------
> tools/perf/util/probe-finder.c | 30 ++--
> tools/perf/util/quote.c | 36 ++---
> tools/perf/util/quote.h | 2 +-
> .../util/scripting-engines/trace-event-python.c | 2 +-
> tools/perf/util/stat.c | 4 +-
> tools/perf/util/strbuf.c | 93 +++++++++----
> tools/perf/util/strbuf.h | 25 ++--
> tools/perf/util/symbol.c | 2 +-
> tools/perf/util/util.c | 2 -
> tools/perf/util/util.h | 6 -
> tools/perf/util/wrapper.c | 29 ----
> 27 files changed, 510 insertions(+), 245 deletions(-)
> create mode 100644 tools/perf/tests/backward-ring-buffer.c
> delete mode 100644 tools/perf/util/wrapper.c
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 51+ messages in thread
* [GIT PULL 00/15] perf/core improvements and fixes
@ 2016-05-10 15:15 Arnaldo Carvalho de Melo
2016-05-10 20:28 ` Ingo Molnar
0 siblings, 1 reply; 51+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-05-10 15:15 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Alexander Shishkin, Andi Kleen, Chris Phlipot, David Ahern,
Ekaterina Tumanova, He Kuang, Jiri Olsa, Josh Poimboeuf,
Kan Liang, Masami Hiramatsu, Milian Wolff, Namhyung Kim,
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 ea7c28518943b26a85d73cd76acd03b71962cb18:
Merge tag 'perf-core-for-mingo-20160506' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2016-05-07 06:49:28 +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-20160510
for you to fetch changes up to 452e84012595d681f254a3a0d733fb0b18ffaf42:
perf tools: Remove xrealloc and ALLOC_GROW (2016-05-10 11:58:27 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
User visible:
- Recording 'dwarf' callchains do not need DWARF unwinding support (He Kuang)
- Print recently added perf_event_attr.write_backward bit flag in -vv
verbose mode (Arnaldo Carvalho de Melo)
- Fix incorrect python db-export error message in 'perf script' (Chris Phlipot)
- Fix handling of zero-length symbols (Chris Phlipot)
Andi Kleen (1):
perf stat: Scale values by unit before metrics
Infrastructure:
- Rewrite strbuf not to die(), making tools using it to check its
return value instead (Masami Hiramatsu)
- Support reading from backward ring buffer, add a 'perf test' entry
for it (Wang Nan)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Andi Kleen (1):
perf stat: Scale values by unit before metrics
Arnaldo Carvalho de Melo (1):
perf evsel: Print state of perf_event_attr.write_backward
Chris Phlipot (2):
perf script: Fix incorrect python db-export error message
perf symbols: Fix handling of zero-length symbols.
He Kuang (1):
perf callchain: Recording 'dwarf' callchains do not need DWARF unwinding support
Masami Hiramatsu (8):
perf tools: Rewrite strbuf not to die()
perf probe: Check the return value of strbuf APIs
perf help: Make check_emacsclient_version to check strbuf APIs
perf tools: Make alias handler to check return value of strbuf
perf header: Make topology checkers to check return value of strbuf
perf pmu: Make pmu_formats_string to check return value of strbuf
perf help: Do not use ALLOC_GROW in add_cmd_list
perf tools: Remove xrealloc and ALLOC_GROW
Wang Nan (2):
perf tools: Support reading from backward ring buffer
perf tests: Add test to check backward ring buffer
tools/perf/builtin-help.c | 18 +--
tools/perf/perf.c | 8 +-
tools/perf/tests/Build | 1 +
tools/perf/tests/backward-ring-buffer.c | 151 +++++++++++++++++++++
tools/perf/tests/builtin-test.c | 4 +
tools/perf/tests/tests.h | 1 +
tools/perf/util/Build | 1 -
tools/perf/util/cache.h | 19 ---
tools/perf/util/dwarf-aux.c | 52 ++++---
tools/perf/util/evlist.c | 50 +++++++
tools/perf/util/evlist.h | 4 +
tools/perf/util/evsel.c | 1 +
tools/perf/util/header.c | 31 +++--
tools/perf/util/help-unknown-cmd.c | 30 ++--
tools/perf/util/pmu.c | 10 +-
tools/perf/util/probe-event.c | 143 +++++++++++--------
tools/perf/util/probe-finder.c | 30 ++--
tools/perf/util/quote.c | 36 ++---
tools/perf/util/quote.h | 2 +-
.../util/scripting-engines/trace-event-python.c | 2 +-
tools/perf/util/stat.c | 4 +-
tools/perf/util/strbuf.c | 93 +++++++++----
tools/perf/util/strbuf.h | 25 ++--
tools/perf/util/symbol.c | 2 +-
tools/perf/util/util.c | 2 -
tools/perf/util/util.h | 6 -
tools/perf/util/wrapper.c | 29 ----
27 files changed, 510 insertions(+), 245 deletions(-)
create mode 100644 tools/perf/tests/backward-ring-buffer.c
delete mode 100644 tools/perf/util/wrapper.c
^ permalink raw reply [flat|nested] 51+ messages in thread
* [GIT PULL 00/15] perf/core improvements and fixes
@ 2016-03-07 19:44 Arnaldo Carvalho de Melo
0 siblings, 0 replies; 51+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-03-07 19:44 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Alexander Shishkin, Andi Kleen, Borislav Petkov, Colin Ian King,
David Ahern, Davidlohr Bueso, He Kuang, Jiri Olsa, Mel Gorman,
Namhyung Kim, Peter Zijlstra, Stephane Eranian, Steven Rostedt,
Wang Nan, Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling,
- Arnaldo
The following changes since commit 009668520ae00d52026ccdb3884864e3473c6b65:
Merge tag 'perf-core-for-mingo-20160303' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2016-03-04 12:19:21 +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-20160307
for you to fetch changes up to b03ae342d9bec460a6c9c327c3f5f758263b0932:
perf report: Use hierarchy hpp list on gtk (2016-03-07 15:10:41 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
User visible:
- Allow grouping multiple sort keys per 'perf report/top --hierarchy'
level (Namhyung Kim)
- Document 'perf stat --detailed' option (Borislav Petkov)
Infrastructure:
- jitdump prep work for supporting it with Intel PT (Adrian Hunter)
- Use 64-bit shifts with (TSC) time conversion (Adrian Hunter)
Trivial:
- Explicitly declare inc_group_count as a void function (Colin Ian King)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Adrian Hunter (5):
perf inject: Hit all DSOs for AUX data in JIT and other cases
perf session: Simplify tool stubs
perf jit: Let jit_process() return errors
perf jit: Move clockid validation
perf tools: Use 64-bit shifts with (TSC) time conversion
Borislav Petkov (1):
perf stat: Document --detailed option
Colin Ian King (1):
perf tools: Explicitly declare inc_group_count as a void function
Namhyung Kim (8):
perf hists: Add level field to struct perf_hpp_fmt
perf hists: Introduce perf_hpp__setup_hists_formats()
perf hists: Use own hpp_list for hierarchy mode
perf hists: Support multiple sort keys in a hierarchy level
perf hists: Fix indent for multiple hierarchy sort key
perf report: Use hierarchy hpp list on stdio
perf hists browser: Use hierarchy hpp list
perf report: Use hierarchy hpp list on gtk
tools/perf/Documentation/perf-stat.txt | 8 ++
tools/perf/arch/x86/tests/rdpmc.c | 2 +-
tools/perf/builtin-inject.c | 52 ++++------
tools/perf/ui/browsers/hists.c | 147 +++++++++++++++-------------
tools/perf/ui/gtk/hists.c | 73 ++++++++------
tools/perf/ui/hist.c | 69 +++++++++++++
tools/perf/ui/stdio/hist.c | 171 +++++++++++++++++----------------
tools/perf/util/hist.c | 72 +++++++++-----
tools/perf/util/hist.h | 14 +++
tools/perf/util/jitdump.c | 29 +++++-
tools/perf/util/parse-events.y | 2 +-
tools/perf/util/session.c | 40 ++------
tools/perf/util/sort.c | 146 ++++++++++++++++++++--------
tools/perf/util/sort.h | 1 +
tools/perf/util/tsc.c | 2 +-
15 files changed, 514 insertions(+), 314 deletions(-)
^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: [GIT PULL 00/15] perf/core improvements and fixes
2016-02-22 18:02 Arnaldo Carvalho de Melo
@ 2016-02-24 7:21 ` Ingo Molnar
0 siblings, 0 replies; 51+ messages in thread
From: Ingo Molnar @ 2016-02-24 7:21 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Adrian Hunter, Alexei Starovoitov, Andi Kleen,
Brendan Gregg, Cody P Schafer, David Ahern, He Kuang,
Jeremie Galarneau, Jiri Olsa, Kirill Smelkov, Li Zefan,
Masami Hiramatsu, Namhyung Kim, Peter Zijlstra, pi3orama,
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 91e48b7df15196b8ce01f40455219d3ed7889988:
>
> Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2016-02-20 11:52:16 +0100)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo
>
> for you to fetch changes up to 03e0a7df3efd959e40cd7ff40b1fabddc234ec5a:
>
> perf tools: Introduce bpf-output event (2016-02-22 14:37:21 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> New features:
>
> - Add API to set values of map entries in a BPF object, be it
> individual map slots or ranges (Wang Nan)
>
> - Introduce support for the 'bpf-output' event (Wang Nan)
>
> - Add glue to read perf events in a BPF program (Wang Nan)
>
> Fixes:
>
> - Sort key fixes: Alignment for srcline, file, trace; fix
> segfault for dynamic, trace events related sort keys (Namyung Kim)
>
> Build fixes:
>
> - Remove duplicate typedef config_term_func_t definition,
> fixing the build on older systems (Arnaldo Carvalho de Melo)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (2):
> perf tools: Fix build on older systems
> perf tools: Remove duplicate typedef config_term_func_t definition
>
> Namhyung Kim (5):
> perf tools: Fix segfault on dynamic entries
> perf tools: Update srcline/file if needed
> perf tools: Fix alignment on some sort keys
> perf tools: Fix column width setting on 'trace' sort key
> perf tools: Fix assertion failure on dynamic entry
>
> Wang Nan (8):
> perf bpf: Add API to set values to map entries in a bpf object
> perf tools: Enable BPF object configure syntax
> perf record: Apply config to BPF objects before recording
> perf tools: Enable passing event to BPF object
> perf tools: Support setting different slots in a BPF map separately
> perf tools: Enable indices setting syntax for BPF map
> perf tools: Apply tracepoint event definition options to BPF script
> perf tools: Introduce bpf-output event
>
> tools/perf/builtin-record.c | 11 +
> tools/perf/tests/bpf.c | 2 +-
> tools/perf/ui/hist.c | 3 +
> tools/perf/util/bpf-loader.c | 718 +++++++++++++++++++++++++++++++++++++++++
> tools/perf/util/bpf-loader.h | 59 ++++
> tools/perf/util/evlist.c | 16 +
> tools/perf/util/evlist.h | 3 +
> tools/perf/util/evsel.c | 5 +
> tools/perf/util/evsel.h | 8 +
> tools/perf/util/hist.c | 3 +
> tools/perf/util/parse-events.c | 130 +++++++-
> tools/perf/util/parse-events.h | 17 +-
> tools/perf/util/parse-events.l | 16 +-
> tools/perf/util/parse-events.y | 95 +++++-
> tools/perf/util/sort.c | 90 +++---
> 15 files changed, 1112 insertions(+), 64 deletions(-)
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 51+ messages in thread
* [GIT PULL 00/15] perf/core improvements and fixes
@ 2016-02-22 18:02 Arnaldo Carvalho de Melo
2016-02-24 7:21 ` Ingo Molnar
0 siblings, 1 reply; 51+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-02-22 18:02 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Alexei Starovoitov, Andi Kleen, Brendan Gregg, Cody P Schafer,
David Ahern, He Kuang, Jeremie Galarneau, Jiri Olsa,
Kirill Smelkov, Li Zefan, Masami Hiramatsu, Namhyung Kim,
Peter Zijlstra, pi3orama, Wang Nan, Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling,
- Arnaldo
The following changes since commit 91e48b7df15196b8ce01f40455219d3ed7889988:
Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2016-02-20 11:52:16 +0100)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo
for you to fetch changes up to 03e0a7df3efd959e40cd7ff40b1fabddc234ec5a:
perf tools: Introduce bpf-output event (2016-02-22 14:37:21 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
New features:
- Add API to set values of map entries in a BPF object, be it
individual map slots or ranges (Wang Nan)
- Introduce support for the 'bpf-output' event (Wang Nan)
- Add glue to read perf events in a BPF program (Wang Nan)
Fixes:
- Sort key fixes: Alignment for srcline, file, trace; fix
segfault for dynamic, trace events related sort keys (Namyung Kim)
Build fixes:
- Remove duplicate typedef config_term_func_t definition,
fixing the build on older systems (Arnaldo Carvalho de Melo)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Arnaldo Carvalho de Melo (2):
perf tools: Fix build on older systems
perf tools: Remove duplicate typedef config_term_func_t definition
Namhyung Kim (5):
perf tools: Fix segfault on dynamic entries
perf tools: Update srcline/file if needed
perf tools: Fix alignment on some sort keys
perf tools: Fix column width setting on 'trace' sort key
perf tools: Fix assertion failure on dynamic entry
Wang Nan (8):
perf bpf: Add API to set values to map entries in a bpf object
perf tools: Enable BPF object configure syntax
perf record: Apply config to BPF objects before recording
perf tools: Enable passing event to BPF object
perf tools: Support setting different slots in a BPF map separately
perf tools: Enable indices setting syntax for BPF map
perf tools: Apply tracepoint event definition options to BPF script
perf tools: Introduce bpf-output event
tools/perf/builtin-record.c | 11 +
tools/perf/tests/bpf.c | 2 +-
tools/perf/ui/hist.c | 3 +
tools/perf/util/bpf-loader.c | 718 +++++++++++++++++++++++++++++++++++++++++
tools/perf/util/bpf-loader.h | 59 ++++
tools/perf/util/evlist.c | 16 +
tools/perf/util/evlist.h | 3 +
tools/perf/util/evsel.c | 5 +
tools/perf/util/evsel.h | 8 +
tools/perf/util/hist.c | 3 +
tools/perf/util/parse-events.c | 130 +++++++-
tools/perf/util/parse-events.h | 17 +-
tools/perf/util/parse-events.l | 16 +-
tools/perf/util/parse-events.y | 95 +++++-
tools/perf/util/sort.c | 90 +++---
15 files changed, 1112 insertions(+), 64 deletions(-)
^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: [GIT PULL 00/15] perf/core improvements and fixes
2015-06-08 14:17 Arnaldo Carvalho de Melo
@ 2015-06-09 9:47 ` Ingo Molnar
0 siblings, 0 replies; 51+ messages in thread
From: Ingo Molnar @ 2015-06-09 9:47 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Adrian Hunter, Andi Kleen, David Ahern, He Kuang,
Jiri Olsa, 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, more to come,
>
> - Arnaldo
>
> The following changes since commit a3d86542de8850be52e8589da22b24002941dfb7:
>
> perf/x86/intel/pebs: Add PEBSv3 decoding (2015-06-07 16:09:16 +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 d3a7c489c7fd2463e3b2c3a2179c7be879dd9cb4:
>
> perf tools: Reference count struct dso (2015-06-08 10:31:40 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> User visible:
>
> - Fix perf.data size reporting in 'perf record' in no-buildid mode (He Kuang)
>
> Infrastructure:
>
> - Protect accesses the dso rbtrees/lists with a rw lock and reference
> count struct dso instances (Arnaldo Carvalho de Melo)
>
> - Export dynamic symbols used by traceevent plugins (He Kuang)
>
> - Add libtrace-dynamic-list file to libtraceevent's .gitignore (He Kuang)
>
> - Refactor shadow stats code in 'perf stat', prep work for further
> patchkits (Jiri Olsa)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (3):
> perf machine: Fix up some more method names
> perf tools: Protect accesses the dso rbtrees/lists with a rw lock
> perf tools: Reference count struct dso
>
> He Kuang (3):
> tools lib traceevent: Export dynamic symbols used by traceevent plugins
> tools lib traceevent: Ignore libtrace-dynamic-list file
> perf record: Fix perf.data size in no-buildid mode
>
> Jiri Olsa (9):
> perf stat: Add id into perf_stat struct
> perf stat: Replace transaction event possition check with id check
> perf stat: Remove setup_events function
> perf stat: Remove transaction_run from shadow update/print code
> perf stat: Introduce reset_shadow_stats function
> perf stat: Introduce print_shadow_stats function
> perf stat: Add output file argument to print_shadow_stats function
> perf stat: Add aggr_mode argument to print_shadow_stats function
> perf stat: Move shadow stat counters into separate object
>
> tools/lib/traceevent/.gitignore | 1 +
> tools/lib/traceevent/Makefile | 14 +-
> tools/perf/Makefile.perf | 14 +-
> tools/perf/builtin-record.c | 6 +-
> tools/perf/builtin-stat.c | 506 ++--------------------------------------
> tools/perf/tests/dso-data.c | 4 +-
> tools/perf/tests/hists_common.c | 6 +-
> tools/perf/util/Build | 1 +
> tools/perf/util/dso.c | 87 +++++--
> tools/perf/util/dso.h | 24 +-
> tools/perf/util/header.c | 1 +
> tools/perf/util/machine.c | 58 +++--
> tools/perf/util/machine.h | 4 +-
> tools/perf/util/map.c | 11 +-
> tools/perf/util/probe-event.c | 2 +-
> tools/perf/util/probe-finder.c | 2 +-
> tools/perf/util/stat-shadow.c | 434 ++++++++++++++++++++++++++++++++++
> tools/perf/util/stat.c | 35 ++-
> tools/perf/util/stat.h | 40 ++++
> tools/perf/util/symbol-elf.c | 2 +-
> tools/perf/util/symbol.c | 4 +-
> tools/perf/util/vdso.c | 54 +++--
> 22 files changed, 737 insertions(+), 573 deletions(-)
> create mode 100644 tools/perf/util/stat-shadow.c
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 51+ messages in thread
* [GIT PULL 00/15] perf/core improvements and fixes
@ 2015-06-08 14:17 Arnaldo Carvalho de Melo
2015-06-09 9:47 ` Ingo Molnar
0 siblings, 1 reply; 51+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-06-08 14:17 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Andi Kleen, David Ahern, He Kuang, Jiri Olsa, Namhyung Kim,
Peter Zijlstra, Stephane Eranian, Wang Nan,
Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling, more to come,
- Arnaldo
The following changes since commit a3d86542de8850be52e8589da22b24002941dfb7:
perf/x86/intel/pebs: Add PEBSv3 decoding (2015-06-07 16:09:16 +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 d3a7c489c7fd2463e3b2c3a2179c7be879dd9cb4:
perf tools: Reference count struct dso (2015-06-08 10:31:40 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
User visible:
- Fix perf.data size reporting in 'perf record' in no-buildid mode (He Kuang)
Infrastructure:
- Protect accesses the dso rbtrees/lists with a rw lock and reference
count struct dso instances (Arnaldo Carvalho de Melo)
- Export dynamic symbols used by traceevent plugins (He Kuang)
- Add libtrace-dynamic-list file to libtraceevent's .gitignore (He Kuang)
- Refactor shadow stats code in 'perf stat', prep work for further
patchkits (Jiri Olsa)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Arnaldo Carvalho de Melo (3):
perf machine: Fix up some more method names
perf tools: Protect accesses the dso rbtrees/lists with a rw lock
perf tools: Reference count struct dso
He Kuang (3):
tools lib traceevent: Export dynamic symbols used by traceevent plugins
tools lib traceevent: Ignore libtrace-dynamic-list file
perf record: Fix perf.data size in no-buildid mode
Jiri Olsa (9):
perf stat: Add id into perf_stat struct
perf stat: Replace transaction event possition check with id check
perf stat: Remove setup_events function
perf stat: Remove transaction_run from shadow update/print code
perf stat: Introduce reset_shadow_stats function
perf stat: Introduce print_shadow_stats function
perf stat: Add output file argument to print_shadow_stats function
perf stat: Add aggr_mode argument to print_shadow_stats function
perf stat: Move shadow stat counters into separate object
tools/lib/traceevent/.gitignore | 1 +
tools/lib/traceevent/Makefile | 14 +-
tools/perf/Makefile.perf | 14 +-
tools/perf/builtin-record.c | 6 +-
tools/perf/builtin-stat.c | 506 ++--------------------------------------
tools/perf/tests/dso-data.c | 4 +-
tools/perf/tests/hists_common.c | 6 +-
tools/perf/util/Build | 1 +
tools/perf/util/dso.c | 87 +++++--
tools/perf/util/dso.h | 24 +-
tools/perf/util/header.c | 1 +
tools/perf/util/machine.c | 58 +++--
tools/perf/util/machine.h | 4 +-
tools/perf/util/map.c | 11 +-
tools/perf/util/probe-event.c | 2 +-
tools/perf/util/probe-finder.c | 2 +-
tools/perf/util/stat-shadow.c | 434 ++++++++++++++++++++++++++++++++++
tools/perf/util/stat.c | 35 ++-
tools/perf/util/stat.h | 40 ++++
tools/perf/util/symbol-elf.c | 2 +-
tools/perf/util/symbol.c | 4 +-
tools/perf/util/vdso.c | 54 +++--
22 files changed, 737 insertions(+), 573 deletions(-)
create mode 100644 tools/perf/util/stat-shadow.c
^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: [GIT PULL 00/15] perf/core improvements and fixes
2015-04-02 22:28 Arnaldo Carvalho de Melo
@ 2015-04-03 5:02 ` Ingo Molnar
0 siblings, 0 replies; 51+ messages in thread
From: Ingo Molnar @ 2015-04-03 5:02 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Adrian Hunter, Borislav Petkov, David Ahern,
Don Zickus, Frederic Weisbecker, Jiri Olsa, Masami Hiramatsu,
Namhyung Kim, Paul Mackerras, Peter Zijlstra, Stephane Eranian,
Wang Nan, Yunlong Song, Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Hi Ingo,
>
> Please consider pulling,
>
> - Arnaldo
>
> The following changes since commit e1abf2cc8d5d80b41c4419368ec743ccadbb131e:
>
> bpf: Fix the build on BPF_SYSCALL=y && !CONFIG_TRACING kernels, make it more configurable (2015-04-02 16:28:06 +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 bd05954bfa17f03a7bd4454178ba09786b35e383:
>
> perf data: Support using -f to override perf.data file ownership for 'convert' (2015-04-02 13:18:52 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> User visible:
>
> - Support unnamed union/structure members data collection in 'perf probe' (Masami Hiramatsu)
>
> - Support missing -f to override perf.data file ownership (Yunlong Song)
>
> Infrastructure:
>
> - No need to lookup thread twice when processing samples in 'perf script' (Arnaldo Carvalho de Melo)
>
> - No need to pass thread twice to the scripting callbacks (Arnaldo Carvalho de Melo)
>
> - No need to pass thread twice to the db-export facility (Arnaldo Carvalho de Melo)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (4):
> perf script: No need to lookup thread twice
> perf scripting: No need to pass thread twice to the scripting callbacks
> perf db-export: No need to pass thread twice to db_export__sample
> perf db-export: No need to have ->thread twice in struct export_sample
>
> Masami Hiramatsu (1):
> perf probe: Fix to track down unnamed union/structure members
>
> Yunlong Song (10):
> perf evlist: Support using -f to override perf.data file ownership
> perf inject: Support using -f to override perf.data file ownership
> perf kmem: Support using -f to override perf.data file ownership
> perf kvm: Support using -f to override perf.data.guest file ownership
> perf lock: Support using -f to override perf.data file ownership
> perf mem: Support using -f to override perf.data file ownership
> perf script: Support using -f to override perf.data file ownership
> perf timechart: Support using -f to override perf.data file ownership
> perf trace: Support using -f to override perf.data file ownership
> perf data: Support using -f to override perf.data file ownership for 'convert'
>
> tools/perf/builtin-data.c | 4 +++-
> tools/perf/builtin-evlist.c | 2 ++
> tools/perf/builtin-inject.c | 1 +
> tools/perf/builtin-kmem.c | 9 +++++----
> tools/perf/builtin-kvm.c | 2 ++
> tools/perf/builtin-lock.c | 5 +++++
> tools/perf/builtin-mem.c | 3 +++
> tools/perf/builtin-script.c | 23 ++++++++--------------
> tools/perf/builtin-timechart.c | 3 +++
> tools/perf/builtin-trace.c | 3 +++
> tools/perf/util/data-convert-bt.c | 3 ++-
> tools/perf/util/data-convert-bt.h | 2 +-
> tools/perf/util/db-export.c | 4 ++--
> tools/perf/util/db-export.h | 3 +--
> tools/perf/util/dwarf-aux.c | 14 +++++++++----
> tools/perf/util/evsel.h | 1 +
> tools/perf/util/kvm-stat.h | 1 +
> tools/perf/util/probe-finder.c | 8 +++++++-
> .../perf/util/scripting-engines/trace-event-perl.c | 5 ++---
> .../util/scripting-engines/trace-event-python.c | 16 ++++++---------
> tools/perf/util/trace-event-scripting.c | 1 -
> tools/perf/util/trace-event.h | 3 +--
> 22 files changed, 69 insertions(+), 47 deletions(-)
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 51+ messages in thread
* [GIT PULL 00/15] perf/core improvements and fixes
@ 2015-04-02 22:28 Arnaldo Carvalho de Melo
2015-04-03 5:02 ` Ingo Molnar
0 siblings, 1 reply; 51+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-04-02 22:28 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Borislav Petkov, David Ahern, Don Zickus, Frederic Weisbecker,
Jiri Olsa, Masami Hiramatsu, Namhyung Kim, Paul Mackerras,
Peter Zijlstra, Stephane Eranian, Wang Nan, Yunlong Song,
Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling,
- Arnaldo
The following changes since commit e1abf2cc8d5d80b41c4419368ec743ccadbb131e:
bpf: Fix the build on BPF_SYSCALL=y && !CONFIG_TRACING kernels, make it more configurable (2015-04-02 16:28:06 +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 bd05954bfa17f03a7bd4454178ba09786b35e383:
perf data: Support using -f to override perf.data file ownership for 'convert' (2015-04-02 13:18:52 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
User visible:
- Support unnamed union/structure members data collection in 'perf probe' (Masami Hiramatsu)
- Support missing -f to override perf.data file ownership (Yunlong Song)
Infrastructure:
- No need to lookup thread twice when processing samples in 'perf script' (Arnaldo Carvalho de Melo)
- No need to pass thread twice to the scripting callbacks (Arnaldo Carvalho de Melo)
- No need to pass thread twice to the db-export facility (Arnaldo Carvalho de Melo)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Arnaldo Carvalho de Melo (4):
perf script: No need to lookup thread twice
perf scripting: No need to pass thread twice to the scripting callbacks
perf db-export: No need to pass thread twice to db_export__sample
perf db-export: No need to have ->thread twice in struct export_sample
Masami Hiramatsu (1):
perf probe: Fix to track down unnamed union/structure members
Yunlong Song (10):
perf evlist: Support using -f to override perf.data file ownership
perf inject: Support using -f to override perf.data file ownership
perf kmem: Support using -f to override perf.data file ownership
perf kvm: Support using -f to override perf.data.guest file ownership
perf lock: Support using -f to override perf.data file ownership
perf mem: Support using -f to override perf.data file ownership
perf script: Support using -f to override perf.data file ownership
perf timechart: Support using -f to override perf.data file ownership
perf trace: Support using -f to override perf.data file ownership
perf data: Support using -f to override perf.data file ownership for 'convert'
tools/perf/builtin-data.c | 4 +++-
tools/perf/builtin-evlist.c | 2 ++
tools/perf/builtin-inject.c | 1 +
tools/perf/builtin-kmem.c | 9 +++++----
tools/perf/builtin-kvm.c | 2 ++
tools/perf/builtin-lock.c | 5 +++++
tools/perf/builtin-mem.c | 3 +++
tools/perf/builtin-script.c | 23 ++++++++--------------
tools/perf/builtin-timechart.c | 3 +++
tools/perf/builtin-trace.c | 3 +++
tools/perf/util/data-convert-bt.c | 3 ++-
tools/perf/util/data-convert-bt.h | 2 +-
tools/perf/util/db-export.c | 4 ++--
tools/perf/util/db-export.h | 3 +--
tools/perf/util/dwarf-aux.c | 14 +++++++++----
tools/perf/util/evsel.h | 1 +
tools/perf/util/kvm-stat.h | 1 +
tools/perf/util/probe-finder.c | 8 +++++++-
.../perf/util/scripting-engines/trace-event-perl.c | 5 ++---
.../util/scripting-engines/trace-event-python.c | 16 ++++++---------
tools/perf/util/trace-event-scripting.c | 1 -
tools/perf/util/trace-event.h | 3 +--
22 files changed, 69 insertions(+), 47 deletions(-)
^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: [GIT PULL 00/15] perf/core improvements and fixes
2014-10-15 20:52 Arnaldo Carvalho de Melo
@ 2014-10-16 5:18 ` Ingo Molnar
0 siblings, 0 replies; 51+ messages in thread
From: Ingo Molnar @ 2014-10-16 5:18 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Alexander Yarygin, Andi Kleen, Anshuman Khandual,
Arun Sharma, Christian Borntraeger, Cody P Schafer, David Ahern,
Frederic Weisbecker, Haren Myneni, Jean Pihet, Jiri Olsa,
Kan Liang, linuxppc-dev, Masanari Iida, Michael Ellerman,
Mike Galbraith, Namhyung Kim, Paul Mackerras, Peter Zijlstra,
Randy Dunlap, Stephane Eranian, Sukadev Bhattiprolu, Taeung Song,
Yasser Shalabi, Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Hi Ingo,
>
> Please consider pulling, I guess the changes are minor of affect just some
> non-core feature, so it is you call if you prefer to pull it into perf/urgent instead.
>
> Best Regards,
>
> - Arnaldo
>
> The following changes since commit ec4212d88a77eb6caec10777ddd629b702a5ebbd:
>
> Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent (2014-10-15 11:54:14 +0200)
>
> are available in the git repository at:
>
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo
>
> for you to fetch changes up to 673d659f5c5918b7ddbafebf1f129c9eb82973b4:
>
> perf kvm stat live: Enable events copying (2014-10-15 17:39:03 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> User visible:
>
> * Add a visual cue for toggle zeroing of samples in 'perf top' (Taeung Song)
>
> * Fix for double free in 'perf stat' when using some specific invalid
> command line combo (Yasser Shalabi)
>
> Infrastructure:
>
> * Add option to copy events when queuing for sorting across cpu buffers
> and enable it for 'perf kvm stat live', to avoid having events left
> in the queue pointing to the ring buffer be rewritten in high volume
> sessions. (Alexander Yarygin, improving work done by David Ahern):
>
> * Document sysfs events/ interfaces (Cody P Schafer)
>
> * Add support to new style format of kernel PMU event. (Kan Liang)
>
> * Fix typos in perf/Documentation (Masanari Iida)
>
> * Improve callchains when using libunwind (Namhyung Kim)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> Lines starting with '#' will be ignored.
>
> ----------------------------------------------------------------
> Alexander Yarygin (2):
> perf session: Add option to copy events when queueing
> perf kvm stat live: Enable events copying
>
> Cody P Schafer (2):
> perf Documentation: sysfs events/ interfaces
> perf Documentation: Remove Ruplicated docs for powerpc cpu specific events
>
> Kan Liang (4):
> Revert "perf tools: Default to cpu// for events v5"
> perf tools: Parse the pmu event prefix and suffix
> perf tools: Add support to new style format of kernel PMU event
> perf test: Add test case for pmu event new style format
>
> Masanari Iida (1):
> perf Documentation: Fix typos in perf/Documentation
>
> Namhyung Kim (4):
> perf report: Set callchain_param.record_mode for future use
> perf callchain: Create an address space per thread
> perf kvm: Use thread_{,_set}_priv helpers
> perf trace: Use thread_{,_set}_priv helpers
>
> Taeung Song (1):
> perf top: Add a visual cue for toggle zeroing of samples
>
> Yasser Shalabi (1):
> perf evlist: Fix for double free in tools/perf stat
>
> .../testing/sysfs-bus-event_source-devices-events | 611 ++-------------------
> tools/perf/Documentation/perf-diff.txt | 6 +-
> tools/perf/Documentation/perf-kvm.txt | 4 +-
> tools/perf/Documentation/perf-list.txt | 2 +-
> tools/perf/Documentation/perf-record.txt | 2 +-
> tools/perf/Documentation/perf-script-perl.txt | 4 +-
> tools/perf/Documentation/perf-script-python.txt | 6 +-
> tools/perf/Documentation/perf-script.txt | 2 +-
> tools/perf/Documentation/perf-test.txt | 2 +-
> tools/perf/Documentation/perf-trace.txt | 2 +-
> tools/perf/builtin-kvm.c | 7 +-
> tools/perf/builtin-report.c | 7 +
> tools/perf/builtin-trace.c | 16 +-
> tools/perf/tests/dwarf-unwind.c | 3 +
> tools/perf/tests/parse-events.c | 36 ++
> tools/perf/ui/browsers/hists.c | 32 +-
> tools/perf/util/evlist.c | 1 +
> tools/perf/util/include/linux/string.h | 1 -
> tools/perf/util/ordered-events.c | 49 +-
> tools/perf/util/ordered-events.h | 10 +-
> tools/perf/util/parse-events.c | 133 ++++-
> tools/perf/util/parse-events.h | 14 +
> tools/perf/util/parse-events.l | 30 +-
> tools/perf/util/parse-events.y | 40 ++
> tools/perf/util/pmu.c | 10 -
> tools/perf/util/pmu.h | 10 +
> tools/perf/util/session.c | 5 +-
> tools/perf/util/string.c | 24 -
> tools/perf/util/thread.c | 6 +
> tools/perf/util/unwind-libunwind.c | 37 +-
> tools/perf/util/unwind.h | 17 +
> 31 files changed, 460 insertions(+), 669 deletions(-)
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 51+ messages in thread
* [GIT PULL 00/15] perf/core improvements and fixes
@ 2014-10-15 20:52 Arnaldo Carvalho de Melo
2014-10-16 5:18 ` Ingo Molnar
0 siblings, 1 reply; 51+ messages in thread
From: Arnaldo Carvalho de Melo @ 2014-10-15 20:52 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Alexander Yarygin,
Andi Kleen, Anshuman Khandual, Arun Sharma,
Christian Borntraeger, Cody P Schafer, David Ahern,
Frederic Weisbecker, Haren Myneni, Jean Pihet, Jiri Olsa,
Kan Liang, linuxppc-dev, Masanari Iida, Michael Ellerman,
Mike Galbraith, Namhyung Kim, Paul Mackerras, Peter Zijlstra,
Randy Dunlap, Stephane Eranian, Sukadev Bhattiprolu, Taeung Song,
Yasser Shalabi, Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling, I guess the changes are minor of affect just some
non-core feature, so it is you call if you prefer to pull it into perf/urgent instead.
Best Regards,
- Arnaldo
The following changes since commit ec4212d88a77eb6caec10777ddd629b702a5ebbd:
Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent (2014-10-15 11:54:14 +0200)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo
for you to fetch changes up to 673d659f5c5918b7ddbafebf1f129c9eb82973b4:
perf kvm stat live: Enable events copying (2014-10-15 17:39:03 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
User visible:
* Add a visual cue for toggle zeroing of samples in 'perf top' (Taeung Song)
* Fix for double free in 'perf stat' when using some specific invalid
command line combo (Yasser Shalabi)
Infrastructure:
* Add option to copy events when queuing for sorting across cpu buffers
and enable it for 'perf kvm stat live', to avoid having events left
in the queue pointing to the ring buffer be rewritten in high volume
sessions. (Alexander Yarygin, improving work done by David Ahern):
* Document sysfs events/ interfaces (Cody P Schafer)
* Add support to new style format of kernel PMU event. (Kan Liang)
* Fix typos in perf/Documentation (Masanari Iida)
* Improve callchains when using libunwind (Namhyung Kim)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Lines starting with '#' will be ignored.
----------------------------------------------------------------
Alexander Yarygin (2):
perf session: Add option to copy events when queueing
perf kvm stat live: Enable events copying
Cody P Schafer (2):
perf Documentation: sysfs events/ interfaces
perf Documentation: Remove Ruplicated docs for powerpc cpu specific events
Kan Liang (4):
Revert "perf tools: Default to cpu// for events v5"
perf tools: Parse the pmu event prefix and suffix
perf tools: Add support to new style format of kernel PMU event
perf test: Add test case for pmu event new style format
Masanari Iida (1):
perf Documentation: Fix typos in perf/Documentation
Namhyung Kim (4):
perf report: Set callchain_param.record_mode for future use
perf callchain: Create an address space per thread
perf kvm: Use thread_{,_set}_priv helpers
perf trace: Use thread_{,_set}_priv helpers
Taeung Song (1):
perf top: Add a visual cue for toggle zeroing of samples
Yasser Shalabi (1):
perf evlist: Fix for double free in tools/perf stat
.../testing/sysfs-bus-event_source-devices-events | 611 ++-------------------
tools/perf/Documentation/perf-diff.txt | 6 +-
tools/perf/Documentation/perf-kvm.txt | 4 +-
tools/perf/Documentation/perf-list.txt | 2 +-
tools/perf/Documentation/perf-record.txt | 2 +-
tools/perf/Documentation/perf-script-perl.txt | 4 +-
tools/perf/Documentation/perf-script-python.txt | 6 +-
tools/perf/Documentation/perf-script.txt | 2 +-
tools/perf/Documentation/perf-test.txt | 2 +-
tools/perf/Documentation/perf-trace.txt | 2 +-
tools/perf/builtin-kvm.c | 7 +-
tools/perf/builtin-report.c | 7 +
tools/perf/builtin-trace.c | 16 +-
tools/perf/tests/dwarf-unwind.c | 3 +
tools/perf/tests/parse-events.c | 36 ++
tools/perf/ui/browsers/hists.c | 32 +-
tools/perf/util/evlist.c | 1 +
tools/perf/util/include/linux/string.h | 1 -
tools/perf/util/ordered-events.c | 49 +-
tools/perf/util/ordered-events.h | 10 +-
tools/perf/util/parse-events.c | 133 ++++-
tools/perf/util/parse-events.h | 14 +
tools/perf/util/parse-events.l | 30 +-
tools/perf/util/parse-events.y | 40 ++
tools/perf/util/pmu.c | 10 -
tools/perf/util/pmu.h | 10 +
tools/perf/util/session.c | 5 +-
tools/perf/util/string.c | 24 -
tools/perf/util/thread.c | 6 +
tools/perf/util/unwind-libunwind.c | 37 +-
tools/perf/util/unwind.h | 17 +
31 files changed, 460 insertions(+), 669 deletions(-)
^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: [GIT PULL 00/15] perf/core improvements and fixes
2014-06-09 20:02 Jiri Olsa
@ 2014-06-12 11:54 ` Ingo Molnar
0 siblings, 0 replies; 51+ messages in thread
From: Ingo Molnar @ 2014-06-12 11:54 UTC (permalink / raw)
To: Jiri Olsa
Cc: linux-kernel, Andi Kleen, Arnaldo Carvalho de Melo,
Corey Ashford, David Ahern, Don Zickus, Frederic Weisbecker,
Javi Merino, Jean Pihet, Namhyung Kim, Paul Mackerras,
Peter Zijlstra, Stephane Eranian, Steven Rostedt
* Jiri Olsa <jolsa@kernel.org> wrote:
>
> hi Ingo,
> please consider pulling
>
> thanks,
> jirka
>
>
> The following changes since commit 82b897782d10fcc4930c9d4a15b175348fdd2871:
>
> perf: Differentiate exec() and non-exec() comm events (2014-06-06 07:56:22 +0200)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git tags/perf-core-for-mingo
>
> for you to fetch changes up to a2609f3b0c582d6aaa8f69a61a0eea6c7a98d291:
>
> perf tools: Support spark lines in perf stat (2014-06-09 13:34:50 +0200)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> . Bitmask handling and plugin updates (Steven Rostedt)
>
> . Fix pipe check regression in attr event callback (Jiri Olsa)
>
> . Prettify the tags/TAGS/cscope targets output (Jiri Olsa)
>
> . Print array argument as string (Namhyung Kim)
>
> . Pass protection and flags bits through mmap2 interface (Peter Zijlstra)
>
> . Update perf tool mmap2 interface with protection and flag bits (Don Zickus)
>
> . Re-enable mmap interface (Don Zickus)
>
> . Add mem-mode documentation to report command (Don Zickus)
>
> . Add sort on dcacheline (Don Zickus)
>
> . Support spark lines in perf stat (Andi Kleen)
>
> Signed-off-by: Jiri Olsa <jolsa@kernel.org>
>
> ----------------------------------------------------------------
> Andi Kleen (1):
> perf tools: Support spark lines in perf stat
>
> Don Zickus (6):
> perf tools: Update mmap2 interface with protection and flag bits
> Revert "perf: Disable PERF_RECORD_MMAP2 support"
> perf report: Add mem-mode documentation to report command
> perf tools: Add cpumode to struct hist_entry
> perf tools: Add support to dynamically get cacheline size
> perf tools: Add dcacheline sort
>
> Jiri Olsa (2):
> perf tools: Fix pipe check regression in attr event callback
> perf tools: Prettify the tags/TAGS/cscope targets output
>
> Namhyung Kim (1):
> perf script/python: Print array argument as string
>
> Peter Zijlstra (1):
> perf: Pass protection and flags bits through mmap2 interface
>
> Steven Rostedt (1):
> tools lib traceevent: Add options to plugins
>
> Steven Rostedt (Red Hat) (3):
> tools lib traceevent: Add flag to not load event plugins
> tools lib traceevent: Add options to function plugin
> tools lib traceevent: Added support for __get_bitmask() macro
>
> include/uapi/linux/perf_event.h | 1 +
> kernel/events/core.c | 37 +++-
> tools/lib/traceevent/event-parse.c | 113 ++++++++++++
> tools/lib/traceevent/event-parse.h | 25 ++-
> tools/lib/traceevent/event-plugin.c | 203 ++++++++++++++++++++-
> tools/lib/traceevent/plugin_function.c | 43 ++++-
> tools/perf/Documentation/perf-report.txt | 23 +++
> tools/perf/Documentation/perf-stat.txt | 4 +
> tools/perf/Makefile.perf | 7 +-
> tools/perf/builtin-inject.c | 2 +-
> tools/perf/builtin-stat.c | 12 ++
> tools/perf/perf.c | 1 +
> tools/perf/tests/dwarf-unwind.c | 2 +-
> tools/perf/util/event.c | 57 ++++--
> tools/perf/util/event.h | 2 +
> tools/perf/util/evsel.c | 1 +
> tools/perf/util/hist.c | 9 +-
> tools/perf/util/hist.h | 1 +
> tools/perf/util/machine.c | 4 +-
> tools/perf/util/map.c | 4 +-
> tools/perf/util/map.h | 4 +-
> .../perf/util/scripting-engines/trace-event-perl.c | 1 +
> .../util/scripting-engines/trace-event-python.c | 2 +
> tools/perf/util/sort.c | 107 +++++++++++
> tools/perf/util/sort.h | 2 +
> tools/perf/util/spark.c | 31 ++++
> tools/perf/util/spark.h | 4 +
> tools/perf/util/stat.c | 34 ++++
> tools/perf/util/stat.h | 10 +
> tools/perf/util/util.c | 1 +
> tools/perf/util/util.h | 1 +
> 31 files changed, 707 insertions(+), 41 deletions(-)
> create mode 100644 tools/perf/util/spark.c
> create mode 100644 tools/perf/util/spark.h
Pulled, thanks a lot Jiri!
Ingo
^ permalink raw reply [flat|nested] 51+ messages in thread
* [GIT PULL 00/15] perf/core improvements and fixes
@ 2014-06-09 20:02 Jiri Olsa
2014-06-12 11:54 ` Ingo Molnar
0 siblings, 1 reply; 51+ messages in thread
From: Jiri Olsa @ 2014-06-09 20:02 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Andi Kleen, Arnaldo Carvalho de Melo,
Corey Ashford, David Ahern, Don Zickus, Frederic Weisbecker,
Javi Merino, Jean Pihet, Jiri Olsa, Namhyung Kim, Paul Mackerras,
Peter Zijlstra, Stephane Eranian, Steven Rostedt
hi Ingo,
please consider pulling
thanks,
jirka
The following changes since commit 82b897782d10fcc4930c9d4a15b175348fdd2871:
perf: Differentiate exec() and non-exec() comm events (2014-06-06 07:56:22 +0200)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git tags/perf-core-for-mingo
for you to fetch changes up to a2609f3b0c582d6aaa8f69a61a0eea6c7a98d291:
perf tools: Support spark lines in perf stat (2014-06-09 13:34:50 +0200)
----------------------------------------------------------------
perf/core improvements and fixes:
. Bitmask handling and plugin updates (Steven Rostedt)
. Fix pipe check regression in attr event callback (Jiri Olsa)
. Prettify the tags/TAGS/cscope targets output (Jiri Olsa)
. Print array argument as string (Namhyung Kim)
. Pass protection and flags bits through mmap2 interface (Peter Zijlstra)
. Update perf tool mmap2 interface with protection and flag bits (Don Zickus)
. Re-enable mmap interface (Don Zickus)
. Add mem-mode documentation to report command (Don Zickus)
. Add sort on dcacheline (Don Zickus)
. Support spark lines in perf stat (Andi Kleen)
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
----------------------------------------------------------------
Andi Kleen (1):
perf tools: Support spark lines in perf stat
Don Zickus (6):
perf tools: Update mmap2 interface with protection and flag bits
Revert "perf: Disable PERF_RECORD_MMAP2 support"
perf report: Add mem-mode documentation to report command
perf tools: Add cpumode to struct hist_entry
perf tools: Add support to dynamically get cacheline size
perf tools: Add dcacheline sort
Jiri Olsa (2):
perf tools: Fix pipe check regression in attr event callback
perf tools: Prettify the tags/TAGS/cscope targets output
Namhyung Kim (1):
perf script/python: Print array argument as string
Peter Zijlstra (1):
perf: Pass protection and flags bits through mmap2 interface
Steven Rostedt (1):
tools lib traceevent: Add options to plugins
Steven Rostedt (Red Hat) (3):
tools lib traceevent: Add flag to not load event plugins
tools lib traceevent: Add options to function plugin
tools lib traceevent: Added support for __get_bitmask() macro
include/uapi/linux/perf_event.h | 1 +
kernel/events/core.c | 37 +++-
tools/lib/traceevent/event-parse.c | 113 ++++++++++++
tools/lib/traceevent/event-parse.h | 25 ++-
tools/lib/traceevent/event-plugin.c | 203 ++++++++++++++++++++-
tools/lib/traceevent/plugin_function.c | 43 ++++-
tools/perf/Documentation/perf-report.txt | 23 +++
tools/perf/Documentation/perf-stat.txt | 4 +
tools/perf/Makefile.perf | 7 +-
tools/perf/builtin-inject.c | 2 +-
tools/perf/builtin-stat.c | 12 ++
tools/perf/perf.c | 1 +
tools/perf/tests/dwarf-unwind.c | 2 +-
tools/perf/util/event.c | 57 ++++--
tools/perf/util/event.h | 2 +
tools/perf/util/evsel.c | 1 +
tools/perf/util/hist.c | 9 +-
tools/perf/util/hist.h | 1 +
tools/perf/util/machine.c | 4 +-
tools/perf/util/map.c | 4 +-
tools/perf/util/map.h | 4 +-
.../perf/util/scripting-engines/trace-event-perl.c | 1 +
.../util/scripting-engines/trace-event-python.c | 2 +
tools/perf/util/sort.c | 107 +++++++++++
tools/perf/util/sort.h | 2 +
tools/perf/util/spark.c | 31 ++++
tools/perf/util/spark.h | 4 +
tools/perf/util/stat.c | 34 ++++
tools/perf/util/stat.h | 10 +
tools/perf/util/util.c | 1 +
tools/perf/util/util.h | 1 +
31 files changed, 707 insertions(+), 41 deletions(-)
create mode 100644 tools/perf/util/spark.c
create mode 100644 tools/perf/util/spark.h
^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: [GIT PULL 00/15] perf/core improvements and fixes
2013-08-30 18:58 Arnaldo Carvalho de Melo
@ 2013-08-31 8:08 ` Ingo Molnar
0 siblings, 0 replies; 51+ messages in thread
From: Ingo Molnar @ 2013-08-31 8:08 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 00e4cb1ced1b17c35465defafe86d156cbd7544e:
>
> Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2013-08-29 12:02:34 +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 f2935f3e585226b8203ec3861907e1cb16ad3d6a:
>
> perf trace: Handle missing HUGEPAGE defines (2013-08-30 15:43:28 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> . Tidy up sample parsing validation, from Adrian Hunter.
>
> . Make events stream always parsable by adding a new sample_type bit:
> PERF_SAMPLE_IDENTIFIER, that when requested will be always aat a fixed
> position in all PERF_RECORD_ records, from Adrian Hunter.
>
> . Add a sample parsing test, from Adrian Hunter.
>
> . Add option to 'perf trace' to analyze events in a file versus live,
> so that one can do:
>
> [root@zoo ~]# perf record -a -e raw_syscalls:* sleep 1
> [ perf record: Woken up 0 times to write data ]
> [ perf record: Captured and wrote 25.150 MB perf.data (~1098836 samples) ]
> [root@zoo ~]# perf trace -i perf.data -e futex --duration 1
> 17.799 ( 1.020 ms): 7127 futex(uaddr: 0x7fff3f6c6674, op: 393, val: 1, utime: 0x7fff3f6c6470, ua
> 113.344 (95.429 ms): 7127 futex(uaddr: 0x7fff3f6c6674, op: 393, val: 1, utime: 0x7fff3f6c6470, uaddr2: 0x7fff3f6c6648, val3: 4294967
> 133.778 ( 1.042 ms): 18004 futex(uaddr: 0x7fff3f6c6674, op: 393, val: 1, utime: 0x7fff3f6c6470, uaddr2: 0x7fff3f6c6648, val3: 429496
> [root@zoo ~]#
>
> From David Ahern.
>
> . Honor target pid / tid options in 'perf trace' when analyzing a file,
> from David Ahern.
>
> . Handle missing HUGEPAGE defines in the mmap beautifier in 'perf trace',
> from David Ahern.
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Adrian Hunter (11):
> perf tools: change machine__findnew_thread() to set thread pid
> perf evsel: Tidy up sample parsing overflow checking
> perf callchain: Remove unnecessary validation
> perf tools: Remove references to struct ip_event
> perf: make events stream always parsable
> perf evlist: Move perf_evlist__config() to a new source file
> perf tools: Add support for PERF_SAMPLE_IDENTIFIER
> perf tools: Add missing 'abi' member to 'struct regs_dump'
> perf tools: Expand perf_event__synthesize_sample()
> perf tools: Add a function to calculate sample event size
> perf tests: Add a sample parsing test
>
> David Ahern (4):
> perf evlist: Add tracepoint lookup by name
> perf trace: Add option to analyze events in a file versus live
> perf trace: Honor target pid / tid options when analyzing a file
> perf trace: Handle missing HUGEPAGE defines
>
> include/uapi/linux/perf_event.h | 27 ++-
> kernel/events/core.c | 11 +-
> tools/perf/Documentation/perf-trace.txt | 4 +
> tools/perf/Makefile | 2 +
> tools/perf/builtin-inject.c | 8 +-
> tools/perf/builtin-kmem.c | 3 +-
> tools/perf/builtin-kvm.c | 2 +-
> tools/perf/builtin-lock.c | 3 +-
> tools/perf/builtin-mem.c | 2 +-
> tools/perf/builtin-report.c | 2 +-
> tools/perf/builtin-sched.c | 20 +-
> tools/perf/builtin-script.c | 3 +-
> tools/perf/builtin-top.c | 11 +-
> tools/perf/builtin-trace.c | 157 ++++++++++++-
> tools/perf/tests/builtin-test.c | 4 +
> tools/perf/tests/code-reading.c | 4 +-
> tools/perf/tests/hists_link.c | 23 +-
> tools/perf/tests/mmap-basic.c | 2 +-
> tools/perf/tests/sample-parsing.c | 316 +++++++++++++++++++++++++
> tools/perf/tests/tests.h | 1 +
> tools/perf/util/build-id.c | 11 +-
> tools/perf/util/callchain.c | 8 -
> tools/perf/util/callchain.h | 5 -
> tools/perf/util/event.c | 5 +-
> tools/perf/util/event.h | 18 +-
> tools/perf/util/evlist.c | 140 +++++++++--
> tools/perf/util/evlist.h | 12 +-
> tools/perf/util/evsel.c | 405 ++++++++++++++++++++++++++++----
> tools/perf/util/evsel.h | 14 +-
> tools/perf/util/machine.c | 22 +-
> tools/perf/util/machine.h | 3 +-
> tools/perf/util/record.c | 108 +++++++++
> tools/perf/util/session.c | 32 +--
> 33 files changed, 1193 insertions(+), 195 deletions(-)
> create mode 100644 tools/perf/tests/sample-parsing.c
> create mode 100644 tools/perf/util/record.c
Pulled, thanks Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 51+ messages in thread
* [GIT PULL 00/15] perf/core improvements and fixes
@ 2013-08-30 18:58 Arnaldo Carvalho de Melo
2013-08-31 8:08 ` Ingo Molnar
0 siblings, 1 reply; 51+ messages in thread
From: Arnaldo Carvalho de Melo @ 2013-08-30 18:58 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 00e4cb1ced1b17c35465defafe86d156cbd7544e:
Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2013-08-29 12:02:34 +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 f2935f3e585226b8203ec3861907e1cb16ad3d6a:
perf trace: Handle missing HUGEPAGE defines (2013-08-30 15:43:28 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
. Tidy up sample parsing validation, from Adrian Hunter.
. Make events stream always parsable by adding a new sample_type bit:
PERF_SAMPLE_IDENTIFIER, that when requested will be always aat a fixed
position in all PERF_RECORD_ records, from Adrian Hunter.
. Add a sample parsing test, from Adrian Hunter.
. Add option to 'perf trace' to analyze events in a file versus live,
so that one can do:
[root@zoo ~]# perf record -a -e raw_syscalls:* sleep 1
[ perf record: Woken up 0 times to write data ]
[ perf record: Captured and wrote 25.150 MB perf.data (~1098836 samples) ]
[root@zoo ~]# perf trace -i perf.data -e futex --duration 1
17.799 ( 1.020 ms): 7127 futex(uaddr: 0x7fff3f6c6674, op: 393, val: 1, utime: 0x7fff3f6c6470, ua
113.344 (95.429 ms): 7127 futex(uaddr: 0x7fff3f6c6674, op: 393, val: 1, utime: 0x7fff3f6c6470, uaddr2: 0x7fff3f6c6648, val3: 4294967
133.778 ( 1.042 ms): 18004 futex(uaddr: 0x7fff3f6c6674, op: 393, val: 1, utime: 0x7fff3f6c6470, uaddr2: 0x7fff3f6c6648, val3: 429496
[root@zoo ~]#
From David Ahern.
. Honor target pid / tid options in 'perf trace' when analyzing a file,
from David Ahern.
. Handle missing HUGEPAGE defines in the mmap beautifier in 'perf trace',
from David Ahern.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Adrian Hunter (11):
perf tools: change machine__findnew_thread() to set thread pid
perf evsel: Tidy up sample parsing overflow checking
perf callchain: Remove unnecessary validation
perf tools: Remove references to struct ip_event
perf: make events stream always parsable
perf evlist: Move perf_evlist__config() to a new source file
perf tools: Add support for PERF_SAMPLE_IDENTIFIER
perf tools: Add missing 'abi' member to 'struct regs_dump'
perf tools: Expand perf_event__synthesize_sample()
perf tools: Add a function to calculate sample event size
perf tests: Add a sample parsing test
David Ahern (4):
perf evlist: Add tracepoint lookup by name
perf trace: Add option to analyze events in a file versus live
perf trace: Honor target pid / tid options when analyzing a file
perf trace: Handle missing HUGEPAGE defines
include/uapi/linux/perf_event.h | 27 ++-
kernel/events/core.c | 11 +-
tools/perf/Documentation/perf-trace.txt | 4 +
tools/perf/Makefile | 2 +
tools/perf/builtin-inject.c | 8 +-
tools/perf/builtin-kmem.c | 3 +-
tools/perf/builtin-kvm.c | 2 +-
tools/perf/builtin-lock.c | 3 +-
tools/perf/builtin-mem.c | 2 +-
tools/perf/builtin-report.c | 2 +-
tools/perf/builtin-sched.c | 20 +-
tools/perf/builtin-script.c | 3 +-
tools/perf/builtin-top.c | 11 +-
tools/perf/builtin-trace.c | 157 ++++++++++++-
tools/perf/tests/builtin-test.c | 4 +
tools/perf/tests/code-reading.c | 4 +-
tools/perf/tests/hists_link.c | 23 +-
tools/perf/tests/mmap-basic.c | 2 +-
tools/perf/tests/sample-parsing.c | 316 +++++++++++++++++++++++++
tools/perf/tests/tests.h | 1 +
tools/perf/util/build-id.c | 11 +-
tools/perf/util/callchain.c | 8 -
tools/perf/util/callchain.h | 5 -
tools/perf/util/event.c | 5 +-
tools/perf/util/event.h | 18 +-
tools/perf/util/evlist.c | 140 +++++++++--
tools/perf/util/evlist.h | 12 +-
tools/perf/util/evsel.c | 405 ++++++++++++++++++++++++++++----
tools/perf/util/evsel.h | 14 +-
tools/perf/util/machine.c | 22 +-
tools/perf/util/machine.h | 3 +-
tools/perf/util/record.c | 108 +++++++++
tools/perf/util/session.c | 32 +--
33 files changed, 1193 insertions(+), 195 deletions(-)
create mode 100644 tools/perf/tests/sample-parsing.c
create mode 100644 tools/perf/util/record.c
^ permalink raw reply [flat|nested] 51+ messages in thread
* [GIT PULL 00/15] perf/core improvements and fixes
@ 2013-02-28 21:05 Arnaldo Carvalho de Melo
0 siblings, 0 replies; 51+ messages in thread
From: Arnaldo Carvalho de Melo @ 2013-02-28 21:05 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Borislav Petkov,
Corey Ashford, David Ahern, Feng Tang, Frederic Weisbecker,
Ingo Molnar, Ingo Molnar, Jiri Olsa, liguang, Marcin Slusarz,
Michael Ellerman, Namhyung Kim, Namhyung Kim, Oleg Nesterov,
Paul Mackerras, Pekka Enberg, Peter Zijlstra, Steven Rostedt,
Wu Fengguang, Arnaldo Carvalho de Melo
From: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
Hi Ingo,
Please consider pulling,
- Arnaldo
The following changes since commit e259514eef764a5286873618e34c560ecb6cff13:
perf/x86/amd: Enable northbridge performance counters on AMD family 15h (2013-02-16 09:37:27 +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 0e0c6670a333aa884d11799f38a435bdf4c408ed:
perf report: Fix build with NO_NEWT=1 (2013-02-28 16:51:01 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
. Honor parallel jobs, fix from Borislav Petkov
. Introduce tools/lib/lk library, initially with just debugfs handling routines
shared with tools/vm, more to come, from Borislav Petkov
. Fix handling of -C (cpus) in perf record, from Jiri Olsa
. Add perf_event_attr entries in 'perf test' to check -C handling in 'record'
and 'stat', from Jiri Olsa.
. Check if -DFORTIFY_SOURCE=2 is allowed, fix from Marcin Slusarz.
. Fix build with NO_NEWT=1, from Michael Ellerman.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Borislav Petkov (6):
perf tools: Remove a write-only variable in the debugfs code
perf tools: Honor parallel jobs
perf tools: Correct Makefile.include
perf tools: Introduce tools/lib/lk library
perf tools: Extract perf-specific stuff from debugfs.c
tools/vm: Switch to liblk library
Jiri Olsa (5):
perf tests: Make attr script verbose friendly
perf tests: Make attr script test event cpu
perf tests: Add attr record -C cpu test
perf tests: Add attr stat -C cpu test
perf record: Fix -C option
Marcin Slusarz (1):
perf tools: check if -DFORTIFY_SOURCE=2 is allowed
Michael Ellerman (2):
perf annotate: Fix build with NO_NEWT=1
perf report: Fix build with NO_NEWT=1
liguang (1):
perf tools: Sort command-list.txt alphabetically
Makefile | 4 +-
tools/Makefile | 16 ++++++-
tools/lib/lk/Makefile | 35 +++++++++++++++
tools/{perf/util => lib/lk}/debugfs.c | 49 ++++++++------------
tools/lib/lk/debugfs.h | 29 ++++++++++++
tools/perf/MANIFEST | 1 +
tools/perf/Makefile | 42 +++++++++++++----
tools/perf/builtin-kvm.c | 2 +-
tools/perf/builtin-probe.c | 2 +-
tools/perf/builtin-record.c | 6 ++-
tools/perf/command-list.txt | 14 +++---
tools/perf/perf.c | 8 ++--
tools/perf/tests/attr.c | 9 +++-
tools/perf/tests/attr.py | 5 ++-
tools/perf/tests/attr/base-record | 1 +
tools/perf/tests/attr/base-stat | 1 +
tools/perf/tests/attr/test-record-C0 | 13 ++++++
tools/perf/tests/attr/test-stat-C0 | 9 ++++
tools/perf/tests/parse-events.c | 2 +-
tools/perf/util/debugfs.h | 12 -----
tools/perf/util/evlist.c | 2 +-
tools/perf/util/evsel.c | 2 +-
tools/perf/util/hist.h | 5 ++-
tools/perf/util/parse-events.c | 2 +-
tools/perf/util/probe-event.c | 2 +-
tools/perf/util/python-ext-sources | 1 -
tools/perf/util/setup.py | 3 +-
tools/perf/util/trace-event-info.c | 4 +-
tools/perf/util/util.c | 27 +++++++++++
tools/perf/util/util.h | 7 ++-
tools/scripts/Makefile.include | 6 ++-
tools/vm/Makefile | 17 +++++--
tools/vm/page-types.c | 85 +++--------------------------------
33 files changed, 253 insertions(+), 170 deletions(-)
create mode 100644 tools/lib/lk/Makefile
rename tools/{perf/util => lib/lk}/debugfs.c (68%)
create mode 100644 tools/lib/lk/debugfs.h
create mode 100644 tools/perf/tests/attr/test-record-C0
create mode 100644 tools/perf/tests/attr/test-stat-C0
delete mode 100644 tools/perf/util/debugfs.h
^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: [GIT PULL 00/15] perf/core improvements and fixes
2011-12-23 21:53 Arnaldo Carvalho de Melo
@ 2011-12-29 20:28 ` Ingo Molnar
0 siblings, 0 replies; 51+ messages in thread
From: Ingo Molnar @ 2011-12-29 20:28 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, David Ahern, Frederic Weisbecker, Namhyung Kim,
Nelson Elhage, Paul Mackerras, Peter Zijlstra, Robert Richter,
Stephane Eranian, arnaldo.melo
* Arnaldo Carvalho de Melo <acme@infradead.org> wrote:
> Hi Ingo,
>
> Please consider pulling from:
>
> git://github.com/acmel/linux.git perf/core
>
> Regards,
>
> - Arnaldo
>
> David Ahern (3):
> perf tools: Fix comm for processes with named threads
> perf tools: Look up thread names for system wide profiling
> perf script: look up thread using tid instead of pid
>
> Ingo Molnar (1):
> perf tools: Fix truncated annotation
>
> Namhyung Kim (1):
> perf report: Fix usage string
>
> Nelson Elhage (2):
> perf: builtin-record: Provide advice if mmap'ing fails with EPERM.
> perf: builtin-record: Document and check that mmap_pages must be a power of two.
>
> Robert Richter (8):
> perf tools: Improve macros for struct feature_ops
> perf tools: Continue processing header on unknown features
> perf tools: Fix out-of-bound access to struct perf_session
> perf tools: Moving code in some files
> perf report: Accept fifos as input file
> perf tools: Unify handling of features when writing feature section
> perf tools: Use for_each_set_bit() to iterate over feature flags
> perf script: Add generic perl handler to process events
>
> tools/perf/Documentation/perf-annotate.txt | 2 +-
> tools/perf/Documentation/perf-buildid-list.txt | 2 +-
> tools/perf/Documentation/perf-evlist.txt | 2 +-
> tools/perf/Documentation/perf-kmem.txt | 2 +-
> tools/perf/Documentation/perf-lock.txt | 2 +-
> tools/perf/Documentation/perf-record.txt | 2 +-
> tools/perf/Documentation/perf-report.txt | 2 +-
> tools/perf/Documentation/perf-sched.txt | 2 +-
> tools/perf/Documentation/perf-script.txt | 2 +-
> tools/perf/Documentation/perf-timechart.txt | 2 +-
> tools/perf/builtin-annotate.c | 3 +-
> tools/perf/builtin-buildid-list.c | 53 +-
> tools/perf/builtin-evlist.c | 2 +-
> tools/perf/builtin-kmem.c | 2 +-
> tools/perf/builtin-lock.c | 2 +-
> tools/perf/builtin-record.c | 19 +-
> tools/perf/builtin-report.c | 15 +-
> tools/perf/builtin-sched.c | 2 +-
> tools/perf/builtin-script.c | 6 +-
> tools/perf/builtin-timechart.c | 4 +-
> tools/perf/util/annotate.c | 2 +-
> tools/perf/util/event.c | 112 +++-
> tools/perf/util/evlist.c | 2 +
> tools/perf/util/header.c | 663 +++++++++-----------
> tools/perf/util/header.h | 6 +-
> tools/perf/util/include/linux/bitops.h | 118 ++++
> .../perf/util/scripting-engines/trace-event-perl.c | 73 ++-
> tools/perf/util/session.c | 15 +-
> tools/perf/util/session.h | 2 +-
> tools/perf/util/util.h | 11 +
> 30 files changed, 676 insertions(+), 456 deletions(-)
Pulled, thanks a lot Arnaldo!
FYI, i fixed a trivial build failure, in:
f2328062726d: perf tools: Fix feature-bits rework fallout, remove unused variable
Thanks,
Ingo
^ permalink raw reply [flat|nested] 51+ messages in thread
* [GIT PULL 00/15] perf/core improvements and fixes
@ 2011-12-23 21:53 Arnaldo Carvalho de Melo
2011-12-29 20:28 ` Ingo Molnar
0 siblings, 1 reply; 51+ messages in thread
From: Arnaldo Carvalho de Melo @ 2011-12-23 21:53 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, David Ahern,
Frederic Weisbecker, Namhyung Kim, Nelson Elhage, Paul Mackerras,
Peter Zijlstra, Robert Richter, Stephane Eranian, arnaldo.melo
Hi Ingo,
Please consider pulling from:
git://github.com/acmel/linux.git perf/core
Regards,
- Arnaldo
David Ahern (3):
perf tools: Fix comm for processes with named threads
perf tools: Look up thread names for system wide profiling
perf script: look up thread using tid instead of pid
Ingo Molnar (1):
perf tools: Fix truncated annotation
Namhyung Kim (1):
perf report: Fix usage string
Nelson Elhage (2):
perf: builtin-record: Provide advice if mmap'ing fails with EPERM.
perf: builtin-record: Document and check that mmap_pages must be a power of two.
Robert Richter (8):
perf tools: Improve macros for struct feature_ops
perf tools: Continue processing header on unknown features
perf tools: Fix out-of-bound access to struct perf_session
perf tools: Moving code in some files
perf report: Accept fifos as input file
perf tools: Unify handling of features when writing feature section
perf tools: Use for_each_set_bit() to iterate over feature flags
perf script: Add generic perl handler to process events
tools/perf/Documentation/perf-annotate.txt | 2 +-
tools/perf/Documentation/perf-buildid-list.txt | 2 +-
tools/perf/Documentation/perf-evlist.txt | 2 +-
tools/perf/Documentation/perf-kmem.txt | 2 +-
tools/perf/Documentation/perf-lock.txt | 2 +-
tools/perf/Documentation/perf-record.txt | 2 +-
tools/perf/Documentation/perf-report.txt | 2 +-
tools/perf/Documentation/perf-sched.txt | 2 +-
tools/perf/Documentation/perf-script.txt | 2 +-
tools/perf/Documentation/perf-timechart.txt | 2 +-
tools/perf/builtin-annotate.c | 3 +-
tools/perf/builtin-buildid-list.c | 53 +-
tools/perf/builtin-evlist.c | 2 +-
tools/perf/builtin-kmem.c | 2 +-
tools/perf/builtin-lock.c | 2 +-
tools/perf/builtin-record.c | 19 +-
tools/perf/builtin-report.c | 15 +-
tools/perf/builtin-sched.c | 2 +-
tools/perf/builtin-script.c | 6 +-
tools/perf/builtin-timechart.c | 4 +-
tools/perf/util/annotate.c | 2 +-
tools/perf/util/event.c | 112 +++-
tools/perf/util/evlist.c | 2 +
tools/perf/util/header.c | 663 +++++++++-----------
tools/perf/util/header.h | 6 +-
tools/perf/util/include/linux/bitops.h | 118 ++++
.../perf/util/scripting-engines/trace-event-perl.c | 73 ++-
tools/perf/util/session.c | 15 +-
tools/perf/util/session.h | 2 +-
tools/perf/util/util.h | 11 +
30 files changed, 676 insertions(+), 456 deletions(-)
--
1.7.8.rc0.35.gee6df
^ permalink raw reply [flat|nested] 51+ messages in thread
end of thread, other threads:[~2017-08-23 19:36 UTC | newest]
Thread overview: 51+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-09-05 1:06 [GIT PULL 00/15] perf/core improvements and fixes Arnaldo Carvalho de Melo
2015-09-05 1:06 ` [PATCH 01/15] perf tests: Take into account address of each objdump line Arnaldo Carvalho de Melo
2015-09-05 1:06 ` [PATCH 02/15] perf tests: Make objdump disassemble zero blocks Arnaldo Carvalho de Melo
2015-09-05 1:06 ` [PATCH 03/15] perf tests: Stop reading if objdump output crossed sections Arnaldo Carvalho de Melo
2015-09-05 1:06 ` [PATCH 04/15] perf tests: Print objdump/dso buffers if they don't match Arnaldo Carvalho de Melo
2015-09-05 1:06 ` [PATCH 05/15] tools lib api fs: Make tracing_path_strerror_open message generic Arnaldo Carvalho de Melo
2015-09-05 1:06 ` [PATCH 06/15] tools lib api fs: Replace debugfs/tracefs objects interface with fs.c Arnaldo Carvalho de Melo
2015-09-05 1:06 ` [PATCH 07/15] tools lib api fs: Remove debugfs, tracefs and findfs objects Arnaldo Carvalho de Melo
2015-09-05 1:06 ` [PATCH 08/15] perf tools: Switch to tracing_path interface on appropriate places Arnaldo Carvalho de Melo
2015-09-05 1:06 ` [PATCH 09/15] perf test: Add entry to test cpu topology Arnaldo Carvalho de Melo
2015-09-05 1:06 ` [PATCH 10/15] perf tools: Add processor socket info to hist_entry and addr_location Arnaldo Carvalho de Melo
2015-09-05 1:06 ` [PATCH 11/15] perf tools: Introduce new sort type "socket" for the processor socket Arnaldo Carvalho de Melo
2015-09-05 1:06 ` [PATCH 12/15] perf report: Introduce --socket-filter option Arnaldo Carvalho de Melo
2015-09-05 1:06 ` [PATCH 13/15] perf hists browser: Zoom in/out for processor socket Arnaldo Carvalho de Melo
2015-09-05 1:06 ` [PATCH 14/15] perf test: Add entry for hists socket filter Arnaldo Carvalho de Melo
2015-09-05 1:06 ` [PATCH 15/15] perf stat: Move sw clock metrics printout to stat-shadow Arnaldo Carvalho de Melo
2015-09-08 14:09 ` [GIT PULL 00/15] perf/core improvements and fixes Arnaldo Carvalho de Melo
2015-09-08 14:21 ` Ingo Molnar
2015-09-08 14:30 ` Arnaldo Carvalho de Melo
2015-09-14 8:41 ` Ingo Molnar
2015-09-14 9:07 ` Wangnan (F)
-- strict thread matches above, loose matches on Subject: below --
2017-08-23 19:35 Arnaldo Carvalho de Melo
2017-07-28 20:00 Arnaldo Carvalho de Melo
2017-07-30 9:31 ` Ingo Molnar
2017-02-14 1:13 Arnaldo Carvalho de Melo
2017-02-14 6:31 ` Ingo Molnar
2016-11-15 1:38 Arnaldo Carvalho de Melo
2016-11-15 8:47 ` Ingo Molnar
2016-10-27 20:40 Arnaldo Carvalho de Melo
2016-09-22 21:12 Arnaldo Carvalho de Melo
2016-09-23 5:22 ` Ingo Molnar
2016-07-18 23:33 Arnaldo Carvalho de Melo
2016-07-19 6:46 ` Ingo Molnar
2016-05-10 15:15 Arnaldo Carvalho de Melo
2016-05-10 20:28 ` Ingo Molnar
2016-03-07 19:44 Arnaldo Carvalho de Melo
2016-02-22 18:02 Arnaldo Carvalho de Melo
2016-02-24 7:21 ` Ingo Molnar
2015-06-08 14:17 Arnaldo Carvalho de Melo
2015-06-09 9:47 ` Ingo Molnar
2015-04-02 22:28 Arnaldo Carvalho de Melo
2015-04-03 5:02 ` Ingo Molnar
2014-10-15 20:52 Arnaldo Carvalho de Melo
2014-10-16 5:18 ` Ingo Molnar
2014-06-09 20:02 Jiri Olsa
2014-06-12 11:54 ` Ingo Molnar
2013-08-30 18:58 Arnaldo Carvalho de Melo
2013-08-31 8:08 ` Ingo Molnar
2013-02-28 21:05 Arnaldo Carvalho de Melo
2011-12-23 21:53 Arnaldo Carvalho de Melo
2011-12-29 20:28 ` 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).