* [GIT PULL 0/9] perf/core improvements and fixes
@ 2015-08-10 20:56 Arnaldo Carvalho de Melo
2015-08-10 20:56 ` [PATCH 1/9] perf stat: Move perf_counts struct and functions into separate object Arnaldo Carvalho de Melo
` (9 more replies)
0 siblings, 10 replies; 45+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-08-10 20:56 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Andi Kleen, Borislav Petkov, David Ahern, Frederic Weisbecker,
Jiri Olsa, Kan Liang, Namhyung Kim, Peter Zijlstra,
Stephane Eranian, Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling,
- Arnaldo
The following changes since commit f1d800bf615b84ca253af372d2dac8cdef743a20:
Merge tag 'perf-ebpf-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-08-08 10:05:17 +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 4605bb55b91449a1a953a51f0334d3bc02351adb:
perf evlist: Be more specific on -F/--freq (2015-08-10 17:20:26 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
User visible:
- Introduce 'srcfile' sort key: (Andi Kleen)
# perf record -F 10000 usleep 1
# perf report --stdio --dsos '[kernel.vmlinux]' -s srcfile
<SNIP>
# Overhead Source File
26.49% copy_page_64.S
5.49% signal.c
0.51% msr.h
#
It can be combined with other fields, for instance, experiment with
'-s srcfile,symbol'.
There are some oddities in some distros and with some specific DSOs, being
investigated, so your mileage may vary.
- Update the column width for the "srcline" sort key (Arnaldo Carvalho de Melo)
- Support per-event 'freq' term: (Namhyung Kim)
$ perf record -e 'cpu/instructions,freq=1234/',cycles -c 1000 sleep 1
$ perf evlist -F
cpu/instructions,freq=1234/: sample_freq=1234
cycles: sample_period=1000
$
Infrastructure:
- Move perf_counts struct and functions into separate object (Jiri Olsa)
- Unset perf_event_attr::freq when period term is set (Jiri Olsa)
- Move callchain option parsing code to util.c (Kan Liang)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Andi Kleen (2):
perf tools: Support full source file paths for srcline
perf report: Add support for srcfile sort key
Arnaldo Carvalho de Melo (2):
perf hists: hist_entry__cmp() may use he_tmp.hists, initialize it
perf hists: Update the column width for the "srcline" sort key
Jiri Olsa (2):
perf stat: Move perf_counts struct and functions into separate object
perf tools: Unset perf_event_attr::freq when period term is set
Kan Liang (1):
perf callchain: Move option parsing code to util.c
Namhyung Kim (2):
perf record: Support per-event freq term
perf evlist: Be more specific on -F/--freq
tools/perf/Documentation/perf-record.txt | 1 +
tools/perf/Documentation/perf-report.txt | 4 ++
tools/perf/Documentation/perf-script.txt | 3 ++
tools/perf/builtin-report.c | 2 +
tools/perf/builtin-script.c | 2 +
tools/perf/builtin-stat.c | 1 +
tools/perf/util/Build | 1 +
tools/perf/util/callchain.c | 89 +------------------------------
tools/perf/util/callchain.h | 1 +
tools/perf/util/counts.c | 52 ++++++++++++++++++
tools/perf/util/counts.h | 37 +++++++++++++
tools/perf/util/evsel.c | 14 ++++-
tools/perf/util/evsel.h | 4 +-
tools/perf/util/hist.c | 9 ++++
tools/perf/util/hist.h | 1 +
tools/perf/util/parse-events.c | 6 +++
tools/perf/util/parse-events.h | 1 +
tools/perf/util/parse-events.l | 1 +
tools/perf/util/pmu.c | 2 +-
tools/perf/util/python-ext-sources | 2 +-
tools/perf/util/sort.c | 52 ++++++++++++++++++
tools/perf/util/sort.h | 2 +
tools/perf/util/srcline.c | 6 ++-
tools/perf/util/stat.c | 49 -----------------
tools/perf/util/stat.h | 30 -----------
tools/perf/util/util.c | 90 ++++++++++++++++++++++++++++++++
tools/perf/util/util.h | 3 ++
27 files changed, 292 insertions(+), 173 deletions(-)
create mode 100644 tools/perf/util/counts.c
create mode 100644 tools/perf/util/counts.h
^ permalink raw reply [flat|nested] 45+ messages in thread
* [PATCH 1/9] perf stat: Move perf_counts struct and functions into separate object
2015-08-10 20:56 [GIT PULL 0/9] perf/core improvements and fixes Arnaldo Carvalho de Melo
@ 2015-08-10 20:56 ` Arnaldo Carvalho de Melo
2015-08-10 20:56 ` [PATCH 2/9] perf callchain: Move option parsing code to util.c Arnaldo Carvalho de Melo
` (8 subsequent siblings)
9 siblings, 0 replies; 45+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-08-10 20:56 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Jiri Olsa, Jiri Olsa, Andi Kleen, Kan Liang,
Namhyung Kim, Arnaldo Carvalho de Melo
From: Jiri Olsa <jolsa@redhat.com>
Moving 'struct perf_counts' and associated functions into separate
object, so we could remove stat.c object dependency from python build.
It makes the python code to build properly, because it fails to load due
to missing stat-shadow.c object dependency if some patches from Kan
Liang are applied.
So apply this one, then Kan's.
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Kan Liang <kan.liang@intel.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: http://lkml.kernel.org/r/20150807105103.GB8624@krava.brq.redhat.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/builtin-stat.c | 1 +
tools/perf/util/Build | 1 +
tools/perf/util/counts.c | 52 ++++++++++++++++++++++++++++++++++++++
tools/perf/util/counts.h | 37 +++++++++++++++++++++++++++
tools/perf/util/evsel.h | 2 +-
tools/perf/util/python-ext-sources | 2 +-
tools/perf/util/stat.c | 49 -----------------------------------
tools/perf/util/stat.h | 30 ----------------------
8 files changed, 93 insertions(+), 81 deletions(-)
create mode 100644 tools/perf/util/counts.c
create mode 100644 tools/perf/util/counts.h
diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index a054ddc0b2a0..7aa039bd379a 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -58,6 +58,7 @@
#include "util/cpumap.h"
#include "util/thread.h"
#include "util/thread_map.h"
+#include "util/counts.h"
#include <stdlib.h>
#include <sys/prctl.h>
diff --git a/tools/perf/util/Build b/tools/perf/util/Build
index 2ee81d74cf45..1ce0adc8b3cb 100644
--- a/tools/perf/util/Build
+++ b/tools/perf/util/Build
@@ -68,6 +68,7 @@ libperf-y += target.o
libperf-y += rblist.o
libperf-y += intlist.o
libperf-y += vdso.o
+libperf-y += counts.o
libperf-y += stat.o
libperf-y += stat-shadow.o
libperf-y += record.o
diff --git a/tools/perf/util/counts.c b/tools/perf/util/counts.c
new file mode 100644
index 000000000000..e3fde313deb2
--- /dev/null
+++ b/tools/perf/util/counts.c
@@ -0,0 +1,52 @@
+#include <stdlib.h>
+#include "evsel.h"
+#include "counts.h"
+
+struct perf_counts *perf_counts__new(int ncpus, int nthreads)
+{
+ struct perf_counts *counts = zalloc(sizeof(*counts));
+
+ if (counts) {
+ struct xyarray *values;
+
+ values = xyarray__new(ncpus, nthreads, sizeof(struct perf_counts_values));
+ if (!values) {
+ free(counts);
+ return NULL;
+ }
+
+ counts->values = values;
+ }
+
+ return counts;
+}
+
+void perf_counts__delete(struct perf_counts *counts)
+{
+ if (counts) {
+ xyarray__delete(counts->values);
+ free(counts);
+ }
+}
+
+static void perf_counts__reset(struct perf_counts *counts)
+{
+ xyarray__reset(counts->values);
+}
+
+void perf_evsel__reset_counts(struct perf_evsel *evsel)
+{
+ perf_counts__reset(evsel->counts);
+}
+
+int perf_evsel__alloc_counts(struct perf_evsel *evsel, int ncpus, int nthreads)
+{
+ evsel->counts = perf_counts__new(ncpus, nthreads);
+ return evsel->counts != NULL ? 0 : -ENOMEM;
+}
+
+void perf_evsel__free_counts(struct perf_evsel *evsel)
+{
+ perf_counts__delete(evsel->counts);
+ evsel->counts = NULL;
+}
diff --git a/tools/perf/util/counts.h b/tools/perf/util/counts.h
new file mode 100644
index 000000000000..34d8baaf558a
--- /dev/null
+++ b/tools/perf/util/counts.h
@@ -0,0 +1,37 @@
+#ifndef __PERF_COUNTS_H
+#define __PERF_COUNTS_H
+
+#include "xyarray.h"
+
+struct perf_counts_values {
+ union {
+ struct {
+ u64 val;
+ u64 ena;
+ u64 run;
+ };
+ u64 values[3];
+ };
+};
+
+struct perf_counts {
+ s8 scaled;
+ struct perf_counts_values aggr;
+ struct xyarray *values;
+};
+
+
+static inline struct perf_counts_values*
+perf_counts(struct perf_counts *counts, int cpu, int thread)
+{
+ return xyarray__entry(counts->values, cpu, thread);
+}
+
+struct perf_counts *perf_counts__new(int ncpus, int nthreads);
+void perf_counts__delete(struct perf_counts *counts);
+
+void perf_evsel__reset_counts(struct perf_evsel *evsel);
+int perf_evsel__alloc_counts(struct perf_evsel *evsel, int ncpus, int nthreads);
+void perf_evsel__free_counts(struct perf_evsel *evsel);
+
+#endif /* __PERF_COUNTS_H */
diff --git a/tools/perf/util/evsel.h b/tools/perf/util/evsel.h
index 6a129081f3ad..b948f69d2558 100644
--- a/tools/perf/util/evsel.h
+++ b/tools/perf/util/evsel.h
@@ -9,7 +9,7 @@
#include "xyarray.h"
#include "symbol.h"
#include "cpumap.h"
-#include "stat.h"
+#include "counts.h"
struct perf_evsel;
diff --git a/tools/perf/util/python-ext-sources b/tools/perf/util/python-ext-sources
index 0766d98c5da5..51be28b1bca2 100644
--- a/tools/perf/util/python-ext-sources
+++ b/tools/perf/util/python-ext-sources
@@ -16,7 +16,7 @@ util/util.c
util/xyarray.c
util/cgroup.c
util/rblist.c
-util/stat.c
+util/counts.c
util/strlist.c
util/trace-event.c
../lib/rbtree.c
diff --git a/tools/perf/util/stat.c b/tools/perf/util/stat.c
index c5c709cdc3ce..415c359de465 100644
--- a/tools/perf/util/stat.c
+++ b/tools/perf/util/stat.c
@@ -97,55 +97,6 @@ void perf_stat_evsel_id_init(struct perf_evsel *evsel)
}
}
-struct perf_counts *perf_counts__new(int ncpus, int nthreads)
-{
- struct perf_counts *counts = zalloc(sizeof(*counts));
-
- if (counts) {
- struct xyarray *values;
-
- values = xyarray__new(ncpus, nthreads, sizeof(struct perf_counts_values));
- if (!values) {
- free(counts);
- return NULL;
- }
-
- counts->values = values;
- }
-
- return counts;
-}
-
-void perf_counts__delete(struct perf_counts *counts)
-{
- if (counts) {
- xyarray__delete(counts->values);
- free(counts);
- }
-}
-
-static void perf_counts__reset(struct perf_counts *counts)
-{
- xyarray__reset(counts->values);
-}
-
-void perf_evsel__reset_counts(struct perf_evsel *evsel)
-{
- perf_counts__reset(evsel->counts);
-}
-
-int perf_evsel__alloc_counts(struct perf_evsel *evsel, int ncpus, int nthreads)
-{
- evsel->counts = perf_counts__new(ncpus, nthreads);
- return evsel->counts != NULL ? 0 : -ENOMEM;
-}
-
-void perf_evsel__free_counts(struct perf_evsel *evsel)
-{
- perf_counts__delete(evsel->counts);
- evsel->counts = NULL;
-}
-
void perf_evsel__reset_stat_priv(struct perf_evsel *evsel)
{
int i;
diff --git a/tools/perf/util/stat.h b/tools/perf/util/stat.h
index 0b897b083682..62448c8175d3 100644
--- a/tools/perf/util/stat.h
+++ b/tools/perf/util/stat.h
@@ -33,23 +33,6 @@ enum aggr_mode {
AGGR_THREAD,
};
-struct perf_counts_values {
- union {
- struct {
- u64 val;
- u64 ena;
- u64 run;
- };
- u64 values[3];
- };
-};
-
-struct perf_counts {
- s8 scaled;
- struct perf_counts_values aggr;
- struct xyarray *values;
-};
-
struct perf_stat_config {
enum aggr_mode aggr_mode;
bool scale;
@@ -57,12 +40,6 @@ struct perf_stat_config {
unsigned int interval;
};
-static inline struct perf_counts_values*
-perf_counts(struct perf_counts *counts, int cpu, int thread)
-{
- return xyarray__entry(counts->values, cpu, thread);
-}
-
void update_stats(struct stats *stats, u64 val);
double avg_stats(struct stats *stats);
double stddev_stats(struct stats *stats);
@@ -96,13 +73,6 @@ void perf_stat__update_shadow_stats(struct perf_evsel *counter, u64 *count,
void perf_stat__print_shadow_stats(FILE *out, struct perf_evsel *evsel,
double avg, int cpu, enum aggr_mode aggr);
-struct perf_counts *perf_counts__new(int ncpus, int nthreads);
-void perf_counts__delete(struct perf_counts *counts);
-
-void perf_evsel__reset_counts(struct perf_evsel *evsel);
-int perf_evsel__alloc_counts(struct perf_evsel *evsel, int ncpus, int nthreads);
-void perf_evsel__free_counts(struct perf_evsel *evsel);
-
void perf_evsel__reset_stat_priv(struct perf_evsel *evsel);
int perf_evsel__alloc_stat_priv(struct perf_evsel *evsel);
void perf_evsel__free_stat_priv(struct perf_evsel *evsel);
--
2.1.0
^ permalink raw reply related [flat|nested] 45+ messages in thread
* [PATCH 2/9] perf callchain: Move option parsing code to util.c
2015-08-10 20:56 [GIT PULL 0/9] perf/core improvements and fixes Arnaldo Carvalho de Melo
2015-08-10 20:56 ` [PATCH 1/9] perf stat: Move perf_counts struct and functions into separate object Arnaldo Carvalho de Melo
@ 2015-08-10 20:56 ` Arnaldo Carvalho de Melo
2015-08-10 20:56 ` [PATCH 3/9] perf tools: Support full source file paths for srcline Arnaldo Carvalho de Melo
` (7 subsequent siblings)
9 siblings, 0 replies; 45+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-08-10 20:56 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Kan Liang, Andi Kleen, Jiri Olsa, Namhyung Kim,
Arnaldo Carvalho de Melo
From: Kan Liang <kan.liang@intel.com>
Move callchain option parse related code to util.c, to avoid dragging
more object files into the python binding.
Signed-off-by: Kan Liang <kan.liang@intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: http://lkml.kernel.org/r/1438890294-33409-1-git-send-email-kan.liang@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/callchain.c | 89 +-------------------------------------------
tools/perf/util/callchain.h | 1 +
tools/perf/util/util.c | 90 +++++++++++++++++++++++++++++++++++++++++++++
tools/perf/util/util.h | 2 +
4 files changed, 94 insertions(+), 88 deletions(-)
diff --git a/tools/perf/util/callchain.c b/tools/perf/util/callchain.c
index 931cca8e6ae8..773fe13ce627 100644
--- a/tools/perf/util/callchain.c
+++ b/tools/perf/util/callchain.c
@@ -25,96 +25,9 @@
__thread struct callchain_cursor callchain_cursor;
-#ifdef HAVE_DWARF_UNWIND_SUPPORT
-static int get_stack_size(const char *str, unsigned long *_size)
-{
- char *endptr;
- unsigned long size;
- unsigned long max_size = round_down(USHRT_MAX, sizeof(u64));
-
- size = strtoul(str, &endptr, 0);
-
- do {
- if (*endptr)
- break;
-
- size = round_up(size, sizeof(u64));
- if (!size || size > max_size)
- break;
-
- *_size = size;
- return 0;
-
- } while (0);
-
- pr_err("callchain: Incorrect stack dump size (max %ld): %s\n",
- max_size, str);
- return -1;
-}
-#endif /* HAVE_DWARF_UNWIND_SUPPORT */
-
int parse_callchain_record_opt(const char *arg, struct callchain_param *param)
{
- char *tok, *name, *saveptr = NULL;
- char *buf;
- int ret = -1;
-
- /* We need buffer that we know we can write to. */
- buf = malloc(strlen(arg) + 1);
- if (!buf)
- return -ENOMEM;
-
- strcpy(buf, arg);
-
- tok = strtok_r((char *)buf, ",", &saveptr);
- name = tok ? : (char *)buf;
-
- do {
- /* Framepointer style */
- if (!strncmp(name, "fp", sizeof("fp"))) {
- if (!strtok_r(NULL, ",", &saveptr)) {
- param->record_mode = CALLCHAIN_FP;
- ret = 0;
- } else
- pr_err("callchain: No more arguments "
- "needed for --call-graph fp\n");
- break;
-
-#ifdef HAVE_DWARF_UNWIND_SUPPORT
- /* Dwarf style */
- } else if (!strncmp(name, "dwarf", sizeof("dwarf"))) {
- const unsigned long default_stack_dump_size = 8192;
-
- ret = 0;
- param->record_mode = CALLCHAIN_DWARF;
- param->dump_size = default_stack_dump_size;
-
- tok = strtok_r(NULL, ",", &saveptr);
- if (tok) {
- unsigned long size = 0;
-
- ret = get_stack_size(tok, &size);
- param->dump_size = size;
- }
-#endif /* HAVE_DWARF_UNWIND_SUPPORT */
- } else if (!strncmp(name, "lbr", sizeof("lbr"))) {
- if (!strtok_r(NULL, ",", &saveptr)) {
- param->record_mode = CALLCHAIN_LBR;
- ret = 0;
- } else
- pr_err("callchain: No more arguments "
- "needed for --call-graph lbr\n");
- break;
- } else {
- pr_err("callchain: Unknown --call-graph option "
- "value: %s\n", arg);
- break;
- }
-
- } while (0);
-
- free(buf);
- return ret;
+ return parse_callchain_record(arg, param);
}
static int parse_callchain_mode(const char *value)
diff --git a/tools/perf/util/callchain.h b/tools/perf/util/callchain.h
index 68a32c2fe87a..acee2b3cd801 100644
--- a/tools/perf/util/callchain.h
+++ b/tools/perf/util/callchain.h
@@ -177,6 +177,7 @@ int fill_callchain_info(struct addr_location *al, struct callchain_cursor_node *
bool hide_unresolved);
extern const char record_callchain_help[];
+extern int parse_callchain_record(const char *arg, struct callchain_param *param);
int parse_callchain_record_opt(const char *arg, struct callchain_param *param);
int parse_callchain_report_opt(const char *arg);
int perf_callchain_config(const char *var, const char *value);
diff --git a/tools/perf/util/util.c b/tools/perf/util/util.c
index edc2d633b332..f7adf1203df1 100644
--- a/tools/perf/util/util.c
+++ b/tools/perf/util/util.c
@@ -566,6 +566,96 @@ unsigned long parse_tag_value(const char *str, struct parse_tag *tags)
return (unsigned long) -1;
}
+int get_stack_size(const char *str, unsigned long *_size)
+{
+ char *endptr;
+ unsigned long size;
+ unsigned long max_size = round_down(USHRT_MAX, sizeof(u64));
+
+ size = strtoul(str, &endptr, 0);
+
+ do {
+ if (*endptr)
+ break;
+
+ size = round_up(size, sizeof(u64));
+ if (!size || size > max_size)
+ break;
+
+ *_size = size;
+ return 0;
+
+ } while (0);
+
+ pr_err("callchain: Incorrect stack dump size (max %ld): %s\n",
+ max_size, str);
+ return -1;
+}
+
+int parse_callchain_record(const char *arg, struct callchain_param *param)
+{
+ char *tok, *name, *saveptr = NULL;
+ char *buf;
+ int ret = -1;
+
+ /* We need buffer that we know we can write to. */
+ buf = malloc(strlen(arg) + 1);
+ if (!buf)
+ return -ENOMEM;
+
+ strcpy(buf, arg);
+
+ tok = strtok_r((char *)buf, ",", &saveptr);
+ name = tok ? : (char *)buf;
+
+ do {
+ /* Framepointer style */
+ if (!strncmp(name, "fp", sizeof("fp"))) {
+ if (!strtok_r(NULL, ",", &saveptr)) {
+ param->record_mode = CALLCHAIN_FP;
+ ret = 0;
+ } else
+ pr_err("callchain: No more arguments "
+ "needed for --call-graph fp\n");
+ break;
+
+#ifdef HAVE_DWARF_UNWIND_SUPPORT
+ /* Dwarf style */
+ } else if (!strncmp(name, "dwarf", sizeof("dwarf"))) {
+ const unsigned long default_stack_dump_size = 8192;
+
+ ret = 0;
+ param->record_mode = CALLCHAIN_DWARF;
+ param->dump_size = default_stack_dump_size;
+
+ tok = strtok_r(NULL, ",", &saveptr);
+ if (tok) {
+ unsigned long size = 0;
+
+ ret = get_stack_size(tok, &size);
+ param->dump_size = size;
+ }
+#endif /* HAVE_DWARF_UNWIND_SUPPORT */
+ } else if (!strncmp(name, "lbr", sizeof("lbr"))) {
+ if (!strtok_r(NULL, ",", &saveptr)) {
+ param->record_mode = CALLCHAIN_LBR;
+ ret = 0;
+ } else
+ pr_err("callchain: No more arguments "
+ "needed for --call-graph lbr\n");
+ break;
+ } else {
+ pr_err("callchain: Unknown --call-graph option "
+ "value: %s\n", arg);
+ break;
+ }
+
+ } while (0);
+
+ free(buf);
+ return ret;
+}
+
int filename__read_str(const char *filename, char **buf, size_t *sizep)
{
size_t size = 0, alloc_size = 0;
diff --git a/tools/perf/util/util.h b/tools/perf/util/util.h
index 20d625a4cacf..81487037acf7 100644
--- a/tools/perf/util/util.h
+++ b/tools/perf/util/util.h
@@ -351,4 +351,6 @@ static inline char *asprintf_expr_not_in_ints(const char *var, size_t nints, int
return asprintf_expr_inout_ints(var, false, nints, ints);
}
+int get_stack_size(const char *str, unsigned long *_size);
+
#endif /* GIT_COMPAT_UTIL_H */
--
2.1.0
^ permalink raw reply related [flat|nested] 45+ messages in thread
* [PATCH 3/9] perf tools: Support full source file paths for srcline
2015-08-10 20:56 [GIT PULL 0/9] perf/core improvements and fixes Arnaldo Carvalho de Melo
2015-08-10 20:56 ` [PATCH 1/9] perf stat: Move perf_counts struct and functions into separate object Arnaldo Carvalho de Melo
2015-08-10 20:56 ` [PATCH 2/9] perf callchain: Move option parsing code to util.c Arnaldo Carvalho de Melo
@ 2015-08-10 20:56 ` Arnaldo Carvalho de Melo
2015-08-10 20:56 ` [PATCH 4/9] perf tools: Unset perf_event_attr::freq when period term is set Arnaldo Carvalho de Melo
` (6 subsequent siblings)
9 siblings, 0 replies; 45+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-08-10 20:56 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Andi Kleen, Jiri Olsa, Namhyung Kim,
Arnaldo Carvalho de Melo
From: Andi Kleen <ak@linux.intel.com>
For perf report/script srcline currently only the base file name of the
source file is printed. This is a good default because it usually fits
on the screen.
But in some cases we want to know the full file name, for example to
aggregate hits per file.
In the later case we need more than the base file name to resolve file
naming collisions: for example the kernel source has ~70 files named
"core.c"
It's also useful as input to post processing tools which want to point
to the right file.
Add a flag to allow full file name output.
Add an option to perf report/script to enable this option.
Signed-off-by: Andi Kleen <ak@linux.intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: http://lkml.kernel.org/r/1438986245-15191-1-git-send-email-andi@firstfloor.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/Documentation/perf-report.txt | 2 ++
tools/perf/Documentation/perf-script.txt | 3 +++
tools/perf/builtin-report.c | 2 ++
tools/perf/builtin-script.c | 2 ++
tools/perf/util/srcline.c | 6 +++++-
tools/perf/util/util.h | 1 +
6 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/tools/perf/Documentation/perf-report.txt b/tools/perf/Documentation/perf-report.txt
index 960da203ec11..1a782ef02b68 100644
--- a/tools/perf/Documentation/perf-report.txt
+++ b/tools/perf/Documentation/perf-report.txt
@@ -354,6 +354,8 @@ OPTIONS
To disable decoding entirely, use --no-itrace.
+--full-source-path::
+ Show the full path for source files for srcline output.
include::callchain-overhead-calculation.txt[]
diff --git a/tools/perf/Documentation/perf-script.txt b/tools/perf/Documentation/perf-script.txt
index e2fec5fc21e7..8e9be1f9c1dd 100644
--- a/tools/perf/Documentation/perf-script.txt
+++ b/tools/perf/Documentation/perf-script.txt
@@ -260,6 +260,9 @@ OPTIONS
To disable decoding entirely, use --no-itrace.
+--full-source-path::
+ Show the full path for source files for srcline output.
+
SEE ALSO
--------
linkperf:perf-record[1], linkperf:perf-script-perl[1],
diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
index 3a9d1b659fcd..f301e865001f 100644
--- a/tools/perf/builtin-report.c
+++ b/tools/perf/builtin-report.c
@@ -738,6 +738,8 @@ int cmd_report(int argc, const char **argv, const char *prefix __maybe_unused)
OPT_CALLBACK_OPTARG(0, "itrace", &itrace_synth_opts, NULL, "opts",
"Instruction Tracing options",
itrace_parse_synth_opts),
+ OPT_BOOLEAN(0, "full-source-path", &srcline_full_filename,
+ "Show full source file name path for source lines"),
OPT_END()
};
struct perf_data_file file = {
diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c
index 7912feb9a024..7b376d215e94 100644
--- a/tools/perf/builtin-script.c
+++ b/tools/perf/builtin-script.c
@@ -1653,6 +1653,8 @@ int cmd_script(int argc, const char **argv, const char *prefix __maybe_unused)
OPT_CALLBACK_OPTARG(0, "itrace", &itrace_synth_opts, NULL, "opts",
"Instruction Tracing options",
itrace_parse_synth_opts),
+ OPT_BOOLEAN(0, "full-source-path", &srcline_full_filename,
+ "Show full source file name path for source lines"),
OPT_END()
};
const char * const script_subcommands[] = { "record", "report", NULL };
diff --git a/tools/perf/util/srcline.c b/tools/perf/util/srcline.c
index c93fb0c5bd0b..fc08248f08ca 100644
--- a/tools/perf/util/srcline.c
+++ b/tools/perf/util/srcline.c
@@ -10,6 +10,8 @@
#include "symbol.h"
+bool srcline_full_filename;
+
#ifdef HAVE_LIBBFD_SUPPORT
/*
@@ -277,7 +279,9 @@ char *get_srcline(struct dso *dso, u64 addr, struct symbol *sym,
if (!addr2line(dso_name, addr, &file, &line, dso))
goto out;
- if (asprintf(&srcline, "%s:%u", basename(file), line) < 0) {
+ if (asprintf(&srcline, "%s:%u",
+ srcline_full_filename ? file : basename(file),
+ line) < 0) {
free(file);
goto out;
}
diff --git a/tools/perf/util/util.h b/tools/perf/util/util.h
index 81487037acf7..88a891562a47 100644
--- a/tools/perf/util/util.h
+++ b/tools/perf/util/util.h
@@ -318,6 +318,7 @@ static inline int path__join3(char *bf, size_t size,
struct dso;
struct symbol;
+extern bool srcline_full_filename;
char *get_srcline(struct dso *dso, u64 addr, struct symbol *sym,
bool show_sym);
void free_srcline(char *srcline);
--
2.1.0
^ permalink raw reply related [flat|nested] 45+ messages in thread
* [PATCH 4/9] perf tools: Unset perf_event_attr::freq when period term is set
2015-08-10 20:56 [GIT PULL 0/9] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (2 preceding siblings ...)
2015-08-10 20:56 ` [PATCH 3/9] perf tools: Support full source file paths for srcline Arnaldo Carvalho de Melo
@ 2015-08-10 20:56 ` Arnaldo Carvalho de Melo
2015-08-10 20:56 ` [PATCH 5/9] perf hists: hist_entry__cmp() may use he_tmp.hists, initialize it Arnaldo Carvalho de Melo
` (5 subsequent siblings)
9 siblings, 0 replies; 45+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-08-10 20:56 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Jiri Olsa, Jiri Olsa, Andi Kleen, Kan Liang,
Namhyung Kim, Arnaldo Carvalho de Melo
From: Jiri Olsa <jolsa@redhat.com>
We need to unset 'perf_event_attr::freq' bit (default 1) when
'period' term is specified within event definition like:
-e 'cpu/cpu-cycles,call-graph=fp,time,period=100000'
otherwise it will handle the period value as frequency
(and fail if it crossed the maximum allowed frequency value).
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Kan Liang <kan.liang@intel.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: http://lkml.kernel.org/r/20150808171210.GC17040@krava.brq.redhat.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/evsel.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
index f572f469a30d..a59710f88d8a 100644
--- a/tools/perf/util/evsel.c
+++ b/tools/perf/util/evsel.c
@@ -598,6 +598,7 @@ static void apply_config_terms(struct perf_evsel *evsel)
switch (term->type) {
case PERF_EVSEL__CONFIG_TERM_PERIOD:
attr->sample_period = term->val.period;
+ attr->freq = 0;
break;
case PERF_EVSEL__CONFIG_TERM_TIME:
if (term->val.time)
--
2.1.0
^ permalink raw reply related [flat|nested] 45+ messages in thread
* [PATCH 5/9] perf hists: hist_entry__cmp() may use he_tmp.hists, initialize it
2015-08-10 20:56 [GIT PULL 0/9] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (3 preceding siblings ...)
2015-08-10 20:56 ` [PATCH 4/9] perf tools: Unset perf_event_attr::freq when period term is set Arnaldo Carvalho de Melo
@ 2015-08-10 20:56 ` Arnaldo Carvalho de Melo
2015-08-10 20:56 ` [PATCH 6/9] perf hists: Update the column width for the "srcline" sort key Arnaldo Carvalho de Melo
` (4 subsequent siblings)
9 siblings, 0 replies; 45+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-08-10 20:56 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Borislav Petkov, David Ahern, Frederic Weisbecker, Jiri Olsa,
Namhyung Kim, Stephane Eranian
From: Arnaldo Carvalho de Melo <acme@redhat.com>
The iter_add_next_cumulative_entry() function calls hist_entry__cmp(),
which may want to access the hists where this hist_entry is stored,
initialize it to let that happen and avoid segfaults.
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Borislav Petkov <bp@suse.de>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/n/tip-iqg98sfn4fvwcxp0pdvqauie@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/hist.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
index a6e9ddd37913..2fe6ea39e257 100644
--- a/tools/perf/util/hist.c
+++ b/tools/perf/util/hist.c
@@ -761,6 +761,7 @@ iter_add_next_cumulative_entry(struct hist_entry_iter *iter,
struct hist_entry **he_cache = iter->priv;
struct hist_entry *he;
struct hist_entry he_tmp = {
+ .hists = evsel__hists(evsel),
.cpu = al->cpu,
.thread = al->thread,
.comm = thread__comm(al->thread),
--
2.1.0
^ permalink raw reply related [flat|nested] 45+ messages in thread
* [PATCH 6/9] perf hists: Update the column width for the "srcline" sort key
2015-08-10 20:56 [GIT PULL 0/9] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (4 preceding siblings ...)
2015-08-10 20:56 ` [PATCH 5/9] perf hists: hist_entry__cmp() may use he_tmp.hists, initialize it Arnaldo Carvalho de Melo
@ 2015-08-10 20:56 ` Arnaldo Carvalho de Melo
2015-08-10 20:56 ` [PATCH 7/9] perf report: Add support for srcfile " Arnaldo Carvalho de Melo
` (3 subsequent siblings)
9 siblings, 0 replies; 45+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-08-10 20:56 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Namhyung Kim, Andi Kleen,
Jiri Olsa
From: Arnaldo Carvalho de Melo <acme@redhat.com>
When we introduce a new sort key, we need to update the
hists__calc_col_len() function accordingly, otherwise the width
will be limited to strlen(header).
We can't update it when obtaining a line value for a column (for
instance, in sort__srcline_cmp()), because we reset it all when doing a
resort (see hists__output_recalc_col_len()), so we need to, from what is
in the hist_entry fields, set each of the column widths.
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: Jiri Olsa <jolsa@kernel.org>
Fixes: 409a8be61560 ("perf tools: Add sort by src line/number")
Link: http://lkml.kernel.org/n/tip-jgbe0yx8v1gs89cslr93pvz2@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/hist.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
index 2fe6ea39e257..608c0a7fd0f4 100644
--- a/tools/perf/util/hist.c
+++ b/tools/perf/util/hist.c
@@ -151,6 +151,9 @@ void hists__calc_col_len(struct hists *hists, struct hist_entry *h)
hists__new_col_len(hists, HISTC_LOCAL_WEIGHT, 12);
hists__new_col_len(hists, HISTC_GLOBAL_WEIGHT, 12);
+ if (h->srcline)
+ hists__new_col_len(hists, HISTC_SRCLINE, strlen(h->srcline));
+
if (h->transaction)
hists__new_col_len(hists, HISTC_TRANSACTION,
hist_entry__transaction_len());
--
2.1.0
^ permalink raw reply related [flat|nested] 45+ messages in thread
* [PATCH 7/9] perf report: Add support for srcfile sort key
2015-08-10 20:56 [GIT PULL 0/9] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (5 preceding siblings ...)
2015-08-10 20:56 ` [PATCH 6/9] perf hists: Update the column width for the "srcline" sort key Arnaldo Carvalho de Melo
@ 2015-08-10 20:56 ` Arnaldo Carvalho de Melo
2015-08-11 2:31 ` Namhyung Kim
2015-08-10 20:56 ` [PATCH 8/9] perf record: Support per-event freq term Arnaldo Carvalho de Melo
` (2 subsequent siblings)
9 siblings, 1 reply; 45+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-08-10 20:56 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Andi Kleen, Jiri Olsa, Namhyung Kim,
Arnaldo Carvalho de Melo
From: Andi Kleen <ak@linux.intel.com>
In some cases it's useful to characterize samples by file. This is
useful to get a higher level categorization, for example to map cost to
subsystems.
Add a srcfile sort key to perf report. It builds on top of the existing
srcline support.
Commiter notes:
E.g.:
# perf record -F 10000 usleep 1
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.016 MB perf.data (13 samples) ]
[root@zoo ~]# perf report -s srcfile --stdio
# Total Lost Samples: 0
#
# Samples: 13 of event 'cycles'
# Event count (approx.): 869878
#
# Overhead Source File
# ........ ...........
60.99% .
20.62% paravirt.h
14.23% rmap.c
4.04% signal.c
0.11% msr.h
#
The first line is collecting all the files for which srcfiles couldn't somehow
get resolved to:
# perf report -s srcfile,dso --stdio
# Total Lost Samples: 0
#
# Samples: 13 of event 'cycles'
# Event count (approx.): 869878
#
# Overhead Source File Shared Object
# ........ ........... ................
40.97% . ld-2.20.so
20.62% paravirt.h [kernel.vmlinux]
20.02% . libc-2.20.so
14.23% rmap.c [kernel.vmlinux]
4.04% signal.c [kernel.vmlinux]
0.11% msr.h [kernel.vmlinux]
#
XXX: Investigate why that is not resolving on Fedora 21, Andi says he hasn't
seen this on Fedora 22.
Signed-off-by: Andi Kleen <ak@linux.intel.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: http://lkml.kernel.org/r/1438988064-21834-1-git-send-email-andi@firstfloor.org
[ Added column length update, from 0e65bdb3f90f ('perf hists: Update the column width for the "srcline" sort key') ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/Documentation/perf-report.txt | 2 ++
tools/perf/util/hist.c | 5 +++
tools/perf/util/hist.h | 1 +
tools/perf/util/sort.c | 52 ++++++++++++++++++++++++++++++++
tools/perf/util/sort.h | 2 ++
5 files changed, 62 insertions(+)
diff --git a/tools/perf/Documentation/perf-report.txt b/tools/perf/Documentation/perf-report.txt
index 1a782ef02b68..7b07d19e2d54 100644
--- a/tools/perf/Documentation/perf-report.txt
+++ b/tools/perf/Documentation/perf-report.txt
@@ -81,6 +81,8 @@ OPTIONS
- cpu: cpu 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
+ information.
- weight: Event specific weight, e.g. memory latency or transaction
abort cost. This is the global weight.
- local_weight: Local weight version of the weight above.
diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
index 608c0a7fd0f4..6bccfae334b1 100644
--- a/tools/perf/util/hist.c
+++ b/tools/perf/util/hist.c
@@ -154,6 +154,9 @@ void hists__calc_col_len(struct hists *hists, struct hist_entry *h)
if (h->srcline)
hists__new_col_len(hists, HISTC_SRCLINE, strlen(h->srcline));
+ if (h->srcfile)
+ hists__new_col_len(hists, HISTC_SRCFILE, strlen(h->srcfile));
+
if (h->transaction)
hists__new_col_len(hists, HISTC_TRANSACTION,
hist_entry__transaction_len());
@@ -949,6 +952,8 @@ void hist_entry__delete(struct hist_entry *he)
zfree(&he->stat_acc);
free_srcline(he->srcline);
+ if (he->srcfile && he->srcfile[0])
+ free(he->srcfile);
free_callchain(he->callchain);
free(he);
}
diff --git a/tools/perf/util/hist.h b/tools/perf/util/hist.h
index e2f712f85d2e..bc528d54e457 100644
--- a/tools/perf/util/hist.h
+++ b/tools/perf/util/hist.h
@@ -30,6 +30,7 @@ enum hist_column {
HISTC_PARENT,
HISTC_CPU,
HISTC_SRCLINE,
+ HISTC_SRCFILE,
HISTC_MISPREDICT,
HISTC_IN_TX,
HISTC_ABORT,
diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c
index 5177088a71d3..c0c32b050e45 100644
--- a/tools/perf/util/sort.c
+++ b/tools/perf/util/sort.c
@@ -319,6 +319,57 @@ struct sort_entry sort_srcline = {
.se_width_idx = HISTC_SRCLINE,
};
+/* --sort srcfile */
+
+static char no_srcfile[1];
+
+static char *get_srcfile(struct hist_entry *e)
+{
+ char *sf, *p;
+ struct map *map = e->ms.map;
+
+ sf = get_srcline(map->dso, map__rip_2objdump(map, e->ip),
+ e->ms.sym, true);
+ p = strchr(sf, ':');
+ if (p && *sf) {
+ *p = 0;
+ return sf;
+ }
+ free(sf);
+ return no_srcfile;
+}
+
+static int64_t
+sort__srcfile_cmp(struct hist_entry *left, struct hist_entry *right)
+{
+ if (!left->srcfile) {
+ if (!left->ms.map)
+ left->srcfile = no_srcfile;
+ else
+ left->srcfile = get_srcfile(left);
+ }
+ if (!right->srcfile) {
+ if (!right->ms.map)
+ right->srcfile = no_srcfile;
+ else
+ right->srcfile = get_srcfile(right);
+ }
+ return strcmp(right->srcfile, left->srcfile);
+}
+
+static int hist_entry__srcfile_snprintf(struct hist_entry *he, char *bf,
+ size_t size, unsigned int width)
+{
+ return repsep_snprintf(bf, size, "%-*.*s", width, width, he->srcfile);
+}
+
+struct sort_entry sort_srcfile = {
+ .se_header = "Source File",
+ .se_cmp = sort__srcfile_cmp,
+ .se_snprintf = hist_entry__srcfile_snprintf,
+ .se_width_idx = HISTC_SRCFILE,
+};
+
/* --sort parent */
static int64_t
@@ -1196,6 +1247,7 @@ static struct sort_dimension common_sort_dimensions[] = {
DIM(SORT_PARENT, "parent", sort_parent),
DIM(SORT_CPU, "cpu", sort_cpu),
DIM(SORT_SRCLINE, "srcline", sort_srcline),
+ DIM(SORT_SRCFILE, "srcfile", sort_srcfile),
DIM(SORT_LOCAL_WEIGHT, "local_weight", sort_local_weight),
DIM(SORT_GLOBAL_WEIGHT, "weight", sort_global_weight),
DIM(SORT_TRANSACTION, "transaction", sort_transaction),
diff --git a/tools/perf/util/sort.h b/tools/perf/util/sort.h
index bc6c87a76d16..3c2a399f8f5b 100644
--- a/tools/perf/util/sort.h
+++ b/tools/perf/util/sort.h
@@ -114,6 +114,7 @@ struct hist_entry {
};
};
char *srcline;
+ char *srcfile;
struct symbol *parent;
struct rb_root sorted_chain;
struct branch_info *branch_info;
@@ -172,6 +173,7 @@ enum sort_type {
SORT_PARENT,
SORT_CPU,
SORT_SRCLINE,
+ SORT_SRCFILE,
SORT_LOCAL_WEIGHT,
SORT_GLOBAL_WEIGHT,
SORT_TRANSACTION,
--
2.1.0
^ permalink raw reply related [flat|nested] 45+ messages in thread
* Re: [PATCH 7/9] perf report: Add support for srcfile sort key
2015-08-10 20:56 ` [PATCH 7/9] perf report: Add support for srcfile " Arnaldo Carvalho de Melo
@ 2015-08-11 2:31 ` Namhyung Kim
2015-08-11 13:36 ` Andi Kleen
0 siblings, 1 reply; 45+ messages in thread
From: Namhyung Kim @ 2015-08-11 2:31 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: Ingo Molnar, linux-kernel, Andi Kleen, Jiri Olsa,
Arnaldo Carvalho de Melo
On Mon, Aug 10, 2015 at 05:56:31PM -0300, Arnaldo Carvalho de Melo wrote:
> From: Andi Kleen <ak@linux.intel.com>
>
> In some cases it's useful to characterize samples by file. This is
> useful to get a higher level categorization, for example to map cost to
> subsystems.
>
> Add a srcfile sort key to perf report. It builds on top of the existing
> srcline support.
>
> Commiter notes:
>
> E.g.:
>
> # perf record -F 10000 usleep 1
> [ perf record: Woken up 1 times to write data ]
> [ perf record: Captured and wrote 0.016 MB perf.data (13 samples) ]
> [root@zoo ~]# perf report -s srcfile --stdio
> # Total Lost Samples: 0
> #
> # Samples: 13 of event 'cycles'
> # Event count (approx.): 869878
> #
> # Overhead Source File
> # ........ ...........
> 60.99% .
> 20.62% paravirt.h
> 14.23% rmap.c
> 4.04% signal.c
> 0.11% msr.h
>
> #
>
> The first line is collecting all the files for which srcfiles couldn't somehow
> get resolved to:
>
> # perf report -s srcfile,dso --stdio
> # Total Lost Samples: 0
> #
> # Samples: 13 of event 'cycles'
> # Event count (approx.): 869878
> #
> # Overhead Source File Shared Object
> # ........ ........... ................
> 40.97% . ld-2.20.so
> 20.62% paravirt.h [kernel.vmlinux]
> 20.02% . libc-2.20.so
> 14.23% rmap.c [kernel.vmlinux]
> 4.04% signal.c [kernel.vmlinux]
> 0.11% msr.h [kernel.vmlinux]
>
> #
>
> XXX: Investigate why that is not resolving on Fedora 21, Andi says he hasn't
> seen this on Fedora 22.
>
> Signed-off-by: Andi Kleen <ak@linux.intel.com>
> Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> Cc: Jiri Olsa <jolsa@kernel.org>
> Cc: Namhyung Kim <namhyung@kernel.org>
> Link: http://lkml.kernel.org/r/1438988064-21834-1-git-send-email-andi@firstfloor.org
> [ Added column length update, from 0e65bdb3f90f ('perf hists: Update the column width for the "srcline" sort key') ]
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> ---
> tools/perf/Documentation/perf-report.txt | 2 ++
> tools/perf/util/hist.c | 5 +++
> tools/perf/util/hist.h | 1 +
> tools/perf/util/sort.c | 52 ++++++++++++++++++++++++++++++++
> tools/perf/util/sort.h | 2 ++
> 5 files changed, 62 insertions(+)
>
> diff --git a/tools/perf/Documentation/perf-report.txt b/tools/perf/Documentation/perf-report.txt
> index 1a782ef02b68..7b07d19e2d54 100644
> --- a/tools/perf/Documentation/perf-report.txt
> +++ b/tools/perf/Documentation/perf-report.txt
> @@ -81,6 +81,8 @@ OPTIONS
> - cpu: cpu 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
> + information.
> - weight: Event specific weight, e.g. memory latency or transaction
> abort cost. This is the global weight.
> - local_weight: Local weight version of the weight above.
> diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
> index 608c0a7fd0f4..6bccfae334b1 100644
> --- a/tools/perf/util/hist.c
> +++ b/tools/perf/util/hist.c
> @@ -154,6 +154,9 @@ void hists__calc_col_len(struct hists *hists, struct hist_entry *h)
> if (h->srcline)
> hists__new_col_len(hists, HISTC_SRCLINE, strlen(h->srcline));
>
> + if (h->srcfile)
> + hists__new_col_len(hists, HISTC_SRCFILE, strlen(h->srcfile));
> +
> if (h->transaction)
> hists__new_col_len(hists, HISTC_TRANSACTION,
> hist_entry__transaction_len());
> @@ -949,6 +952,8 @@ void hist_entry__delete(struct hist_entry *he)
>
> zfree(&he->stat_acc);
> free_srcline(he->srcline);
> + if (he->srcfile && he->srcfile[0])
> + free(he->srcfile);
> free_callchain(he->callchain);
> free(he);
> }
> diff --git a/tools/perf/util/hist.h b/tools/perf/util/hist.h
> index e2f712f85d2e..bc528d54e457 100644
> --- a/tools/perf/util/hist.h
> +++ b/tools/perf/util/hist.h
> @@ -30,6 +30,7 @@ enum hist_column {
> HISTC_PARENT,
> HISTC_CPU,
> HISTC_SRCLINE,
> + HISTC_SRCFILE,
> HISTC_MISPREDICT,
> HISTC_IN_TX,
> HISTC_ABORT,
> diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c
> index 5177088a71d3..c0c32b050e45 100644
> --- a/tools/perf/util/sort.c
> +++ b/tools/perf/util/sort.c
> @@ -319,6 +319,57 @@ struct sort_entry sort_srcline = {
> .se_width_idx = HISTC_SRCLINE,
> };
>
> +/* --sort srcfile */
> +
> +static char no_srcfile[1];
> +
> +static char *get_srcfile(struct hist_entry *e)
> +{
> + char *sf, *p;
> + struct map *map = e->ms.map;
> +
> + sf = get_srcline(map->dso, map__rip_2objdump(map, e->ip),
> + e->ms.sym, true);
AFAIK get_srcline() can return a string literal SRCLINE_UNKNOWN. It
should not be freed or altered..
Thanks,
Namhyung
> + p = strchr(sf, ':');
> + if (p && *sf) {
> + *p = 0;
> + return sf;
> + }
> + free(sf);
> + return no_srcfile;
> +}
> +
> +static int64_t
> +sort__srcfile_cmp(struct hist_entry *left, struct hist_entry *right)
> +{
> + if (!left->srcfile) {
> + if (!left->ms.map)
> + left->srcfile = no_srcfile;
> + else
> + left->srcfile = get_srcfile(left);
> + }
> + if (!right->srcfile) {
> + if (!right->ms.map)
> + right->srcfile = no_srcfile;
> + else
> + right->srcfile = get_srcfile(right);
> + }
> + return strcmp(right->srcfile, left->srcfile);
> +}
> +
> +static int hist_entry__srcfile_snprintf(struct hist_entry *he, char *bf,
> + size_t size, unsigned int width)
> +{
> + return repsep_snprintf(bf, size, "%-*.*s", width, width, he->srcfile);
> +}
> +
> +struct sort_entry sort_srcfile = {
> + .se_header = "Source File",
> + .se_cmp = sort__srcfile_cmp,
> + .se_snprintf = hist_entry__srcfile_snprintf,
> + .se_width_idx = HISTC_SRCFILE,
> +};
> +
> /* --sort parent */
>
> static int64_t
> @@ -1196,6 +1247,7 @@ static struct sort_dimension common_sort_dimensions[] = {
> DIM(SORT_PARENT, "parent", sort_parent),
> DIM(SORT_CPU, "cpu", sort_cpu),
> DIM(SORT_SRCLINE, "srcline", sort_srcline),
> + DIM(SORT_SRCFILE, "srcfile", sort_srcfile),
> DIM(SORT_LOCAL_WEIGHT, "local_weight", sort_local_weight),
> DIM(SORT_GLOBAL_WEIGHT, "weight", sort_global_weight),
> DIM(SORT_TRANSACTION, "transaction", sort_transaction),
> diff --git a/tools/perf/util/sort.h b/tools/perf/util/sort.h
> index bc6c87a76d16..3c2a399f8f5b 100644
> --- a/tools/perf/util/sort.h
> +++ b/tools/perf/util/sort.h
> @@ -114,6 +114,7 @@ struct hist_entry {
> };
> };
> char *srcline;
> + char *srcfile;
> struct symbol *parent;
> struct rb_root sorted_chain;
> struct branch_info *branch_info;
> @@ -172,6 +173,7 @@ enum sort_type {
> SORT_PARENT,
> SORT_CPU,
> SORT_SRCLINE,
> + SORT_SRCFILE,
> SORT_LOCAL_WEIGHT,
> SORT_GLOBAL_WEIGHT,
> SORT_TRANSACTION,
> --
> 2.1.0
>
^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH 7/9] perf report: Add support for srcfile sort key
2015-08-11 2:31 ` Namhyung Kim
@ 2015-08-11 13:36 ` Andi Kleen
2015-08-13 8:04 ` [tip:perf/core] perf sort: Check for SRCLINE_UNKNOWN case in " srcfile" processing tip-bot for Andi Kleen
0 siblings, 1 reply; 45+ messages in thread
From: Andi Kleen @ 2015-08-11 13:36 UTC (permalink / raw)
To: Namhyung Kim
Cc: Arnaldo Carvalho de Melo, Ingo Molnar, linux-kernel, Jiri Olsa,
Arnaldo Carvalho de Melo
>
> AFAIK get_srcline() can return a string literal SRCLINE_UNKNOWN. It
> should not be freed or altered..
Good point. Here's a patch.
---
perf, tools: Check for SRCLINE_UNKNOWN case in srcline
Handle the SRCLINE_UNKNOWN case correctly when processing srcfile.
Pointed out by Namhyung.
Signed-off-by: Andi Kleen <ak@linux.intel.com>
diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c
index c0c32b0..7e38716 100644
--- a/tools/perf/util/sort.c
+++ b/tools/perf/util/sort.c
@@ -330,6 +330,8 @@ static char *get_srcfile(struct hist_entry *e)
sf = get_srcline(map->dso, map__rip_2objdump(map, e->ip),
e->ms.sym, true);
+ if (!strcmp(sf, SRCLINE_UNKNOWN))
+ return no_srcfile;
p = strchr(sf, ':');
if (p && *sf) {
*p = 0;
^ permalink raw reply related [flat|nested] 45+ messages in thread
* [tip:perf/core] perf sort: Check for SRCLINE_UNKNOWN case in " srcfile" processing
2015-08-11 13:36 ` Andi Kleen
@ 2015-08-13 8:04 ` tip-bot for Andi Kleen
0 siblings, 0 replies; 45+ messages in thread
From: tip-bot for Andi Kleen @ 2015-08-13 8:04 UTC (permalink / raw)
To: linux-tip-commits
Cc: acme, tglx, linux-kernel, ak, mingo, hpa, namhyung, jolsa
Commit-ID: 76b10655818c939e257377f83992975a5f55ffb3
Gitweb: http://git.kernel.org/tip/76b10655818c939e257377f83992975a5f55ffb3
Author: Andi Kleen <ak@linux.intel.com>
AuthorDate: Tue, 11 Aug 2015 06:36:55 -0700
Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Wed, 12 Aug 2015 10:27:02 -0300
perf sort: Check for SRCLINE_UNKNOWN case in "srcfile" processing
Handle the SRCLINE_UNKNOWN case correctly when processing "srcfile".
Commiter note:
We can't just free it, as it was't allocated via malloc, its a guard
variable.
Reported-by: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Andi Kleen <ak@linux.intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Link: http://lkml.kernel.org/r/20150811133655.GC4524@tassilo.jf.intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/sort.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c
index c0c32b0..7e38716 100644
--- a/tools/perf/util/sort.c
+++ b/tools/perf/util/sort.c
@@ -330,6 +330,8 @@ static char *get_srcfile(struct hist_entry *e)
sf = get_srcline(map->dso, map__rip_2objdump(map, e->ip),
e->ms.sym, true);
+ if (!strcmp(sf, SRCLINE_UNKNOWN))
+ return no_srcfile;
p = strchr(sf, ':');
if (p && *sf) {
*p = 0;
^ permalink raw reply related [flat|nested] 45+ messages in thread
* [PATCH 8/9] perf record: Support per-event freq term
2015-08-10 20:56 [GIT PULL 0/9] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (6 preceding siblings ...)
2015-08-10 20:56 ` [PATCH 7/9] perf report: Add support for srcfile " Arnaldo Carvalho de Melo
@ 2015-08-10 20:56 ` Arnaldo Carvalho de Melo
2015-08-10 20:56 ` [PATCH 9/9] perf evlist: Be more specific on -F/--freq Arnaldo Carvalho de Melo
2015-08-12 10:18 ` [GIT PULL 0/9] perf/core improvements and fixes Ingo Molnar
9 siblings, 0 replies; 45+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-08-10 20:56 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Namhyung Kim, David Ahern, Kan Liang,
Peter Zijlstra, Arnaldo Carvalho de Melo
From: Namhyung Kim <namhyung@kernel.org>
Now perf can set per-event value of time and (sampling) period. But I
guess most users like me just want to set frequency rather than period.
So add the 'freq' term in the event parser.
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Kan Liang <kan.liang@intel.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1439102724-14079-1-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/Documentation/perf-record.txt | 1 +
tools/perf/util/evsel.c | 4 ++++
tools/perf/util/evsel.h | 2 ++
tools/perf/util/parse-events.c | 6 ++++++
tools/perf/util/parse-events.h | 1 +
tools/perf/util/parse-events.l | 1 +
tools/perf/util/pmu.c | 2 +-
7 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/tools/perf/Documentation/perf-record.txt b/tools/perf/Documentation/perf-record.txt
index 0d852d1bc90f..afbe45ef7e3e 100644
--- a/tools/perf/Documentation/perf-record.txt
+++ b/tools/perf/Documentation/perf-record.txt
@@ -49,6 +49,7 @@ OPTIONS
These params can be used to overload default config values per event.
Here is a list of the params.
- 'period': Set event sampling period
+ - 'freq': Set event sampling frequency
- 'time': Disable/enable time stamping. Acceptable values are 1 for
enabling time stamping. 0 for disabling time stamping.
The default is 1.
diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
index a59710f88d8a..f664a22b5fea 100644
--- a/tools/perf/util/evsel.c
+++ b/tools/perf/util/evsel.c
@@ -600,6 +600,10 @@ static void apply_config_terms(struct perf_evsel *evsel)
attr->sample_period = term->val.period;
attr->freq = 0;
break;
+ case PERF_EVSEL__CONFIG_TERM_FREQ:
+ attr->sample_freq = term->val.freq;
+ attr->freq = 1;
+ break;
case PERF_EVSEL__CONFIG_TERM_TIME:
if (term->val.time)
perf_evsel__set_sample_bit(evsel, TIME);
diff --git a/tools/perf/util/evsel.h b/tools/perf/util/evsel.h
index b948f69d2558..fdf2674ab339 100644
--- a/tools/perf/util/evsel.h
+++ b/tools/perf/util/evsel.h
@@ -39,6 +39,7 @@ struct cgroup_sel;
*/
enum {
PERF_EVSEL__CONFIG_TERM_PERIOD,
+ PERF_EVSEL__CONFIG_TERM_FREQ,
PERF_EVSEL__CONFIG_TERM_TIME,
PERF_EVSEL__CONFIG_TERM_MAX,
};
@@ -48,6 +49,7 @@ struct perf_evsel_config_term {
int type;
union {
u64 period;
+ u64 freq;
bool time;
} val;
};
diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c
index 828936dc3f1e..dbf315df4220 100644
--- a/tools/perf/util/parse-events.c
+++ b/tools/perf/util/parse-events.c
@@ -597,6 +597,9 @@ do { \
case PARSE_EVENTS__TERM_TYPE_SAMPLE_PERIOD:
CHECK_TYPE_VAL(NUM);
break;
+ case PARSE_EVENTS__TERM_TYPE_SAMPLE_FREQ:
+ CHECK_TYPE_VAL(NUM);
+ break;
case PARSE_EVENTS__TERM_TYPE_BRANCH_SAMPLE_TYPE:
/*
* TODO uncomment when the field is available
@@ -659,6 +662,9 @@ do { \
case PARSE_EVENTS__TERM_TYPE_SAMPLE_PERIOD:
ADD_CONFIG_TERM(PERIOD, period, term->val.num);
break;
+ case PARSE_EVENTS__TERM_TYPE_SAMPLE_FREQ:
+ ADD_CONFIG_TERM(FREQ, freq, term->val.num);
+ break;
case PARSE_EVENTS__TERM_TYPE_TIME:
ADD_CONFIG_TERM(TIME, time, term->val.num);
break;
diff --git a/tools/perf/util/parse-events.h b/tools/perf/util/parse-events.h
index e6f9aacc1cce..ce2d13a16226 100644
--- a/tools/perf/util/parse-events.h
+++ b/tools/perf/util/parse-events.h
@@ -62,6 +62,7 @@ enum {
PARSE_EVENTS__TERM_TYPE_CONFIG2,
PARSE_EVENTS__TERM_TYPE_NAME,
PARSE_EVENTS__TERM_TYPE_SAMPLE_PERIOD,
+ PARSE_EVENTS__TERM_TYPE_SAMPLE_FREQ,
PARSE_EVENTS__TERM_TYPE_BRANCH_SAMPLE_TYPE,
PARSE_EVENTS__TERM_TYPE_TIME,
};
diff --git a/tools/perf/util/parse-events.l b/tools/perf/util/parse-events.l
index f5427505ae77..4306f5ad75c7 100644
--- a/tools/perf/util/parse-events.l
+++ b/tools/perf/util/parse-events.l
@@ -182,6 +182,7 @@ config1 { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_CONFIG1); }
config2 { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_CONFIG2); }
name { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_NAME); }
period { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_SAMPLE_PERIOD); }
+freq { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_SAMPLE_FREQ); }
branch_type { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_BRANCH_SAMPLE_TYPE); }
time { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_TIME); }
, { return ','; }
diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c
index d4b0e6454bc6..d85f11b8cacf 100644
--- a/tools/perf/util/pmu.c
+++ b/tools/perf/util/pmu.c
@@ -634,7 +634,7 @@ static char *formats_error_string(struct list_head *formats)
{
struct perf_pmu_format *format;
char *err, *str;
- static const char *static_terms = "config,config1,config2,name,period,branch_type,time\n";
+ static const char *static_terms = "config,config1,config2,name,period,freq,branch_type,time\n";
unsigned i = 0;
if (!asprintf(&str, "valid terms:"))
--
2.1.0
^ permalink raw reply related [flat|nested] 45+ messages in thread
* [PATCH 9/9] perf evlist: Be more specific on -F/--freq
2015-08-10 20:56 [GIT PULL 0/9] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (7 preceding siblings ...)
2015-08-10 20:56 ` [PATCH 8/9] perf record: Support per-event freq term Arnaldo Carvalho de Melo
@ 2015-08-10 20:56 ` Arnaldo Carvalho de Melo
2015-08-12 10:18 ` [GIT PULL 0/9] perf/core improvements and fixes Ingo Molnar
9 siblings, 0 replies; 45+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-08-10 20:56 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Namhyung Kim, David Ahern, Peter Zijlstra,
Arnaldo Carvalho de Melo
From: Namhyung Kim <namhyung@kernel.org>
Currently perf evlist -F shows the number as if it's always sampling
frequency. But we now support per-event freq/period settings. So it'd
better to show more detailed info whether it's freq or period.
$ perf record -e 'cpu/config=1/,cpu/config=2,period=300000/' sleep 1
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.017 MB perf.data ]
$ perf evlist -F
cpu/config=1/: sample_freq=4000
cpu/config=2,period=300000/: sample_period=300000
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1439102724-14079-2-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/evsel.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
index f664a22b5fea..04fddddc6b6f 100644
--- a/tools/perf/util/evsel.c
+++ b/tools/perf/util/evsel.c
@@ -2158,8 +2158,13 @@ int perf_evsel__fprintf(struct perf_evsel *evsel,
printed += perf_event_attr__fprintf(fp, &evsel->attr,
__print_attr__fprintf, &first);
} else if (details->freq) {
- printed += comma_fprintf(fp, &first, " sample_freq=%" PRIu64,
- (u64)evsel->attr.sample_freq);
+ const char *term = "sample_freq";
+
+ if (!evsel->attr.freq)
+ term = "sample_period";
+
+ printed += comma_fprintf(fp, &first, " %s=%" PRIu64,
+ term, (u64)evsel->attr.sample_freq);
}
out:
fputc('\n', fp);
--
2.1.0
^ permalink raw reply related [flat|nested] 45+ messages in thread
* Re: [GIT PULL 0/9] perf/core improvements and fixes
2015-08-10 20:56 [GIT PULL 0/9] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (8 preceding siblings ...)
2015-08-10 20:56 ` [PATCH 9/9] perf evlist: Be more specific on -F/--freq Arnaldo Carvalho de Melo
@ 2015-08-12 10:18 ` Ingo Molnar
9 siblings, 0 replies; 45+ messages in thread
From: Ingo Molnar @ 2015-08-12 10:18 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Adrian Hunter, Andi Kleen, Borislav Petkov,
David Ahern, Frederic Weisbecker, Jiri Olsa, Kan Liang,
Namhyung Kim, Peter Zijlstra, Stephane Eranian,
Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Hi Ingo,
>
> Please consider pulling,
>
> - Arnaldo
>
> The following changes since commit f1d800bf615b84ca253af372d2dac8cdef743a20:
>
> Merge tag 'perf-ebpf-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-08-08 10:05:17 +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 4605bb55b91449a1a953a51f0334d3bc02351adb:
>
> perf evlist: Be more specific on -F/--freq (2015-08-10 17:20:26 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> User visible:
>
> - Introduce 'srcfile' sort key: (Andi Kleen)
>
> # perf record -F 10000 usleep 1
> # perf report --stdio --dsos '[kernel.vmlinux]' -s srcfile
> <SNIP>
> # Overhead Source File
> 26.49% copy_page_64.S
> 5.49% signal.c
> 0.51% msr.h
> #
>
> It can be combined with other fields, for instance, experiment with
> '-s srcfile,symbol'.
>
> There are some oddities in some distros and with some specific DSOs, being
> investigated, so your mileage may vary.
>
> - Update the column width for the "srcline" sort key (Arnaldo Carvalho de Melo)
>
> - Support per-event 'freq' term: (Namhyung Kim)
>
> $ perf record -e 'cpu/instructions,freq=1234/',cycles -c 1000 sleep 1
> $ perf evlist -F
> cpu/instructions,freq=1234/: sample_freq=1234
> cycles: sample_period=1000
> $
>
> Infrastructure:
>
> - Move perf_counts struct and functions into separate object (Jiri Olsa)
>
> - Unset perf_event_attr::freq when period term is set (Jiri Olsa)
>
> - Move callchain option parsing code to util.c (Kan Liang)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Andi Kleen (2):
> perf tools: Support full source file paths for srcline
> perf report: Add support for srcfile sort key
>
> Arnaldo Carvalho de Melo (2):
> perf hists: hist_entry__cmp() may use he_tmp.hists, initialize it
> perf hists: Update the column width for the "srcline" sort key
>
> Jiri Olsa (2):
> perf stat: Move perf_counts struct and functions into separate object
> perf tools: Unset perf_event_attr::freq when period term is set
>
> Kan Liang (1):
> perf callchain: Move option parsing code to util.c
>
> Namhyung Kim (2):
> perf record: Support per-event freq term
> perf evlist: Be more specific on -F/--freq
>
> tools/perf/Documentation/perf-record.txt | 1 +
> tools/perf/Documentation/perf-report.txt | 4 ++
> tools/perf/Documentation/perf-script.txt | 3 ++
> tools/perf/builtin-report.c | 2 +
> tools/perf/builtin-script.c | 2 +
> tools/perf/builtin-stat.c | 1 +
> tools/perf/util/Build | 1 +
> tools/perf/util/callchain.c | 89 +------------------------------
> tools/perf/util/callchain.h | 1 +
> tools/perf/util/counts.c | 52 ++++++++++++++++++
> tools/perf/util/counts.h | 37 +++++++++++++
> tools/perf/util/evsel.c | 14 ++++-
> tools/perf/util/evsel.h | 4 +-
> tools/perf/util/hist.c | 9 ++++
> tools/perf/util/hist.h | 1 +
> tools/perf/util/parse-events.c | 6 +++
> tools/perf/util/parse-events.h | 1 +
> tools/perf/util/parse-events.l | 1 +
> tools/perf/util/pmu.c | 2 +-
> tools/perf/util/python-ext-sources | 2 +-
> tools/perf/util/sort.c | 52 ++++++++++++++++++
> tools/perf/util/sort.h | 2 +
> tools/perf/util/srcline.c | 6 ++-
> tools/perf/util/stat.c | 49 -----------------
> tools/perf/util/stat.h | 30 -----------
> tools/perf/util/util.c | 90 ++++++++++++++++++++++++++++++++
> tools/perf/util/util.h | 3 ++
> 27 files changed, 292 insertions(+), 173 deletions(-)
> create mode 100644 tools/perf/util/counts.c
> create mode 100644 tools/perf/util/counts.h
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 45+ messages in thread
* [GIT PULL 0/9] perf/core improvements and fixes
@ 2017-04-01 2:10 Arnaldo Carvalho de Melo
2017-04-01 10:44 ` Ingo Molnar
0 siblings, 1 reply; 45+ messages in thread
From: Arnaldo Carvalho de Melo @ 2017-04-01 2:10 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Alexander Shishkin, Alexis Berlemont, Al Viro, Colin King,
David Ahern, David Howells, Hemant Kumar, Jan Stancek, Jiri Olsa,
Kan Liang, kernel-janitors, Krister Johansen,
Luis Claudio Gonçalves, Masami Hiramatsu, Michael Ellerman,
Namhyung Kim, Naveen N . Rao, Peter Zijlstra, Ravi Bangoria,
Wang Nan, Yao Jin, 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 3906a13a6b4e78fbc0def03a808f091f0dff1b44:
Merge tag 'perf-core-for-mingo-4.12-20170327' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2017-03-28 07:44:43 +0200)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-4.12-20170331
for you to fetch changes up to fd5cead23f54697310bd565aa2a23ae5128080a0:
perf trace: Beautify statx syscall 'flag' and 'mask' arguments (2017-03-31 14:42:31 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
New features:
- Beautify the statx syscall arguments in 'perf trace' (Arnaldo Carvalho de Melo)
e.g.:
System wide strace like session:
# trace -e statx
16612.967 ( 0.028 ms): statx/4562 statx(dfd: CWD, filename: /tmp/statx, flags: SYMLINK_NOFOLLOW, mask: TYPE|MODE|NLINK|UID|GID|ATIME|MTIME|CTIME|INO|SIZE|BLOCKS|BTIME, buffer: 0x7ffef195d660) = 0
36050.891 ( 0.007 ms): statx/4576 statx(dfd: CWD, filename: /etc/passwd, flags: SYMLINK_NOFOLLOW|STATX_DONT_SYNC, mask: BTIME, buffer: 0x7ffda9bf50f0) = 0
^C#
User visible:
- Handle unpaired raw_syscalls:sys_exit events in 'perf trace', i.e. we
shouldn't try to calculate duration or print the timestamp for a missing
matching raw_syscalls:sys_enter (Arnaldo Carvalho de Melo)
- Do not print "cycles: 0" in perf report LBR lines in platforms not
supporting 'cycles', such as Intel's Broadwell (Jin Yao)
- Handle missing $HOME env var (Jiri Olsa)
- Map 8-bit registers (al, bl, etc), not supported in uprobes_events, to
the next best thing (ax, bx, etc) supported (Ravi Bangoria)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Arnaldo Carvalho de Melo (4):
perf tools: Remove support for command aliases
perf trace: Handle unpaired raw_syscalls:sys_exit event
tools include uapi: Grab copies of stat.h and fcntl.h
perf trace: Beautify statx syscall 'flag' and 'mask' arguments
Colin Ian King (1):
perf utils: Fix spelling mistake: "Invalud" -> "Invalid"
Jin Yao (1):
perf report: Drop cycles 0 for LBR print
Jiri Olsa (1):
perf tools: Do not fail in case of empty HOME env variable
Ravi Bangoria (2):
perf/sdt/x86: Add renaming logic for (missing) 8 bit registers
perf/sdt/x86: Move OP parser to tools/perf/arch/x86/
tools/include/linux/types.h | 1 +
tools/include/uapi/linux/fcntl.h | 72 +++++++++
tools/include/uapi/linux/stat.h | 176 ++++++++++++++++++++
tools/perf/Build | 1 +
tools/perf/MANIFEST | 2 +
tools/perf/arch/x86/entry/syscalls/syscall_64.tbl | 1 +
tools/perf/arch/x86/util/perf_regs.c | 187 ++++++++++++++++++----
tools/perf/builtin-help.c | 13 --
tools/perf/builtin-trace.c | 57 ++++---
tools/perf/check-headers.sh | 2 +
tools/perf/perf.c | 97 +----------
tools/perf/trace/beauty/Build | 1 +
tools/perf/trace/beauty/beauty.h | 24 +++
tools/perf/trace/beauty/statx.c | 72 +++++++++
tools/perf/util/Build | 1 -
tools/perf/util/alias.c | 78 ---------
tools/perf/util/cache.h | 1 -
tools/perf/util/callchain.c | 111 ++++++++-----
tools/perf/util/config.c | 54 ++++---
tools/perf/util/help-unknown-cmd.c | 8 +-
tools/perf/util/hist.c | 2 +-
tools/perf/util/perf_regs.c | 6 +-
tools/perf/util/perf_regs.h | 11 +-
tools/perf/util/probe-file.c | 132 +++++----------
24 files changed, 707 insertions(+), 403 deletions(-)
create mode 100644 tools/include/uapi/linux/fcntl.h
create mode 100644 tools/include/uapi/linux/stat.h
create mode 100644 tools/perf/trace/beauty/Build
create mode 100644 tools/perf/trace/beauty/beauty.h
create mode 100644 tools/perf/trace/beauty/statx.c
delete mode 100644 tools/perf/util/alias.c
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.
For this specific pull request the samples/bpf/ was disabled, as 'make headers_install'
is failing with the following error, in this case in fedora:rawhide:
INSTALL usr/include/uapi/ (0 file)
/git/linux/scripts/Makefile.headersinst:62: *** Missing generated UAPI file ./arch/x86/include/generated/uapi/asm/unistd_32.h. Stop.
make[1]: *** [/git/linux/Makefile:1151: headers_install] Error 2
make[1]: Leaving directory '/tmp/build/linux'
make: *** [Makefile:152: sub-make] Error 2
make: Leaving directory '/git/linux'
I'll investigate later, perf and objtool builds just fine, with clang and gcc.
Several are cross builds, the ones with -x-ARCH, and the android one, and those
may not have all the features built, due to lack of multi-arch devel packages,
available and being used so far on just a few, like
debian:experimental-x-{arm64,mipsel}.
The 'perf test' one will perform a variety of tests exercising
tools/perf/util/, tools/lib/{bpf,traceevent,etc}, as well as run perf commands
with a variety of command line event specifications to then intercept the
sys_perf_event syscall to check that the perf_event_attr fields are set up as
expected, among a variety of other unit tests.
Then there is the 'make -C tools/perf build-test' ones, that build tools/perf/
with a variety of feature sets, exercising the build with an incomplete set of
features as well as with a complete one. It is planned to have it run on each
of the containers mentioned above, using some container orchestration
infrastructure. Get in contact if interested in helping having this in place.
# dm
1 alpine:3.4: Ok
2 alpine:3.5: Ok
3 alpine:edge: Ok
4 android-ndk:r12b-arm: Ok
5 archlinux:latest: Ok
6 centos:5: Ok
7 centos:6: Ok
8 centos:7: Ok
9 debian:7: Ok
10 debian:8: Ok
11 debian:9: Ok
12 debian:experimental: Ok
13 debian:experimental-x-arm64: Ok
14 debian:experimental-x-mips: Ok
15 debian:experimental-x-mips64: Ok
16 debian:experimental-x-mipsel: Ok
17 fedora:20: Ok
18 fedora:21: Ok
19 fedora:22: Ok
20 fedora:23: Ok
21 fedora:24: Ok
22 fedora:24-x-ARC-uClibc: Ok
23 fedora:25: Ok
24 fedora:rawhide: Ok
25 mageia:5: Ok
26 opensuse:13.2: Ok
27 opensuse:42.1: Ok
28 opensuse:tumbleweed: Ok
29 ubuntu:12.04.5: Ok
30 ubuntu:14.04.4: Ok
31 ubuntu:14.04.4-x-linaro-arm64: Ok
32 ubuntu:15.10: Ok
33 ubuntu:16.04: Ok
34 ubuntu:16.04-x-arm: Ok
35 ubuntu:16.04-x-arm64: Ok
36 ubuntu:16.04-x-powerpc: Ok
37 ubuntu:16.04-x-powerpc64: Ok
38 ubuntu:16.04-x-s390: Ok
39 ubuntu:16.10: Ok
40 ubuntu:17.04: Ok
#
# uname -a
Linux jouet 4.11.0-rc2+ #5 SMP Mon Mar 20 18:12:29 -03 2017 x86_64 x86_64 x86_64 GNU/Linux
# 'perf test tsc' already fixed by peterz in tip
# 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 : FAILED!
57: DWARF unwind : Ok
58: x86 instruction decoder - new instructions : Ok
59: Intel cqm nmi context read : Skip
$ make -C tools/perf build-test
make_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_no_gtk2_O: make NO_GTK2=1
make_no_newt_O: make NO_NEWT=1
make_debug_O: make DEBUG=1
make_no_backtrace_O: make NO_BACKTRACE=1
make_with_clangllvm_O: make LIBCLANGLLVM=1
make_tags_O: make tags
make_no_demangle_O: make NO_DEMANGLE=1
make_install_bin_O: make install-bin
make_no_libpython_O: make NO_LIBPYTHON=1
make_no_slang_O: make NO_SLANG=1
make_no_auxtrace_O: make NO_AUXTRACE=1
make_util_pmu_bison_o_O: make util/pmu-bison.o
make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1
make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1
make_no_libbpf_O: make NO_LIBBPF=1
make_with_babeltrace_O: make LIBBABELTRACE=1
make_util_map_o_O: make util/map.o
make_static_O: make LDFLAGS=-static
make_help_O: make help
make_pure_O: make
make_perf_o_O: make perf.o
make_no_libnuma_O: make NO_LIBNUMA=1
make_no_libperl_O: make NO_LIBPERL=1
make_no_libunwind_O: make NO_LIBUNWIND=1
make_no_libbionic_O: make NO_LIBBIONIC=1
make_doc_O: make doc
make_no_libelf_O: make NO_LIBELF=1
make_clean_all_O: make clean all
make_install_prefix_O: make install prefix=/tmp/krava
make_no_libaudit_O: make NO_LIBAUDIT=1
make_install_O: make install
make_install_prefix_slash_O: make install prefix=/tmp/krava/
OK
make: Leaving directory '/home/acme/git/linux/tools/perf'
$
^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [GIT PULL 0/9] perf/core improvements and fixes
2017-04-01 2:10 Arnaldo Carvalho de Melo
@ 2017-04-01 10:44 ` Ingo Molnar
0 siblings, 0 replies; 45+ messages in thread
From: Ingo Molnar @ 2017-04-01 10:44 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Adrian Hunter, Alexander Shishkin,
Alexis Berlemont, Al Viro, Colin King, David Ahern,
David Howells, Hemant Kumar, Jan Stancek, Jiri Olsa, Kan Liang,
kernel-janitors, Krister Johansen, Luis Claudio Gonçalves,
Masami Hiramatsu, Michael Ellerman, Namhyung Kim, Naveen N . Rao,
Peter Zijlstra, Ravi Bangoria, Wang Nan, Yao Jin,
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 3906a13a6b4e78fbc0def03a808f091f0dff1b44:
>
> Merge tag 'perf-core-for-mingo-4.12-20170327' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2017-03-28 07:44:43 +0200)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-4.12-20170331
>
> for you to fetch changes up to fd5cead23f54697310bd565aa2a23ae5128080a0:
>
> perf trace: Beautify statx syscall 'flag' and 'mask' arguments (2017-03-31 14:42:31 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> New features:
>
> - Beautify the statx syscall arguments in 'perf trace' (Arnaldo Carvalho de Melo)
>
> e.g.:
>
> System wide strace like session:
>
> # trace -e statx
> 16612.967 ( 0.028 ms): statx/4562 statx(dfd: CWD, filename: /tmp/statx, flags: SYMLINK_NOFOLLOW, mask: TYPE|MODE|NLINK|UID|GID|ATIME|MTIME|CTIME|INO|SIZE|BLOCKS|BTIME, buffer: 0x7ffef195d660) = 0
> 36050.891 ( 0.007 ms): statx/4576 statx(dfd: CWD, filename: /etc/passwd, flags: SYMLINK_NOFOLLOW|STATX_DONT_SYNC, mask: BTIME, buffer: 0x7ffda9bf50f0) = 0
> ^C#
>
> User visible:
>
> - Handle unpaired raw_syscalls:sys_exit events in 'perf trace', i.e. we
> shouldn't try to calculate duration or print the timestamp for a missing
> matching raw_syscalls:sys_enter (Arnaldo Carvalho de Melo)
>
> - Do not print "cycles: 0" in perf report LBR lines in platforms not
> supporting 'cycles', such as Intel's Broadwell (Jin Yao)
>
> - Handle missing $HOME env var (Jiri Olsa)
>
> - Map 8-bit registers (al, bl, etc), not supported in uprobes_events, to
> the next best thing (ax, bx, etc) supported (Ravi Bangoria)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (4):
> perf tools: Remove support for command aliases
> perf trace: Handle unpaired raw_syscalls:sys_exit event
> tools include uapi: Grab copies of stat.h and fcntl.h
> perf trace: Beautify statx syscall 'flag' and 'mask' arguments
>
> Colin Ian King (1):
> perf utils: Fix spelling mistake: "Invalud" -> "Invalid"
>
> Jin Yao (1):
> perf report: Drop cycles 0 for LBR print
>
> Jiri Olsa (1):
> perf tools: Do not fail in case of empty HOME env variable
>
> Ravi Bangoria (2):
> perf/sdt/x86: Add renaming logic for (missing) 8 bit registers
> perf/sdt/x86: Move OP parser to tools/perf/arch/x86/
>
> tools/include/linux/types.h | 1 +
> tools/include/uapi/linux/fcntl.h | 72 +++++++++
> tools/include/uapi/linux/stat.h | 176 ++++++++++++++++++++
> tools/perf/Build | 1 +
> tools/perf/MANIFEST | 2 +
> tools/perf/arch/x86/entry/syscalls/syscall_64.tbl | 1 +
> tools/perf/arch/x86/util/perf_regs.c | 187 ++++++++++++++++++----
> tools/perf/builtin-help.c | 13 --
> tools/perf/builtin-trace.c | 57 ++++---
> tools/perf/check-headers.sh | 2 +
> tools/perf/perf.c | 97 +----------
> tools/perf/trace/beauty/Build | 1 +
> tools/perf/trace/beauty/beauty.h | 24 +++
> tools/perf/trace/beauty/statx.c | 72 +++++++++
> tools/perf/util/Build | 1 -
> tools/perf/util/alias.c | 78 ---------
> tools/perf/util/cache.h | 1 -
> tools/perf/util/callchain.c | 111 ++++++++-----
> tools/perf/util/config.c | 54 ++++---
> tools/perf/util/help-unknown-cmd.c | 8 +-
> tools/perf/util/hist.c | 2 +-
> tools/perf/util/perf_regs.c | 6 +-
> tools/perf/util/perf_regs.h | 11 +-
> tools/perf/util/probe-file.c | 132 +++++----------
> 24 files changed, 707 insertions(+), 403 deletions(-)
> create mode 100644 tools/include/uapi/linux/fcntl.h
> create mode 100644 tools/include/uapi/linux/stat.h
> create mode 100644 tools/perf/trace/beauty/Build
> create mode 100644 tools/perf/trace/beauty/beauty.h
> create mode 100644 tools/perf/trace/beauty/statx.c
> delete mode 100644 tools/perf/util/alias.c
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 45+ messages in thread
* [GIT PULL 0/9] perf/core improvements and fixes
@ 2015-12-11 14:22 Arnaldo Carvalho de Melo
2015-12-14 8:32 ` Ingo Molnar
0 siblings, 1 reply; 45+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-12-11 14:22 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Alexei Starovoitov, Brendan Gregg, David Ahern, David S . Miller,
Jiri Olsa, Masami Hiramatsu, Namhyung Kim, Peter Zijlstra,
pi3orama, Wang Nan, Zefan Li, Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling,
- Arnaldo
The following changes since commit e7a7865cc0da306542db0b9205cb0a467f59e33d:
perf symbols: Fix dso__load_sym to put dso (2015-12-10 16:29:32 -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
for you to fetch changes up to 93b0ba3c60da89043ce2b9f601cd2b3da408903b:
perf tools: Clear struct machine during machine__init() (2015-12-11 09:32:41 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
User visible:
- Fix 'perf top' annotation in --stdio (Namhyung Kim)
- Support hw breakpoint events (mem:0xAddress) in the default output mode in
'perf script' (Wang Nan)
Infrastructure:
- Do not hold the hists lock while emitting one specific warning (Namhyung Kim)
- Fetch map names from correct strtab, worked so far because llvm/clang
uses just one string table (Wang Nan)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Namhyung Kim (4):
perf top: Do not convert address for perf_top__record_precise_ip()
perf top: Access hists->lock only if needed
perf top: Fix annotation on --stdio
perf top: Cleanup condition in perf_top__record_precise_ip()
Wang Nan (5):
tools lib bpf: Check return value of strdup when reading map names
tools lib bpf: Fetch map names from correct strtab
perf data: Add u32_hex data type
perf script: Add support for PERF_TYPE_BREAKPOINT
perf tools: Clear struct machine during machine__init()
tools/lib/bpf/libbpf.c | 24 +++++++++++++-----
tools/perf/builtin-script.c | 14 +++++++++++
tools/perf/builtin-top.c | 52 +++++++++++++++++----------------------
tools/perf/util/data-convert-bt.c | 2 ++
tools/perf/util/machine.c | 1 +
5 files changed, 57 insertions(+), 36 deletions(-)
^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [GIT PULL 0/9] perf/core improvements and fixes
2015-12-11 14:22 Arnaldo Carvalho de Melo
@ 2015-12-14 8:32 ` Ingo Molnar
0 siblings, 0 replies; 45+ messages in thread
From: Ingo Molnar @ 2015-12-14 8:32 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Adrian Hunter, Alexei Starovoitov, Brendan Gregg,
David Ahern, David S . Miller, Jiri Olsa, Masami Hiramatsu,
Namhyung Kim, Peter Zijlstra, pi3orama, Wang Nan, Zefan Li,
Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Hi Ingo,
>
> Please consider pulling,
>
> - Arnaldo
>
> The following changes since commit e7a7865cc0da306542db0b9205cb0a467f59e33d:
>
> perf symbols: Fix dso__load_sym to put dso (2015-12-10 16:29:32 -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
>
> for you to fetch changes up to 93b0ba3c60da89043ce2b9f601cd2b3da408903b:
>
> perf tools: Clear struct machine during machine__init() (2015-12-11 09:32:41 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> User visible:
>
> - Fix 'perf top' annotation in --stdio (Namhyung Kim)
>
> - Support hw breakpoint events (mem:0xAddress) in the default output mode in
> 'perf script' (Wang Nan)
>
> Infrastructure:
>
> - Do not hold the hists lock while emitting one specific warning (Namhyung Kim)
>
> - Fetch map names from correct strtab, worked so far because llvm/clang
> uses just one string table (Wang Nan)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Namhyung Kim (4):
> perf top: Do not convert address for perf_top__record_precise_ip()
> perf top: Access hists->lock only if needed
> perf top: Fix annotation on --stdio
> perf top: Cleanup condition in perf_top__record_precise_ip()
>
> Wang Nan (5):
> tools lib bpf: Check return value of strdup when reading map names
> tools lib bpf: Fetch map names from correct strtab
> perf data: Add u32_hex data type
> perf script: Add support for PERF_TYPE_BREAKPOINT
> perf tools: Clear struct machine during machine__init()
>
> tools/lib/bpf/libbpf.c | 24 +++++++++++++-----
> tools/perf/builtin-script.c | 14 +++++++++++
> tools/perf/builtin-top.c | 52 +++++++++++++++++----------------------
> tools/perf/util/data-convert-bt.c | 2 ++
> tools/perf/util/machine.c | 1 +
> 5 files changed, 57 insertions(+), 36 deletions(-)
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 45+ messages in thread
* [GIT PULL 0/9] perf/core improvements and fixes
@ 2015-09-23 1:57 Arnaldo Carvalho de Melo
2015-09-23 7:45 ` Ingo Molnar
0 siblings, 1 reply; 45+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-09-23 1:57 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Alexei Starovoitov, Borislav Petkov, Brendan Gregg,
Daniel Borkmann, David Ahern, Frederic Weisbecker, He Kuang,
H . Peter Anvin, Jiri Olsa, Kaixu Xia, Masami Hiramatsu,
Matt Fleming, Milian Wolff, Namhyung Kim, Paul Mackerras,
Peter Zijlstra, pi3orama, Raphael Beamonte, Stephane Eranian,
Steven Rostedt, Thomas Gleixner, Vinson Lee, Wang Nan, Zefan Li,
Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling,
- Arnaldo
The following changes since commit 96f3eda67fcf2598e9d2794398e0e7ab35138ea6:
perf/x86/intel: Fix static checker warning in lbr enable (2015-09-18 09:24:57 +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 e803cf97a4f90d31bcc2c9a1ea20fe9cdc12b2f9:
perf record: Synthesize COMM event for a command line workload (2015-09-22 22:43:12 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
User visible:
- Fix a segfault in 'perf probe' when removing uprobe events (Masami Hiramatsu)
- Synthesize COMM event for workloads started from the command line in 'perf
record' so that we can have the pid->comm mapping before we get the real
PERF_RECORD_COMM switching from perf to the workload (Namhyung Kim)
- Fix build tools/vm/ due to removal of tools/lib/api/fs/debugfs.h
(Arnaldo Carvalho de Melo)
Developer stuff:
- Fix the make tarball targets by including the recently added err.h header in
the perf MANIFEST file (Jiri Olsa)
- Don't assume that the event parser returns a non empty evlist (Wang Nan)
- Add way to disambiguate feature detection state files, needed to use
tools/build feature detection for multiple components in a single O= output
dir, which will be the case with tools/perf/ and tools/lib/bpf/
(Arnaldo Carvalho de Melo)
- Fixup FEATURE_{TESTS,DISPLAY} inversion in tools/lib/bpf/ (Arnaldo Carvalho de Melo)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Arnaldo Carvalho de Melo (5):
tools build: Fixup feature detection display function name
tools lib bpf: Fix up FEATURE_{TESTS,DISPLAY} usage
tools build: Allow setting the feature detection user
tools lib bpf: Use FEATURE_USER to allow building in the same dir as perf
tools vm: Fix build due to removal of tools/lib/api/fs/debugfs.h
Jiri Olsa (1):
perf tools: Add include/err.h into MANIFEST
Masami Hiramatsu (1):
perf probe: Fix a segfault when removing uprobe events
Namhyung Kim (1):
perf record: Synthesize COMM event for a command line workload
Wang Nan (1):
perf tools: Don't assume that the parser returns non empty evsel list
tools/build/Makefile.feature | 9 +++++----
tools/lib/bpf/Makefile | 5 +++--
tools/perf/MANIFEST | 1 +
tools/perf/builtin-probe.c | 7 +++++--
tools/perf/builtin-record.c | 15 ++++++++++++++-
tools/perf/util/event.c | 2 +-
tools/perf/util/event.h | 5 +++++
tools/perf/util/parse-events.c | 16 ++++++++++++++++
tools/vm/page-types.c | 6 +++---
9 files changed, 53 insertions(+), 13 deletions(-)
^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [GIT PULL 0/9] perf/core improvements and fixes
2015-09-23 1:57 Arnaldo Carvalho de Melo
@ 2015-09-23 7:45 ` Ingo Molnar
0 siblings, 0 replies; 45+ messages in thread
From: Ingo Molnar @ 2015-09-23 7:45 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Adrian Hunter, Alexei Starovoitov, Borislav Petkov,
Brendan Gregg, Daniel Borkmann, David Ahern, Frederic Weisbecker,
He Kuang, H . Peter Anvin, Jiri Olsa, Kaixu Xia,
Masami Hiramatsu, Matt Fleming, Milian Wolff, Namhyung Kim,
Paul Mackerras, Peter Zijlstra, pi3orama, Raphael Beamonte,
Stephane Eranian, Steven Rostedt, Thomas Gleixner, Vinson Lee,
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 96f3eda67fcf2598e9d2794398e0e7ab35138ea6:
>
> perf/x86/intel: Fix static checker warning in lbr enable (2015-09-18 09:24:57 +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 e803cf97a4f90d31bcc2c9a1ea20fe9cdc12b2f9:
>
> perf record: Synthesize COMM event for a command line workload (2015-09-22 22:43:12 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> User visible:
>
> - Fix a segfault in 'perf probe' when removing uprobe events (Masami Hiramatsu)
>
> - Synthesize COMM event for workloads started from the command line in 'perf
> record' so that we can have the pid->comm mapping before we get the real
> PERF_RECORD_COMM switching from perf to the workload (Namhyung Kim)
>
> - Fix build tools/vm/ due to removal of tools/lib/api/fs/debugfs.h
> (Arnaldo Carvalho de Melo)
>
> Developer stuff:
>
> - Fix the make tarball targets by including the recently added err.h header in
> the perf MANIFEST file (Jiri Olsa)
>
> - Don't assume that the event parser returns a non empty evlist (Wang Nan)
>
> - Add way to disambiguate feature detection state files, needed to use
> tools/build feature detection for multiple components in a single O= output
> dir, which will be the case with tools/perf/ and tools/lib/bpf/
> (Arnaldo Carvalho de Melo)
>
> - Fixup FEATURE_{TESTS,DISPLAY} inversion in tools/lib/bpf/ (Arnaldo Carvalho de Melo)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (5):
> tools build: Fixup feature detection display function name
> tools lib bpf: Fix up FEATURE_{TESTS,DISPLAY} usage
> tools build: Allow setting the feature detection user
> tools lib bpf: Use FEATURE_USER to allow building in the same dir as perf
> tools vm: Fix build due to removal of tools/lib/api/fs/debugfs.h
>
> Jiri Olsa (1):
> perf tools: Add include/err.h into MANIFEST
>
> Masami Hiramatsu (1):
> perf probe: Fix a segfault when removing uprobe events
>
> Namhyung Kim (1):
> perf record: Synthesize COMM event for a command line workload
>
> Wang Nan (1):
> perf tools: Don't assume that the parser returns non empty evsel list
>
> tools/build/Makefile.feature | 9 +++++----
> tools/lib/bpf/Makefile | 5 +++--
> tools/perf/MANIFEST | 1 +
> tools/perf/builtin-probe.c | 7 +++++--
> tools/perf/builtin-record.c | 15 ++++++++++++++-
> tools/perf/util/event.c | 2 +-
> tools/perf/util/event.h | 5 +++++
> tools/perf/util/parse-events.c | 16 ++++++++++++++++
> tools/vm/page-types.c | 6 +++---
> 9 files changed, 53 insertions(+), 13 deletions(-)
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 45+ messages in thread
* [GIT PULL 0/9] perf/core improvements and fixes
@ 2015-08-21 16:10 Arnaldo Carvalho de Melo
2015-08-22 6:47 ` Ingo Molnar
0 siblings, 1 reply; 45+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-08-21 16:10 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Alexei Starovoitov, Borislav Petkov, Brendan Gregg,
Daniel Borkmann, David Ahern, Dean Nelson, Frederic Weisbecker,
He Kuang, Jiri Olsa, Kaixu Xia, Li Zhang, Masami Hiramatsu,
Namhyung Kim, 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 82819ffb42fb45197bacf3223191deca31d3eb91:
perf/x86/msr: Fix the MSR driver build (2015-08-21 08:17:01 +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 1c0bd0e891aaed0219010bfe79b32e1b0b82d662:
perf probe: Try to use symbol table if searching debug info failed (2015-08-21 12:57:20 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
User visible:
- Fix segfault using 'perf script --show-mmap-events', affects
only current perf/core (Adrian Hunter).
- /proc/kcore requires CAP_SYS_RAWIO message too noisy, make it
debug only (Adrian Hunter)
- Fix Intel PT timestamp handling (Adrian Hunter)
- Add Intel BTS support, with a call-graph script to show it and
PT in use in a GUI using 'perf script' python scripting with
postgresql and Qt (Adrian Hunter)
- Add checks for returned EVENT_ERROR type in libtraceevent, fixing
a bug that surfaced on arm64 systems (Dean Nelson)
- Fallback to using kallsyms when libdw fails to handle a vmlinux file,
that can happen, for instance, when perf is statically linked and
then libdw fails to load libebl_{arch}.so (Wang Nan)
Infrastructure:
- Initialize reference counts in map__clone() (Arnaldo Carvalho de Melo)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Adrian Hunter (6):
perf script: Fix segfault using --show-mmap-events
perf tools: /proc/kcore requires CAP_SYS_RAWIO message too noisy
perf tools: Fix Intel PT timestamp handling
perf tools: Add Intel BTS support
perf tools: Put itrace options into an asciidoc include
perf tools: Add example call-graph script
Arnaldo Carvalho de Melo (1):
perf tools: Initialize reference counts in map__clone()
Dean Nelson (1):
tools lib traceevent: Add checks for returned EVENT_ERROR type
Wang Nan (1):
perf probe: Try to use symbol table if searching debug info failed
tools/lib/traceevent/event-parse.c | 9 +
tools/perf/Documentation/intel-bts.txt | 86 ++
tools/perf/Documentation/itrace.txt | 22 +
tools/perf/Documentation/perf-inject.txt | 23 +-
tools/perf/Documentation/perf-report.txt | 23 +-
tools/perf/Documentation/perf-script.txt | 23 +-
tools/perf/arch/x86/util/Build | 1 +
tools/perf/arch/x86/util/auxtrace.c | 49 +-
tools/perf/arch/x86/util/intel-bts.c | 458 ++++++++++
tools/perf/arch/x86/util/pmu.c | 3 +
.../scripts/python/call-graph-from-postgresql.py | 327 ++++++++
tools/perf/scripts/python/export-to-postgresql.py | 47 ++
tools/perf/util/Build | 1 +
tools/perf/util/annotate.c | 1 +
tools/perf/util/auxtrace.c | 3 +
tools/perf/util/auxtrace.h | 1 +
tools/perf/util/evlist.c | 2 +-
tools/perf/util/intel-bts.c | 933 +++++++++++++++++++++
tools/perf/util/intel-bts.h | 43 +
tools/perf/util/intel-pt.c | 2 +-
tools/perf/util/map.c | 13 +-
tools/perf/util/pmu.c | 4 -
tools/perf/util/probe-event.c | 7 +-
tools/perf/util/symbol.c | 4 +-
24 files changed, 2004 insertions(+), 81 deletions(-)
create mode 100644 tools/perf/Documentation/intel-bts.txt
create mode 100644 tools/perf/Documentation/itrace.txt
create mode 100644 tools/perf/arch/x86/util/intel-bts.c
create mode 100644 tools/perf/scripts/python/call-graph-from-postgresql.py
create mode 100644 tools/perf/util/intel-bts.c
create mode 100644 tools/perf/util/intel-bts.h
^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [GIT PULL 0/9] perf/core improvements and fixes
2015-08-21 16:10 Arnaldo Carvalho de Melo
@ 2015-08-22 6:47 ` Ingo Molnar
0 siblings, 0 replies; 45+ messages in thread
From: Ingo Molnar @ 2015-08-22 6:47 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Adrian Hunter, Alexei Starovoitov, Borislav Petkov,
Brendan Gregg, Daniel Borkmann, David Ahern, Dean Nelson,
Frederic Weisbecker, He Kuang, Jiri Olsa, Kaixu Xia, Li Zhang,
Masami Hiramatsu, Namhyung Kim, 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 82819ffb42fb45197bacf3223191deca31d3eb91:
>
> perf/x86/msr: Fix the MSR driver build (2015-08-21 08:17:01 +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 1c0bd0e891aaed0219010bfe79b32e1b0b82d662:
>
> perf probe: Try to use symbol table if searching debug info failed (2015-08-21 12:57:20 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> User visible:
>
> - Fix segfault using 'perf script --show-mmap-events', affects
> only current perf/core (Adrian Hunter).
>
> - /proc/kcore requires CAP_SYS_RAWIO message too noisy, make it
> debug only (Adrian Hunter)
>
> - Fix Intel PT timestamp handling (Adrian Hunter)
>
> - Add Intel BTS support, with a call-graph script to show it and
> PT in use in a GUI using 'perf script' python scripting with
> postgresql and Qt (Adrian Hunter)
>
> - Add checks for returned EVENT_ERROR type in libtraceevent, fixing
> a bug that surfaced on arm64 systems (Dean Nelson)
>
> - Fallback to using kallsyms when libdw fails to handle a vmlinux file,
> that can happen, for instance, when perf is statically linked and
> then libdw fails to load libebl_{arch}.so (Wang Nan)
>
> Infrastructure:
>
> - Initialize reference counts in map__clone() (Arnaldo Carvalho de Melo)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Adrian Hunter (6):
> perf script: Fix segfault using --show-mmap-events
> perf tools: /proc/kcore requires CAP_SYS_RAWIO message too noisy
> perf tools: Fix Intel PT timestamp handling
> perf tools: Add Intel BTS support
> perf tools: Put itrace options into an asciidoc include
> perf tools: Add example call-graph script
>
> Arnaldo Carvalho de Melo (1):
> perf tools: Initialize reference counts in map__clone()
>
> Dean Nelson (1):
> tools lib traceevent: Add checks for returned EVENT_ERROR type
>
> Wang Nan (1):
> perf probe: Try to use symbol table if searching debug info failed
>
> tools/lib/traceevent/event-parse.c | 9 +
> tools/perf/Documentation/intel-bts.txt | 86 ++
> tools/perf/Documentation/itrace.txt | 22 +
> tools/perf/Documentation/perf-inject.txt | 23 +-
> tools/perf/Documentation/perf-report.txt | 23 +-
> tools/perf/Documentation/perf-script.txt | 23 +-
> tools/perf/arch/x86/util/Build | 1 +
> tools/perf/arch/x86/util/auxtrace.c | 49 +-
> tools/perf/arch/x86/util/intel-bts.c | 458 ++++++++++
> tools/perf/arch/x86/util/pmu.c | 3 +
> .../scripts/python/call-graph-from-postgresql.py | 327 ++++++++
> tools/perf/scripts/python/export-to-postgresql.py | 47 ++
> tools/perf/util/Build | 1 +
> tools/perf/util/annotate.c | 1 +
> tools/perf/util/auxtrace.c | 3 +
> tools/perf/util/auxtrace.h | 1 +
> tools/perf/util/evlist.c | 2 +-
> tools/perf/util/intel-bts.c | 933 +++++++++++++++++++++
> tools/perf/util/intel-bts.h | 43 +
> tools/perf/util/intel-pt.c | 2 +-
> tools/perf/util/map.c | 13 +-
> tools/perf/util/pmu.c | 4 -
> tools/perf/util/probe-event.c | 7 +-
> tools/perf/util/symbol.c | 4 +-
> 24 files changed, 2004 insertions(+), 81 deletions(-)
> create mode 100644 tools/perf/Documentation/intel-bts.txt
> create mode 100644 tools/perf/Documentation/itrace.txt
> create mode 100644 tools/perf/arch/x86/util/intel-bts.c
> create mode 100644 tools/perf/scripts/python/call-graph-from-postgresql.py
> create mode 100644 tools/perf/util/intel-bts.c
> create mode 100644 tools/perf/util/intel-bts.h
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 45+ messages in thread
* [GIT PULL 0/9] perf/core improvements and fixes
@ 2014-06-19 16:38 Jiri Olsa
0 siblings, 0 replies; 45+ messages in thread
From: Jiri Olsa @ 2014-06-19 16:38 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Corey Ashford,
David Ahern, Frederic Weisbecker, Jan Kiszka, Jiri Olsa,
Namhyung Kim, Paul Mackerras, Peter Zijlstra, Simon Que,
Steven Rostedt
hi Ingo,
please consider pulling
thanks,
jirka
The following changes since commit 4ba96195051be30160af6d5f5f83f9a055ab1f23:
Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf into perf/core (2014-06-13 08:19:06 +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 26d664a30d08002ac0a4dbd09217ea084da07bc9:
perf symbols: Get kernel start address by symbol name (2014-06-19 18:18:38 +0200)
----------------------------------------------------------------
perf/core improvements and fixes:
. Updates from trace-cmd for traceevent plugin_kvm plus args cleanup (Steven Rostedt)
. Fix kernel start address lookup in report code (Simon Que)
. Fix segfault in cumulative.callchain report (Jiri Olsa)
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
----------------------------------------------------------------
Jan Kiszka (3):
tools lib traceevent: Report unknown VMX exit reasons with code
tools lib traceevent: Factor out print_exit_reason in kvm plugin
tools lib traceevent: Fix and cleanup kvm_nested_vmexit tracepoints
Jiri Olsa (1):
perf tools: Fix segfault in cumulative.callchain report
Simon Que (1):
perf symbols: Get kernel start address by symbol name
Steven Rostedt (3):
tools lib traceevent: Fix format in plugin_kvm
tools lib traceevent: Clean up format of args in cfg80211 plugin
tools lib traceevent: Clean up format of args in jbd2 plugin
Steven Rostedt (Red Hat) (1):
tools lib traceevent: Add back in kvm plugins nested_vmexit events
tools/lib/traceevent/plugin_cfg80211.c | 3 +-
tools/lib/traceevent/plugin_jbd2.c | 6 ++--
tools/lib/traceevent/plugin_kvm.c | 64 +++++++++++++++++++++++++++++-----
tools/perf/ui/browsers/hists.c | 21 ++++++++---
tools/perf/util/machine.c | 54 ++++++++++++----------------
5 files changed, 97 insertions(+), 51 deletions(-)
^ permalink raw reply [flat|nested] 45+ messages in thread
* [GIT PULL 0/9] perf/core improvements and fixes
@ 2014-06-03 20:36 Jiri Olsa
2014-06-05 8:45 ` Ingo Molnar
0 siblings, 1 reply; 45+ messages in thread
From: Jiri Olsa @ 2014-06-03 20:36 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Adrian Hunter, Arnaldo Carvalho de Melo,
Arnaldo Carvalho de Melo, Cody P Schafer, Corey Ashford,
David Ahern, David Binderman, Dianfang Zhang, Don Zickus,
Frederic Weisbecker, Jean Delvare, Jianyu Zhan, Jiri Olsa,
Mike Galbraith, Namhyung Kim, Paul Mackerras, Peter Zijlstra,
Peter Zijlstra, Sebastian Andrzej Siewior, Stephane Eranian,
Sukadev Bhattiprolu
hi Ingo,
please consider pulling
thanks,
jirka
The following changes since commit 9b261365dd73a5014b49033327ad881708e81f33:
Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf into perf/core (2014-06-03 20:22:40 +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 fc9cabeabf42d76854059e7bce81a02645e7e5ca:
perf tools: Fix 'make help' message error (2014-06-03 21:35:12 +0200)
----------------------------------------------------------------
perf/core improvements and fixes:
. Warn the user when trace command is not available (Arnaldo Carvalho de Melo)
. Add warning when disabling perl scripting support due to missing devel files (Arnaldo Carvalho de Melo)
. Consider header files outside perf directory in tags target (Sebastian Andrzej Siewior)
. Allow overriding sysfs and proc finding with env var (Cody P Schafer)
. Fix "==" into "=" in ui_browser__warning assignment (zhangdianfang)
. Factor elide bool handling in sort code (Jiri Olsa)
. Fix poll return value propagation (Jiri Olsa)
. Fix 'make help' message error (Jianyu Zhan)
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
----------------------------------------------------------------
Arnaldo Carvalho de Melo (2):
perf trace: Warn the user when not available
perf tools: Add warning when disabling perl scripting support due to missing devel files
Cody P Schafer (1):
perf tools: Allow overriding sysfs and proc finding with env var
Jianyu Zhan (1):
perf tools: Fix 'make help' message error
Jiri Olsa (3):
perf tools: Remove elide setup for SORT_MODE__MEMORY mode
perf tools: Move elide bool into perf_hpp_fmt struct
perf record: Fix poll return value propagation
Sebastian Andrzej Siewior (1):
perf tools: Consider header files outside perf directory in tags target
zhangdianfang (1):
perf tools: Fix "==" into "=" in ui_browser__warning assignment
tools/lib/api/fs/fs.c | 43 ++++++++++++++++-
tools/perf/Makefile.perf | 13 ++++--
tools/perf/builtin-record.c | 6 ++-
tools/perf/config/Makefile | 3 +-
tools/perf/perf.c | 8 +++-
tools/perf/ui/browser.c | 2 +-
tools/perf/ui/browsers/hists.c | 8 ++--
tools/perf/util/hist.h | 8 +++-
tools/perf/util/sort.c | 103 ++++++++++++++++++++++-------------------
tools/perf/util/sort.h | 2 +-
10 files changed, 132 insertions(+), 64 deletions(-)
^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [GIT PULL 0/9] perf/core improvements and fixes
2014-06-03 20:36 Jiri Olsa
@ 2014-06-05 8:45 ` Ingo Molnar
0 siblings, 0 replies; 45+ messages in thread
From: Ingo Molnar @ 2014-06-05 8:45 UTC (permalink / raw)
To: Jiri Olsa
Cc: linux-kernel, Adrian Hunter, Arnaldo Carvalho de Melo,
Arnaldo Carvalho de Melo, Cody P Schafer, Corey Ashford,
David Ahern, David Binderman, Dianfang Zhang, Don Zickus,
Frederic Weisbecker, Jean Delvare, Jianyu Zhan, Mike Galbraith,
Namhyung Kim, Paul Mackerras, Peter Zijlstra, Peter Zijlstra,
Sebastian Andrzej Siewior, Stephane Eranian, Sukadev Bhattiprolu
* Jiri Olsa <jolsa@kernel.org> wrote:
> hi Ingo,
> please consider pulling
>
> thanks,
> jirka
>
>
> The following changes since commit 9b261365dd73a5014b49033327ad881708e81f33:
>
> Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf into perf/core (2014-06-03 20:22:40 +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 fc9cabeabf42d76854059e7bce81a02645e7e5ca:
>
> perf tools: Fix 'make help' message error (2014-06-03 21:35:12 +0200)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> . Warn the user when trace command is not available (Arnaldo Carvalho de Melo)
>
> . Add warning when disabling perl scripting support due to missing devel files (Arnaldo Carvalho de Melo)
>
> . Consider header files outside perf directory in tags target (Sebastian Andrzej Siewior)
>
> . Allow overriding sysfs and proc finding with env var (Cody P Schafer)
>
> . Fix "==" into "=" in ui_browser__warning assignment (zhangdianfang)
>
> . Factor elide bool handling in sort code (Jiri Olsa)
>
> . Fix poll return value propagation (Jiri Olsa)
>
> . Fix 'make help' message error (Jianyu Zhan)
>
> Signed-off-by: Jiri Olsa <jolsa@kernel.org>
>
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (2):
> perf trace: Warn the user when not available
> perf tools: Add warning when disabling perl scripting support due to missing devel files
>
> Cody P Schafer (1):
> perf tools: Allow overriding sysfs and proc finding with env var
>
> Jianyu Zhan (1):
> perf tools: Fix 'make help' message error
>
> Jiri Olsa (3):
> perf tools: Remove elide setup for SORT_MODE__MEMORY mode
> perf tools: Move elide bool into perf_hpp_fmt struct
> perf record: Fix poll return value propagation
>
> Sebastian Andrzej Siewior (1):
> perf tools: Consider header files outside perf directory in tags target
>
> zhangdianfang (1):
> perf tools: Fix "==" into "=" in ui_browser__warning assignment
>
> tools/lib/api/fs/fs.c | 43 ++++++++++++++++-
> tools/perf/Makefile.perf | 13 ++++--
> tools/perf/builtin-record.c | 6 ++-
> tools/perf/config/Makefile | 3 +-
> tools/perf/perf.c | 8 +++-
> tools/perf/ui/browser.c | 2 +-
> tools/perf/ui/browsers/hists.c | 8 ++--
> tools/perf/util/hist.h | 8 +++-
> tools/perf/util/sort.c | 103 ++++++++++++++++++++++-------------------
> tools/perf/util/sort.h | 2 +-
> 10 files changed, 132 insertions(+), 64 deletions(-)
Pulled, thanks a lot Jiri!
Ingo
^ permalink raw reply [flat|nested] 45+ messages in thread
* [GIT PULL 0/9] perf/core improvements and fixes
@ 2014-05-28 13:20 Jiri Olsa
0 siblings, 0 replies; 45+ messages in thread
From: Jiri Olsa @ 2014-05-28 13:20 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Adrian Hunter, Arnaldo Carvalho de Melo,
Cody P Schafer, David Ahern, Don Zickus, Frederic Weisbecker,
Javi Merino, Jiri Olsa, Mike Galbraith, Namhyung Kim,
Paul Mackerras, Peter Zijlstra, Sebastian Andrzej Siewior,
Stephane Eranian, Steven Rostedt, Sukadev Bhattiprolu
hi Ingo,
please consider pulling
thanks,
jirka
The following changes since commit e450f90e8c7d0bf70519223c1b848446ae63f313:
Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf into perf/core (2014-05-22 11:37:40 +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 34cfec19bd8496279d283498b97069d9a0f7e130:
tools lib traceevent: Added support for __get_bitmask() macro (2014-05-28 15:08:26 +0200)
----------------------------------------------------------------
perf/core improvements and fixes:
. Added support for __get_bitmask() macro to traceevent library (Steven Rostedt)
. Allow overriding sysfs and proc finding with env var (Cody P Schafer)
. Consider header files outside perf directory in tags target (Sebastian Andrzej Siewior)
. Add warning when disabling perl scripting support due to missing devel files (Arnaldo Carvalho de Melo)
. Warn the user when trace command is not available (Arnaldo Carvalho de Melo)
. 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)
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
----------------------------------------------------------------
Arnaldo Carvalho de Melo (2):
perf trace: Warn the user when not available
perf tools: Add warning when disabling perl scripting support due to missing devel files
Cody P Schafer (1):
perf tools: Allow overriding sysfs and proc finding with env var
Don Zickus (3):
Revert "perf: Disable PERF_RECORD_MMAP2 support"
perf tools: Update mmap2 interface with protection and flag bits
perf report: Add mem-mode documentation to report command
Peter Zijlstra (1):
perf: Pass protection and flags bits through mmap2 interface
Sebastian Andrzej Siewior (1):
perf tools: Consider header files outside perf directory in tags target
Steven Rostedt (Red Hat) (1):
tools lib traceevent: Added support for __get_bitmask() macro
include/uapi/linux/perf_event.h | 1 +
kernel/events/core.c | 37 ++++++-
tools/lib/api/fs/fs.c | 43 +++++++-
tools/lib/traceevent/event-parse.c | 113 +++++++++++++++++++++
tools/lib/traceevent/event-parse.h | 7 ++
tools/perf/Documentation/perf-report.txt | 22 ++++
tools/perf/Makefile.perf | 9 +-
tools/perf/config/Makefile | 1 +
tools/perf/perf.c | 8 +-
tools/perf/tests/dwarf-unwind.c | 2 +-
tools/perf/util/event.c | 59 +++++++----
tools/perf/util/event.h | 2 +
tools/perf/util/evsel.c | 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 | 1 +
18 files changed, 286 insertions(+), 33 deletions(-)
^ permalink raw reply [flat|nested] 45+ messages in thread
* [GIT PULL 0/9] perf/core improvements and fixes
@ 2012-10-26 14:31 Arnaldo Carvalho de Melo
2012-10-26 14:54 ` Ingo Molnar
0 siblings, 1 reply; 45+ messages in thread
From: Arnaldo Carvalho de Melo @ 2012-10-26 14:31 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Andrew Vagin,
Borislav Petkov, David Howells, Frederic Weisbecker, Jiri Olsa,
Namhyung Kim, Paul Mackerras, Peter Zijlstra, Stephane Eranian,
Steven Rostedt, arnaldo.melo, Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling,
- Arnaldo
The following changes since commit 8f7c1d07ade50dcdea7ec779b277e891f5c8292a:
Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2012-10-26 10:30:49 +0200)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux tags/perf-core-for-mingo
for you to fetch changes up to 1f16c5754d3a4008c29f3bf67b4f1271313ba385:
perf stat: Add --pre and --post command (2012-10-26 11:22:25 -0200)
----------------------------------------------------------------
perf/core improvements:
. perf inject changes to allow showing where a task sleeps, from Andrew Vagin.
. Makefile improvements from Namhyung Kim.
. Add --pre and --post command hooks in 'stat', from Peter Zijlstra.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Andrew Vagin (3):
perf inject: Work with files
perf inject: Merge sched_stat_* and sched_switch events
perf inject: Mark a dso if it's used
Namhyung Kim (5):
tools lib traceevent: Do not generate dependency for system header files
perf tools: Cleanup doc related targets
perf tools: Convert invocation of MAKE into SUBDIR
perf tools: Always show CHK message when doing try-cc
perf tools: Fix LIBELF_MMAP checking
Peter Zijlstra (1):
perf stat: Add --pre and --post command
tools/lib/traceevent/Makefile | 2 +-
tools/perf/Documentation/perf-inject.txt | 11 ++
tools/perf/Documentation/perf-stat.txt | 5 +
tools/perf/Makefile | 51 ++------
tools/perf/builtin-inject.c | 189 ++++++++++++++++++++++++++++--
tools/perf/builtin-stat.c | 42 ++++++-
tools/perf/config/utilities.mak | 3 +-
tools/perf/util/build-id.c | 10 +-
tools/perf/util/build-id.h | 4 +
9 files changed, 256 insertions(+), 61 deletions(-)
^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [GIT PULL 0/9] perf/core improvements and fixes
2012-10-26 14:31 Arnaldo Carvalho de Melo
@ 2012-10-26 14:54 ` Ingo Molnar
2012-10-26 15:06 ` David Ahern
2012-10-26 17:05 ` Arnaldo Carvalho de Melo
0 siblings, 2 replies; 45+ messages in thread
From: Ingo Molnar @ 2012-10-26 14:54 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Andrew Vagin, Borislav Petkov, David Howells,
Frederic Weisbecker, Jiri Olsa, Namhyung Kim, Paul Mackerras,
Peter Zijlstra, Stephane Eranian, Steven Rostedt, arnaldo.melo,
Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@infradead.org> wrote:
> Hi Ingo,
>
> Please consider pulling,
>
> - Arnaldo
>
> The following changes since commit 8f7c1d07ade50dcdea7ec779b277e891f5c8292a:
>
> Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2012-10-26 10:30:49 +0200)
>
> are available in the git repository at:
>
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux tags/perf-core-for-mingo
>
> for you to fetch changes up to 1f16c5754d3a4008c29f3bf67b4f1271313ba385:
>
> perf stat: Add --pre and --post command (2012-10-26 11:22:25 -0200)
>
> ----------------------------------------------------------------
> perf/core improvements:
>
> . perf inject changes to allow showing where a task sleeps, from Andrew Vagin.
>
> . Makefile improvements from Namhyung Kim.
These are really useful: there used to be a couple of seconds of
wait time at the beginning of every perf build - these are now
nicely explained with the various CHK entries.
>
> . Add --pre and --post command hooks in 'stat', from Peter Zijlstra.
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Andrew Vagin (3):
> perf inject: Work with files
> perf inject: Merge sched_stat_* and sched_switch events
> perf inject: Mark a dso if it's used
>
> Namhyung Kim (5):
> tools lib traceevent: Do not generate dependency for system header files
> perf tools: Cleanup doc related targets
> perf tools: Convert invocation of MAKE into SUBDIR
> perf tools: Always show CHK message when doing try-cc
> perf tools: Fix LIBELF_MMAP checking
>
> Peter Zijlstra (1):
> perf stat: Add --pre and --post command
>
> tools/lib/traceevent/Makefile | 2 +-
> tools/perf/Documentation/perf-inject.txt | 11 ++
> tools/perf/Documentation/perf-stat.txt | 5 +
> tools/perf/Makefile | 51 ++------
> tools/perf/builtin-inject.c | 189 ++++++++++++++++++++++++++++--
> tools/perf/builtin-stat.c | 42 ++++++-
> tools/perf/config/utilities.mak | 3 +-
> tools/perf/util/build-id.c | 10 +-
> tools/perf/util/build-id.h | 4 +
> 9 files changed, 256 insertions(+), 61 deletions(-)
Pulled, thanks Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [GIT PULL 0/9] perf/core improvements and fixes
2012-10-26 14:54 ` Ingo Molnar
@ 2012-10-26 15:06 ` David Ahern
2012-10-26 15:31 ` Namhyung Kim
2012-10-26 17:05 ` Arnaldo Carvalho de Melo
1 sibling, 1 reply; 45+ messages in thread
From: David Ahern @ 2012-10-26 15:06 UTC (permalink / raw)
To: Ingo Molnar
Cc: Arnaldo Carvalho de Melo, linux-kernel, Andrew Vagin,
Borislav Petkov, David Howells, Frederic Weisbecker, Jiri Olsa,
Namhyung Kim, Paul Mackerras, Peter Zijlstra, Stephane Eranian,
Steven Rostedt, arnaldo.melo, Arnaldo Carvalho de Melo
On 10/26/12 8:54 AM, Ingo Molnar wrote:
>> perf/core improvements:
>>
>> . perf inject changes to allow showing where a task sleeps, from Andrew Vagin.
>>
>> . Makefile improvements from Namhyung Kim.
>
> These are really useful: there used to be a couple of seconds of
> wait time at the beginning of every perf build - these are now
> nicely explained with the various CHK entries.
PERF-VERSION-GEN and specifically the git commands are the cause of more
delay than the config checks, especially when doing the build in a VM
with the kernel source on an NFS mount.
David
^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [GIT PULL 0/9] perf/core improvements and fixes
2012-10-26 15:06 ` David Ahern
@ 2012-10-26 15:31 ` Namhyung Kim
2012-10-26 15:34 ` Borislav Petkov
2012-10-27 17:12 ` stephane eranian
0 siblings, 2 replies; 45+ messages in thread
From: Namhyung Kim @ 2012-10-26 15:31 UTC (permalink / raw)
To: David Ahern
Cc: Ingo Molnar, Arnaldo Carvalho de Melo, linux-kernel,
Andrew Vagin, Borislav Petkov, David Howells,
Frederic Weisbecker, Jiri Olsa, Paul Mackerras, Peter Zijlstra,
Stephane Eranian, Steven Rostedt, arnaldo.melo,
Arnaldo Carvalho de Melo
2012-10-26 (금), 09:06 -0600, David Ahern:
> On 10/26/12 8:54 AM, Ingo Molnar wrote:
> >> perf/core improvements:
> >>
> >> . perf inject changes to allow showing where a task sleeps, from Andrew Vagin.
> >>
> >> . Makefile improvements from Namhyung Kim.
> >
> > These are really useful: there used to be a couple of seconds of
> > wait time at the beginning of every perf build - these are now
> > nicely explained with the various CHK entries.
Kudos to Jiri who did the real work!
>
> PERF-VERSION-GEN and specifically the git commands are the cause of more
> delay than the config checks, especially when doing the build in a VM
> with the kernel source on an NFS mount.
And I see a strange delay when compiling builtin-sched.o. After
building perf tools, I deleted builtin-{sched,test,script}.o to rebuild
the only since they are largest ones.
namhyung@leonhard:perf$ ls -lS *.c | head -3
-rw-r--r-- 1 namhyung namhyung 45522 2012-10-27 00:20 builtin-sched.c
-rw-r--r-- 1 namhyung namhyung 36372 2012-10-27 00:20 builtin-test.c
-rw-r--r-- 1 namhyung namhyung 35555 2012-10-27 00:20 builtin-script.c
namhyung@leonhard:perf$ rm builtin-{sched,test,script}.o
And then building each file with time command shows this:
namhyung@leonhard:perf$ time make builtin-script.o &> /dev/null
real 0m4.577s
user 0m2.755s
sys 0m1.655s
namhyung@leonhard:perf$ time make builtin-test.o &> /dev/null
real 0m4.486s
user 0m2.707s
sys 0m1.658s
namhyung@leonhard:perf$ time make builtin-sched.o &> /dev/null
real 0m16.936s
user 0m15.157s
sys 0m1.635s
You can see it easily when building perf without -j option. But I have
no idea why it takes so long..
Thanks,
Namhyung
^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [GIT PULL 0/9] perf/core improvements and fixes
2012-10-26 15:31 ` Namhyung Kim
@ 2012-10-26 15:34 ` Borislav Petkov
2012-10-26 16:31 ` Arnaldo Carvalho de Melo
2012-10-27 17:12 ` stephane eranian
1 sibling, 1 reply; 45+ messages in thread
From: Borislav Petkov @ 2012-10-26 15:34 UTC (permalink / raw)
To: Namhyung Kim
Cc: David Ahern, Ingo Molnar, Arnaldo Carvalho de Melo, linux-kernel,
Andrew Vagin, Borislav Petkov, David Howells,
Frederic Weisbecker, Jiri Olsa, Paul Mackerras, Peter Zijlstra,
Stephane Eranian, Steven Rostedt, arnaldo.melo,
Arnaldo Carvalho de Melo
On Sat, Oct 27, 2012 at 12:31:42AM +0900, Namhyung Kim wrote:
> And I see a strange delay when compiling builtin-sched.o. After
> building perf tools, I deleted builtin-{sched,test,script}.o to rebuild
> the only since they are largest ones.
>
> namhyung@leonhard:perf$ ls -lS *.c | head -3
> -rw-r--r-- 1 namhyung namhyung 45522 2012-10-27 00:20 builtin-sched.c
> -rw-r--r-- 1 namhyung namhyung 36372 2012-10-27 00:20 builtin-test.c
> -rw-r--r-- 1 namhyung namhyung 35555 2012-10-27 00:20 builtin-script.c
>
> namhyung@leonhard:perf$ rm builtin-{sched,test,script}.o
>
>
> And then building each file with time command shows this:
>
> namhyung@leonhard:perf$ time make builtin-script.o &> /dev/null
>
> real 0m4.577s
> user 0m2.755s
> sys 0m1.655s
>
> namhyung@leonhard:perf$ time make builtin-test.o &> /dev/null
>
> real 0m4.486s
> user 0m2.707s
> sys 0m1.658s
>
> namhyung@leonhard:perf$ time make builtin-sched.o &> /dev/null
>
> real 0m16.936s
> user 0m15.157s
> sys 0m1.635s
>
> You can see it easily when building perf without -j option. But I have
> no idea why it takes so long..
Well, you can trace that workload with perf itself, no, and see the
hotspots.
:-)
--
Regards/Gruss,
Boris.
^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [GIT PULL 0/9] perf/core improvements and fixes
2012-10-26 15:34 ` Borislav Petkov
@ 2012-10-26 16:31 ` Arnaldo Carvalho de Melo
2012-10-26 17:20 ` Borislav Petkov
0 siblings, 1 reply; 45+ messages in thread
From: Arnaldo Carvalho de Melo @ 2012-10-26 16:31 UTC (permalink / raw)
To: Borislav Petkov, Namhyung Kim, David Ahern, Ingo Molnar,
linux-kernel, Andrew Vagin, Borislav Petkov, David Howells,
Frederic Weisbecker, Jiri Olsa, Paul Mackerras, Peter Zijlstra,
Stephane Eranian, Steven Rostedt
Em Fri, Oct 26, 2012 at 05:34:32PM +0200, Borislav Petkov escreveu:
> On Sat, Oct 27, 2012 at 12:31:42AM +0900, Namhyung Kim wrote:
> > You can see it easily when building perf without -j option. But I have
> > no idea why it takes so long..
> Well, you can trace that workload with perf itself, no, and see the
> hotspots.
Right, perf'ing perf is a favourite pastime, right?
- Arnaldo
^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [GIT PULL 0/9] perf/core improvements and fixes
2012-10-26 16:31 ` Arnaldo Carvalho de Melo
@ 2012-10-26 17:20 ` Borislav Petkov
2012-10-27 9:16 ` Namhyung Kim
0 siblings, 1 reply; 45+ messages in thread
From: Borislav Petkov @ 2012-10-26 17:20 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: Namhyung Kim, David Ahern, Ingo Molnar, linux-kernel,
Andrew Vagin, Borislav Petkov, David Howells,
Frederic Weisbecker, Jiri Olsa, Paul Mackerras, Peter Zijlstra,
Stephane Eranian, Steven Rostedt
On Fri, Oct 26, 2012 at 09:31:15AM -0700, Arnaldo Carvalho de Melo wrote:
> Right, perf'ing perf is a favourite pastime, right?
Sure, can I get "perfing perf" on a T-shirt please?
--
Regards/Gruss,
Boris.
^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [GIT PULL 0/9] perf/core improvements and fixes
2012-10-26 17:20 ` Borislav Petkov
@ 2012-10-27 9:16 ` Namhyung Kim
2012-10-27 14:29 ` Arnaldo Carvalho de Melo
0 siblings, 1 reply; 45+ messages in thread
From: Namhyung Kim @ 2012-10-27 9:16 UTC (permalink / raw)
To: Borislav Petkov
Cc: Arnaldo Carvalho de Melo, David Ahern, Ingo Molnar, linux-kernel,
Andrew Vagin, Borislav Petkov, David Howells,
Frederic Weisbecker, Jiri Olsa, Paul Mackerras, Peter Zijlstra,
Stephane Eranian, Steven Rostedt
2012-10-26 (금), 19:20 +0200, Borislav Petkov:
> On Fri, Oct 26, 2012 at 09:31:15AM -0700, Arnaldo Carvalho de Melo wrote:
> > Right, perf'ing perf is a favourite pastime, right?
>
> Sure, can I get "perfing perf" on a T-shirt please?
Well, guys, this is not perfing perf. It's about perfing make and/or
gcc. Anyway I'd also like to get a "perfing perf" T-shirt. ;)
Thanks,
Namhyung
^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [GIT PULL 0/9] perf/core improvements and fixes
2012-10-27 9:16 ` Namhyung Kim
@ 2012-10-27 14:29 ` Arnaldo Carvalho de Melo
0 siblings, 0 replies; 45+ messages in thread
From: Arnaldo Carvalho de Melo @ 2012-10-27 14:29 UTC (permalink / raw)
To: Namhyung Kim
Cc: Borislav Petkov, David Ahern, Ingo Molnar, linux-kernel,
Andrew Vagin, Borislav Petkov, David Howells,
Frederic Weisbecker, Jiri Olsa, Paul Mackerras, Peter Zijlstra,
Stephane Eranian, Steven Rostedt
Em Sat, Oct 27, 2012 at 06:16:31PM +0900, Namhyung Kim escreveu:
> 2012-10-26 (금), 19:20 +0200, Borislav Petkov:
> > On Fri, Oct 26, 2012 at 09:31:15AM -0700, Arnaldo Carvalho de Melo wrote:
> > > Right, perf'ing perf is a favourite pastime, right?
> >
> > Sure, can I get "perfing perf" on a T-shirt please?
>
> Well, guys, this is not perfing perf. It's about perfing make and/or
> gcc. Anyway I'd also like to get a "perfing perf" T-shirt. ;)
Well, building perf faster will allow us to perf perf faster. ;-)
- Arnaldo
^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [GIT PULL 0/9] perf/core improvements and fixes
2012-10-26 15:31 ` Namhyung Kim
2012-10-26 15:34 ` Borislav Petkov
@ 2012-10-27 17:12 ` stephane eranian
1 sibling, 0 replies; 45+ messages in thread
From: stephane eranian @ 2012-10-27 17:12 UTC (permalink / raw)
To: Namhyung Kim
Cc: David Ahern, Ingo Molnar, Arnaldo Carvalho de Melo, linux-kernel,
Andrew Vagin, Borislav Petkov, David Howells,
Frederic Weisbecker, Jiri Olsa, Paul Mackerras, Peter Zijlstra,
Steven Rostedt, arnaldo.melo, Arnaldo Carvalho de Melo
On Fri, Oct 26, 2012 at 5:31 PM, Namhyung Kim <namhyung@kernel.org> wrote:
> 2012-10-26 (금), 09:06 -0600, David Ahern:
>> On 10/26/12 8:54 AM, Ingo Molnar wrote:
>> >> perf/core improvements:
>> >>
>> >> . perf inject changes to allow showing where a task sleeps, from Andrew Vagin.
>> >>
>> >> . Makefile improvements from Namhyung Kim.
>> >
>> > These are really useful: there used to be a couple of seconds of
>> > wait time at the beginning of every perf build - these are now
>> > nicely explained with the various CHK entries.
>
> Kudos to Jiri who did the real work!
>
>>
>> PERF-VERSION-GEN and specifically the git commands are the cause of more
>> delay than the config checks, especially when doing the build in a VM
>> with the kernel source on an NFS mount.
>
> And I see a strange delay when compiling builtin-sched.o. After
> building perf tools, I deleted builtin-{sched,test,script}.o to rebuild
> the only since they are largest ones.
>
Yes, I see that delay on copiling builtin-sched.c on my IVB system.
Don't know why it takes a significant number of seconds to compile
this file. It did not use to be like that a few revisions back. It takes
about 8 seconds on my OC'd IVB (> 4GHz). I don't see much code
in that file.
> namhyung@leonhard:perf$ ls -lS *.c | head -3
> -rw-r--r-- 1 namhyung namhyung 45522 2012-10-27 00:20 builtin-sched.c
> -rw-r--r-- 1 namhyung namhyung 36372 2012-10-27 00:20 builtin-test.c
> -rw-r--r-- 1 namhyung namhyung 35555 2012-10-27 00:20 builtin-script.c
>
> namhyung@leonhard:perf$ rm builtin-{sched,test,script}.o
>
>
> And then building each file with time command shows this:
>
> namhyung@leonhard:perf$ time make builtin-script.o &> /dev/null
>
> real 0m4.577s
> user 0m2.755s
> sys 0m1.655s
>
> namhyung@leonhard:perf$ time make builtin-test.o &> /dev/null
>
> real 0m4.486s
> user 0m2.707s
> sys 0m1.658s
>
> namhyung@leonhard:perf$ time make builtin-sched.o &> /dev/null
>
> real 0m16.936s
> user 0m15.157s
> sys 0m1.635s
>
> You can see it easily when building perf without -j option. But I have
> no idea why it takes so long..
>
> Thanks,
> Namhyung
>
>
^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [GIT PULL 0/9] perf/core improvements and fixes
2012-10-26 14:54 ` Ingo Molnar
2012-10-26 15:06 ` David Ahern
@ 2012-10-26 17:05 ` Arnaldo Carvalho de Melo
2012-10-27 13:19 ` Ingo Molnar
1 sibling, 1 reply; 45+ messages in thread
From: Arnaldo Carvalho de Melo @ 2012-10-26 17:05 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Andrew Vagin, Borislav Petkov, David Howells,
Frederic Weisbecker, Jiri Olsa, Namhyung Kim, Paul Mackerras,
Peter Zijlstra, Stephane Eranian, Steven Rostedt
Em Fri, Oct 26, 2012 at 04:54:51PM +0200, Ingo Molnar escreveu:
> * Arnaldo Carvalho de Melo <acme@infradead.org> wrote:
> > . Makefile improvements from Namhyung Kim.
>
> These are really useful: there used to be a couple of seconds of
> wait time at the beginning of every perf build - these are now
> nicely explained with the various CHK entries.
The optimal way, I guess, would be to have some cache file with the
results of such feature tests, that would be created and then used till
the build fails using its findings, which would trigger a new feature
check round, followed by an automatic rebuild.
That would be tricky because we would have to have an automated way of
discovering if the build failed due to missing packages or if it failed
due to some ordinary coding mistake.
- Arnaldo
^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [GIT PULL 0/9] perf/core improvements and fixes
2012-10-26 17:05 ` Arnaldo Carvalho de Melo
@ 2012-10-27 13:19 ` Ingo Molnar
2012-10-30 8:18 ` Ingo Molnar
0 siblings, 1 reply; 45+ messages in thread
From: Ingo Molnar @ 2012-10-27 13:19 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Andrew Vagin, Borislav Petkov, David Howells,
Frederic Weisbecker, Jiri Olsa, Namhyung Kim, Paul Mackerras,
Peter Zijlstra, Stephane Eranian, Steven Rostedt
* Arnaldo Carvalho de Melo <acme@infradead.org> wrote:
> Em Fri, Oct 26, 2012 at 04:54:51PM +0200, Ingo Molnar escreveu:
> > * Arnaldo Carvalho de Melo <acme@infradead.org> wrote:
> > > . Makefile improvements from Namhyung Kim.
> >
> > These are really useful: there used to be a couple of
> > seconds of wait time at the beginning of every perf build -
> > these are now nicely explained with the various CHK entries.
>
> The optimal way, I guess, would be to have some cache file
> with the results of such feature tests, that would be created
> and then used till the build fails using its findings, which
> would trigger a new feature check round, followed by an
> automatic rebuild.
>
> That would be tricky because we would have to have an
> automated way of discovering if the build failed due to
> missing packages or if it failed due to some ordinary coding
> mistake.
The feature tests aren't a big problem right now - but making it
*visible* is really useful. It also tells us which feature test
fails, etc.
Thanks,
Ingo
^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [GIT PULL 0/9] perf/core improvements and fixes
2012-10-27 13:19 ` Ingo Molnar
@ 2012-10-30 8:18 ` Ingo Molnar
2012-10-30 8:21 ` Peter Zijlstra
0 siblings, 1 reply; 45+ messages in thread
From: Ingo Molnar @ 2012-10-30 8:18 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Andrew Vagin, Borislav Petkov, David Howells,
Frederic Weisbecker, Jiri Olsa, Namhyung Kim, Paul Mackerras,
Peter Zijlstra, Stephane Eranian, Steven Rostedt
* Ingo Molnar <mingo@kernel.org> wrote:
>
> * Arnaldo Carvalho de Melo <acme@infradead.org> wrote:
>
> > Em Fri, Oct 26, 2012 at 04:54:51PM +0200, Ingo Molnar escreveu:
> > > * Arnaldo Carvalho de Melo <acme@infradead.org> wrote:
> > > > . Makefile improvements from Namhyung Kim.
> > >
> > > These are really useful: there used to be a couple of
> > > seconds of wait time at the beginning of every perf build -
> > > these are now nicely explained with the various CHK entries.
> >
> > The optimal way, I guess, would be to have some cache file
> > with the results of such feature tests, that would be created
> > and then used till the build fails using its findings, which
> > would trigger a new feature check round, followed by an
> > automatic rebuild.
> >
> > That would be tricky because we would have to have an
> > automated way of discovering if the build failed due to
> > missing packages or if it failed due to some ordinary coding
> > mistake.
>
> The feature tests aren't a big problem right now - but making
> it *visible* is really useful. It also tells us which feature
> test fails, etc.
Btw., there's another thing that would be nice in addition to
simplifying the PERF-VERSION-GEN script: to be able to run the
CHK tests in parallel, like the object file runes.
Right now the CHK tests are serialized and they take several
seconds to build and run. A parallel make rule would reduce
that to about a second I think.
Thanks,
Ingo
^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [GIT PULL 0/9] perf/core improvements and fixes
2012-10-30 8:18 ` Ingo Molnar
@ 2012-10-30 8:21 ` Peter Zijlstra
2012-10-30 9:14 ` Ingo Molnar
0 siblings, 1 reply; 45+ messages in thread
From: Peter Zijlstra @ 2012-10-30 8:21 UTC (permalink / raw)
To: Ingo Molnar
Cc: Arnaldo Carvalho de Melo, linux-kernel, Andrew Vagin,
Borislav Petkov, David Howells, Frederic Weisbecker, Jiri Olsa,
Namhyung Kim, Paul Mackerras, Stephane Eranian, Steven Rostedt
On Tue, 2012-10-30 at 09:18 +0100, Ingo Molnar wrote:
> > > The optimal way, I guess, would be to have some cache file
> > > with the results of such feature tests, that would be created
> > > and then used till the build fails using its findings, which
> > > would trigger a new feature check round, followed by an
> > > automatic rebuild.
autoconf!! ;-)
/me runs
^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [GIT PULL 0/9] perf/core improvements and fixes
2012-10-30 8:21 ` Peter Zijlstra
@ 2012-10-30 9:14 ` Ingo Molnar
0 siblings, 0 replies; 45+ messages in thread
From: Ingo Molnar @ 2012-10-30 9:14 UTC (permalink / raw)
To: Peter Zijlstra
Cc: Arnaldo Carvalho de Melo, linux-kernel, Andrew Vagin,
Borislav Petkov, David Howells, Frederic Weisbecker, Jiri Olsa,
Namhyung Kim, Paul Mackerras, Stephane Eranian, Steven Rostedt
* Peter Zijlstra <a.p.zijlstra@chello.nl> wrote:
> On Tue, 2012-10-30 at 09:18 +0100, Ingo Molnar wrote:
> > > > The optimal way, I guess, would be to have some cache file
> > > > with the results of such feature tests, that would be created
> > > > and then used till the build fails using its findings, which
> > > > would trigger a new feature check round, followed by an
> > > > automatic rebuild.
I did not write that.
I think making the feature tests parallel would be enough to
speed it all up - caching brings in a new set of problems. The
tests are mostly independent and the feature test makefile rules
could be parallelized like the object file rules.
> autoconf!! ;-)
>
> /me runs
hey, we build perf much faster than autoconf's 'configure'
script finishes running ;-)
Thanks,
Ingo
^ permalink raw reply [flat|nested] 45+ messages in thread
* [GIT PULL 0/9] perf/core improvements and fixes
@ 2012-09-08 20:36 Arnaldo Carvalho de Melo
2012-09-09 8:40 ` Ingo Molnar
0 siblings, 1 reply; 45+ messages in thread
From: Arnaldo Carvalho de Melo @ 2012-09-08 20:36 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, David Ahern,
Irina Tirdea, Irina Tirdea, Namhyung Kim, Namhyung Kim,
Paul Mackerras, Pekka Enberg, Peter Zijlstra, Srikar Dronamraju,
Steven Rostedt
From: Arnaldo Carvalho de Melo <acme@redhat.com>
Hi Ingo,
Please consider pulling,
Thanks,
- Arnaldo
The following changes since commit ef34eb4da3eb62a1511592adf7c76d74faca0b14:
Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2012-09-08 13:26:02 +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 6c7f631261064762a8ba1ee34fc2b76d117ef3fa:
perf symbols: Remove BIONIC wrapper around libgen.h (2012-09-08 17:15:16 -0300)
----------------------------------------------------------------
perf/core improvements and fixes
. Don't pass const char pointers to basename, so that we can unconditionally
use libgen.h and thus avoid ifdef BIONIC lines, from David Ahern
. Fix assert/BUG_ON when NDEBUG is defined, from Irina Tirdea.
. Refactor hist formatting so that it can be reused with the GTK browser,
From Namhyung Kim
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
David Ahern (3):
perf annotate: Make a copy of filename for passing to basename
perf probe: Make a copy of exec path for passing to basename
perf symbols: Remove BIONIC wrapper around libgen.h
Irina Tirdea (1):
perf bench: fix assert when NDEBUG is defined
Namhyung Kim (5):
perf hists: Introduce perf_hpp for hist period printing
perf hists: Handle field separator properly
perf hists: Use perf_hpp__format->width to calculate the column widths
perf hists browser: Use perf_hpp__format functions
perf gtk/browser: Use perf_hpp__format functions
tools/perf/Makefile | 2 +
tools/perf/bench/sched-pipe.c | 6 +-
tools/perf/builtin-diff.c | 1 +
tools/perf/ui/browsers/hists.c | 96 ++++++--
tools/perf/ui/gtk/browser.c | 101 +++++++--
tools/perf/ui/gtk/gtk.h | 1 +
tools/perf/ui/gtk/setup.c | 1 +
tools/perf/ui/hist.c | 389 ++++++++++++++++++++++++++++++++
tools/perf/ui/setup.c | 8 +-
tools/perf/ui/stdio/hist.c | 239 ++++----------------
tools/perf/ui/tui/setup.c | 4 +
tools/perf/util/annotate.c | 9 +-
tools/perf/util/hist.c | 33 ---
tools/perf/util/hist.h | 37 +++
tools/perf/util/include/linux/kernel.h | 4 +
tools/perf/util/probe-event.c | 12 +-
tools/perf/util/symbol.h | 2 -
17 files changed, 665 insertions(+), 280 deletions(-)
create mode 100644 tools/perf/ui/hist.c
^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [GIT PULL 0/9] perf/core improvements and fixes
2012-09-08 20:36 Arnaldo Carvalho de Melo
@ 2012-09-09 8:40 ` Ingo Molnar
0 siblings, 0 replies; 45+ messages in thread
From: Ingo Molnar @ 2012-09-09 8:40 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Arnaldo Carvalho de Melo, David Ahern,
Irina Tirdea, Irina Tirdea, Namhyung Kim, Namhyung Kim,
Paul Mackerras, Pekka Enberg, Peter Zijlstra, Srikar Dronamraju,
Steven Rostedt
* Arnaldo Carvalho de Melo <acme@infradead.org> wrote:
> From: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> Hi Ingo,
>
> Please consider pulling,
>
> Thanks,
>
> - Arnaldo
>
> The following changes since commit ef34eb4da3eb62a1511592adf7c76d74faca0b14:
>
> Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2012-09-08 13:26:02 +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 6c7f631261064762a8ba1ee34fc2b76d117ef3fa:
>
> perf symbols: Remove BIONIC wrapper around libgen.h (2012-09-08 17:15:16 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes
>
> . Don't pass const char pointers to basename, so that we can unconditionally
> use libgen.h and thus avoid ifdef BIONIC lines, from David Ahern
>
> . Fix assert/BUG_ON when NDEBUG is defined, from Irina Tirdea.
>
> . Refactor hist formatting so that it can be reused with the GTK browser,
> From Namhyung Kim
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> David Ahern (3):
> perf annotate: Make a copy of filename for passing to basename
> perf probe: Make a copy of exec path for passing to basename
> perf symbols: Remove BIONIC wrapper around libgen.h
>
> Irina Tirdea (1):
> perf bench: fix assert when NDEBUG is defined
>
> Namhyung Kim (5):
> perf hists: Introduce perf_hpp for hist period printing
> perf hists: Handle field separator properly
> perf hists: Use perf_hpp__format->width to calculate the column widths
> perf hists browser: Use perf_hpp__format functions
> perf gtk/browser: Use perf_hpp__format functions
>
> tools/perf/Makefile | 2 +
> tools/perf/bench/sched-pipe.c | 6 +-
> tools/perf/builtin-diff.c | 1 +
> tools/perf/ui/browsers/hists.c | 96 ++++++--
> tools/perf/ui/gtk/browser.c | 101 +++++++--
> tools/perf/ui/gtk/gtk.h | 1 +
> tools/perf/ui/gtk/setup.c | 1 +
> tools/perf/ui/hist.c | 389 ++++++++++++++++++++++++++++++++
> tools/perf/ui/setup.c | 8 +-
> tools/perf/ui/stdio/hist.c | 239 ++++----------------
> tools/perf/ui/tui/setup.c | 4 +
> tools/perf/util/annotate.c | 9 +-
> tools/perf/util/hist.c | 33 ---
> tools/perf/util/hist.h | 37 +++
> tools/perf/util/include/linux/kernel.h | 4 +
> tools/perf/util/probe-event.c | 12 +-
> tools/perf/util/symbol.h | 2 -
> 17 files changed, 665 insertions(+), 280 deletions(-)
> create mode 100644 tools/perf/ui/hist.c
Pulled, thanks Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 45+ messages in thread
* [GIT PULL 0/9] perf/core improvements and fixes
@ 2012-01-24 23:07 Arnaldo Carvalho de Melo
2012-01-26 11:16 ` Ingo Molnar
0 siblings, 1 reply; 45+ messages in thread
From: Arnaldo Carvalho de Melo @ 2012-01-24 23:07 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, David Ahern, David Daney,
Frederic Weisbecker, Jan Beulich, Joerg Roedel, Masami Hiramatsu,
Mike Galbraith, Namhyung Kim, Paul Mackerras, Peter Zijlstra,
Srikar Dronamraju, Stephane Eranian, arnaldo.melo
Hi Ingo,
This is a signed tag, please lemme know if everything went well.
The --uid feature works for root, we still need to sort out that
paranoia with some threads owned by a user that prevents 'perf --uid
non-root-user' to work for 'non-root-user'.
http://git.kernel.org/?p=linux/kernel/git/acme/linux.git;a=tag;h=ce9600c4c664ce7f97e8aa5e756b0b4ea5b017c7
looks ok to me, need just to improve on the commit log message, I'll get
used to it :-)
- Arnaldo
The following changes since commit 172d1b0b73256551f100fc00c69e356d047103f5:
perf tools: Fix compile error on x86_64 Ubuntu (2012-01-08 13:34:55 -0200)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux perf-core-for-mingo
for you to fetch changes up to f8f4b2872295dca88339ec0c403b2217b1197353:
perf tools: Fix strlen() bug in perf_event__synthesize_event_type() (2012-01-24 20:31:34 -0200)
----------------------------------------------------------------
perf/core improvements and fixes
----------------------------------------------------------------
Arnaldo Carvalho de Melo (2):
perf tools: Add fprintf methods for thread_map and cpu_map classes
perf tools: Introduce per user view
David Daney (1):
perf tools: Fix broken build by defining _GNU_SOURCE in Makefile
Jan Beulich (4):
perf bench: Make "default" memcpy() selection actually use glibc's implementation
perf bench: Also allow measuring alternative memcpy implementations
perf bench: Also allow measuring memset()
perf bench: Allow passing an iteration count to "bench mem mem{cpy,set}"
Srikar Dronamraju (1):
perf probe: Usability fixes
Stephane Eranian (1):
perf tools: Fix strlen() bug in perf_event__synthesize_event_type()
tools/perf/Documentation/perf-record.txt | 4 +
tools/perf/Documentation/perf-top.txt | 4 +
tools/perf/Makefile | 11 +-
tools/perf/bench/bench.h | 1 +
tools/perf/bench/mem-memcpy-x86-64-asm-def.h | 8 +
tools/perf/bench/mem-memcpy-x86-64-asm.S | 6 +-
tools/perf/bench/mem-memcpy.c | 11 +-
tools/perf/bench/mem-memset-arch.h | 12 +
tools/perf/bench/mem-memset-x86-64-asm-def.h | 12 +
tools/perf/bench/mem-memset-x86-64-asm.S | 6 +
tools/perf/bench/mem-memset.c | 298 ++++++++++++++++++++++++++
tools/perf/builtin-bench.c | 3 +
tools/perf/builtin-probe.c | 2 -
tools/perf/builtin-record.c | 12 +-
tools/perf/builtin-stat.c | 2 +-
tools/perf/builtin-test.c | 8 +-
tools/perf/builtin-top.c | 22 ++-
tools/perf/perf.h | 1 +
tools/perf/util/cpumap.c | 11 +
tools/perf/util/cpumap.h | 4 +
tools/perf/util/evlist.c | 6 +-
tools/perf/util/evlist.h | 2 +-
tools/perf/util/header.c | 2 +-
tools/perf/util/hist.h | 1 +
tools/perf/util/include/asm/dwarf2.h | 4 +-
tools/perf/util/probe-event.c | 8 +-
tools/perf/util/python.c | 10 +-
tools/perf/util/symbol.c | 1 -
tools/perf/util/thread_map.c | 109 +++++++++-
tools/perf/util/thread_map.h | 7 +-
tools/perf/util/top.c | 3 +
tools/perf/util/top.h | 2 +
tools/perf/util/trace-event-parse.c | 3 +-
tools/perf/util/ui/browsers/hists.c | 5 +-
tools/perf/util/ui/helpline.c | 1 -
tools/perf/util/usage.c | 39 ++++
tools/perf/util/util.h | 3 +-
37 files changed, 597 insertions(+), 47 deletions(-)
create mode 100644 tools/perf/bench/mem-memset-arch.h
create mode 100644 tools/perf/bench/mem-memset-x86-64-asm-def.h
create mode 100644 tools/perf/bench/mem-memset-x86-64-asm.S
create mode 100644 tools/perf/bench/mem-memset.c
^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [GIT PULL 0/9] perf/core improvements and fixes
2012-01-24 23:07 Arnaldo Carvalho de Melo
@ 2012-01-26 11:16 ` Ingo Molnar
0 siblings, 0 replies; 45+ messages in thread
From: Ingo Molnar @ 2012-01-26 11:16 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, David Ahern, David Daney, Frederic Weisbecker,
Jan Beulich, Joerg Roedel, Masami Hiramatsu, Mike Galbraith,
Namhyung Kim, Paul Mackerras, Peter Zijlstra, Srikar Dronamraju,
Stephane Eranian, arnaldo.melo
* Arnaldo Carvalho de Melo <acme@infradead.org> wrote:
> Hi Ingo,
>
> This is a signed tag, please lemme know if everything went well.
>
> The --uid feature works for root, we still need to
> sort out that paranoia with some threads owned by a user that
> prevents 'perf --uid non-root-user' to work for
> 'non-root-user'.
Just wondering what detail causes that failure - the whole point
of --uid mingo would be to enable nonprivileged users to do
'session wide' profiling, *especially* if paranoia is high.
So what does --uid do which perf record --pid 1234 wouldnt
already do? By all means --uid ought to be a fancy way of doing
a whole bunch of perf record --pid 1234 profiling sessions, at
once.
[ Btw, we should probably alias --user to --uid as well, as that
might be the intuitive thing people would typically use? ]
> http://git.kernel.org/?p=linux/kernel/git/acme/linux.git;a=tag;h=ce9600c4c664ce7f97e8aa5e756b0b4ea5b017c7
> looks ok to me, need just to improve on the commit log message, I'll get
> used to it :-)
>
> - Arnaldo
>
> The following changes since commit 172d1b0b73256551f100fc00c69e356d047103f5:
>
> perf tools: Fix compile error on x86_64 Ubuntu (2012-01-08 13:34:55 -0200)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux perf-core-for-mingo
>
> for you to fetch changes up to f8f4b2872295dca88339ec0c403b2217b1197353:
>
> perf tools: Fix strlen() bug in perf_event__synthesize_event_type() (2012-01-24 20:31:34 -0200)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes
>
> ----------------------------------------------------------------
Anyway, pulled, thanks a lot Arnaldo!
One detail: don't we want some of these fixes cherry-picked into
perf/urgent as well?
Thanks,
Ingo
^ permalink raw reply [flat|nested] 45+ messages in thread
end of thread, other threads:[~2017-04-01 10:44 UTC | newest]
Thread overview: 45+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-08-10 20:56 [GIT PULL 0/9] perf/core improvements and fixes Arnaldo Carvalho de Melo
2015-08-10 20:56 ` [PATCH 1/9] perf stat: Move perf_counts struct and functions into separate object Arnaldo Carvalho de Melo
2015-08-10 20:56 ` [PATCH 2/9] perf callchain: Move option parsing code to util.c Arnaldo Carvalho de Melo
2015-08-10 20:56 ` [PATCH 3/9] perf tools: Support full source file paths for srcline Arnaldo Carvalho de Melo
2015-08-10 20:56 ` [PATCH 4/9] perf tools: Unset perf_event_attr::freq when period term is set Arnaldo Carvalho de Melo
2015-08-10 20:56 ` [PATCH 5/9] perf hists: hist_entry__cmp() may use he_tmp.hists, initialize it Arnaldo Carvalho de Melo
2015-08-10 20:56 ` [PATCH 6/9] perf hists: Update the column width for the "srcline" sort key Arnaldo Carvalho de Melo
2015-08-10 20:56 ` [PATCH 7/9] perf report: Add support for srcfile " Arnaldo Carvalho de Melo
2015-08-11 2:31 ` Namhyung Kim
2015-08-11 13:36 ` Andi Kleen
2015-08-13 8:04 ` [tip:perf/core] perf sort: Check for SRCLINE_UNKNOWN case in " srcfile" processing tip-bot for Andi Kleen
2015-08-10 20:56 ` [PATCH 8/9] perf record: Support per-event freq term Arnaldo Carvalho de Melo
2015-08-10 20:56 ` [PATCH 9/9] perf evlist: Be more specific on -F/--freq Arnaldo Carvalho de Melo
2015-08-12 10:18 ` [GIT PULL 0/9] perf/core improvements and fixes Ingo Molnar
-- strict thread matches above, loose matches on Subject: below --
2017-04-01 2:10 Arnaldo Carvalho de Melo
2017-04-01 10:44 ` Ingo Molnar
2015-12-11 14:22 Arnaldo Carvalho de Melo
2015-12-14 8:32 ` Ingo Molnar
2015-09-23 1:57 Arnaldo Carvalho de Melo
2015-09-23 7:45 ` Ingo Molnar
2015-08-21 16:10 Arnaldo Carvalho de Melo
2015-08-22 6:47 ` Ingo Molnar
2014-06-19 16:38 Jiri Olsa
2014-06-03 20:36 Jiri Olsa
2014-06-05 8:45 ` Ingo Molnar
2014-05-28 13:20 Jiri Olsa
2012-10-26 14:31 Arnaldo Carvalho de Melo
2012-10-26 14:54 ` Ingo Molnar
2012-10-26 15:06 ` David Ahern
2012-10-26 15:31 ` Namhyung Kim
2012-10-26 15:34 ` Borislav Petkov
2012-10-26 16:31 ` Arnaldo Carvalho de Melo
2012-10-26 17:20 ` Borislav Petkov
2012-10-27 9:16 ` Namhyung Kim
2012-10-27 14:29 ` Arnaldo Carvalho de Melo
2012-10-27 17:12 ` stephane eranian
2012-10-26 17:05 ` Arnaldo Carvalho de Melo
2012-10-27 13:19 ` Ingo Molnar
2012-10-30 8:18 ` Ingo Molnar
2012-10-30 8:21 ` Peter Zijlstra
2012-10-30 9:14 ` Ingo Molnar
2012-09-08 20:36 Arnaldo Carvalho de Melo
2012-09-09 8:40 ` Ingo Molnar
2012-01-24 23:07 Arnaldo Carvalho de Melo
2012-01-26 11:16 ` 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).