* [GIT PULL 00/16] perf/core improvements and fixes
@ 2015-09-30 21:54 Arnaldo Carvalho de Melo
2015-09-30 21:54 ` [PATCH 01/16] tools: Fix shadowed declaration in err.h Arnaldo Carvalho de Melo
` (16 more replies)
0 siblings, 17 replies; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-09-30 21:54 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Borislav Petkov, Chandler Carruth, David Ahern, Dominik Dingel,
Frederic Weisbecker, He Kuang, H . Peter Anvin, Jiri Olsa,
linuxppc-dev, linux-tip-commits, Masami Hiramatsu, Matt Fleming,
Namhyung Kim, Naveen N . Rao, Peter Zijlstra, Raphael Beamonte,
Stephane Eranian, Sukadev Bhattiprolu, Thomas Gleixner,
Vinson Lee, Wang Nan, Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling,
- Arnaldo
The following changes since commit 9c17dbc6eb73bdd8a6aaea1baefd37ff78d86148:
Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-09-29 09:43:46 +0200)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo
for you to fetch changes up to 7f8d1ade1b19f684ed3a7c4fb1dc5d347127b438:
perf tools: By default use the most precise "cycles" hw counter available (2015-09-30 18:34:39 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
User visible:
- By default use the most precise "cycles" hw counter available, i.e.
when the user doesn't specify any event, it will try using cycles:ppp,
cycles:pp, etc (Arnaldo Carvalho de Melo)
- Remove blank lines, headers when piping output in 'perf list', so that it can
be sanely used with 'wc -l', etc (Arnaldo Carvalho de Melo)
- Amend documentation about max_stack and synthesized callchains (Adrian Hunter)
- Fix 'perf probe -l' for probes added to kernel module functions (Masami Hiramatsu)
Build fixes:
- Fix shadowed declarations that break the build on older distros (Jiri Olsa)
- Fix build break on powerpc due to sample_reg_masks (Sukadev Bhattiprolu)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Adrian Hunter (1):
perf report: Amend documentation about max_stack and synthesized callchains
Arnaldo Carvalho de Melo (7):
perf maps: Introduce maps__find_symbol_by_name()
perf machine: Use machine__kernel_map() thoroughly
perf machine: Add method for common kernel_map(FUNCTION) operation
tools lib symbol: Rename kallsyms2elf_type to kallsyms2elf_binding
tools lib symbol: Introduce kallsyms2elf_type
perf list: Remove blank lines, headers when piping output
perf tools: By default use the most precise "cycles" hw counter available
Jiri Olsa (2):
tools: Fix shadowed declaration in err.h
perf tools: Fix shadowed declaration in parse-events.c
Masami Hiramatsu (5):
perf probe: Fix to remove dot suffix from second or latter events
perf probe: Begin and end libdwfl report session correctly
perf probe: Show correct source lines of probes on kmodules
perf probe: Fix a segfault bug in debuginfo_cache
perf probe: Improve error message when %return is on inlined function
Sukadev Bhattiprolu (1):
perf tools: Fix build break on powerpc due to sample_reg_masks
tools/include/linux/err.h | 4 +-
tools/lib/symbol/kallsyms.c | 6 ++
tools/lib/symbol/kallsyms.h | 4 +-
tools/perf/Documentation/perf-report.txt | 2 +
tools/perf/builtin-kmem.c | 2 +-
tools/perf/builtin-list.c | 2 +-
tools/perf/builtin-report.c | 2 +-
tools/perf/tests/code-reading.c | 2 +-
tools/perf/tests/vmlinux-kallsyms.c | 4 +-
tools/perf/util/Build | 2 +-
tools/perf/util/event.c | 7 +--
tools/perf/util/evlist.c | 22 +++++++-
tools/perf/util/intel-pt.c | 2 +-
tools/perf/util/machine.c | 26 ++++-----
tools/perf/util/machine.h | 8 ++-
tools/perf/util/map.c | 21 ++++---
tools/perf/util/map.h | 2 +
tools/perf/util/parse-events.c | 53 +++++++++---------
tools/perf/util/perf_regs.c | 2 +
tools/perf/util/perf_regs.h | 1 +
tools/perf/util/pmu.c | 2 +-
tools/perf/util/probe-event.c | 96 ++++++++++++++++++++------------
tools/perf/util/probe-finder.c | 58 +++++++++++++++++--
tools/perf/util/symbol.c | 2 +-
24 files changed, 224 insertions(+), 108 deletions(-)
^ permalink raw reply [flat|nested] 59+ messages in thread
* [PATCH 01/16] tools: Fix shadowed declaration in err.h
2015-09-30 21:54 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo
@ 2015-09-30 21:54 ` Arnaldo Carvalho de Melo
2015-09-30 21:54 ` [PATCH 02/16] perf tools: Fix shadowed declaration in parse-events.c Arnaldo Carvalho de Melo
` (15 subsequent siblings)
16 siblings, 0 replies; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-09-30 21:54 UTC (permalink / raw)
To: Ingo Molnar; +Cc: linux-kernel, Jiri Olsa, Jiri Olsa, Arnaldo Carvalho de Melo
From: Jiri Olsa <jolsa@redhat.com>
The error variable breaks build on CentOS 6.7, due to collision with
global error symbol:
CC util/evlist.o
cc1: warnings being treated as errors
In file included from util/evlist.c:28:
tools/include/linux/err.h: In function ‘ERR_PTR’:
tools/include/linux/err.h:34: error: declaration of ‘error’ shadows a global declaration
util/util.h:135: error: shadowed declaration is here
Using 'error_' name instead to fix it.
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Link: http://lkml.kernel.org/n/tip-i9mdgdbrgauy3fe76s9rd125@git.kernel.org
Reported-by: Vinson Lee <vlee@twopensource.com>
[ Use 'error_' instead of 'err' to, visually, not diverge too much from include/linux/err.h ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/include/linux/err.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/include/linux/err.h b/tools/include/linux/err.h
index c9ada48f5156..bdc3dd8131d4 100644
--- a/tools/include/linux/err.h
+++ b/tools/include/linux/err.h
@@ -31,9 +31,9 @@
#define IS_ERR_VALUE(x) unlikely((x) >= (unsigned long)-MAX_ERRNO)
-static inline void * __must_check ERR_PTR(long error)
+static inline void * __must_check ERR_PTR(long error_)
{
- return (void *) error;
+ return (void *) error_;
}
static inline long __must_check PTR_ERR(__force const void *ptr)
--
2.1.0
^ permalink raw reply related [flat|nested] 59+ messages in thread
* [PATCH 02/16] perf tools: Fix shadowed declaration in parse-events.c
2015-09-30 21:54 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo
2015-09-30 21:54 ` [PATCH 01/16] tools: Fix shadowed declaration in err.h Arnaldo Carvalho de Melo
@ 2015-09-30 21:54 ` Arnaldo Carvalho de Melo
2015-09-30 21:54 ` [PATCH 03/16] perf maps: Introduce maps__find_symbol_by_name() Arnaldo Carvalho de Melo
` (14 subsequent siblings)
16 siblings, 0 replies; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-09-30 21:54 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Jiri Olsa, Jiri Olsa, David Ahern, He Kuang,
H. Peter Anvin, linux-tip-commits, Matt Fleming, Namhyung Kim,
Peter Zijlstra, Raphael Beamonte, Thomas Gleixner,
Arnaldo Carvalho de Melo
From: Jiri Olsa <jolsa@redhat.com>
The error variable breaks build on CentOS 6.7, due to a collision with a
global error symbol:
CC util/parse-events.o
cc1: warnings being treated as errors
util/parse-events.c:419: error: declaration of ‘error’ shadows a global
declaration
util/util.h:135: error: shadowed declaration is here
util/parse-events.c: In function ‘add_tracepoint_multi_event’:
...
Using different argument names instead to fix it.
Reported-by: Vinson Lee <vlee@twopensource.com>
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: He Kuang <hekuang@huawei.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: linux-tip-commits@vger.kernel.org
Cc: Matt Fleming <matt@codeblueprint.co.uk>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Raphael Beamonte <raphael.beamonte@gmail.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/20150929150531.GI27383@krava.redhat.com
[ Fix one more case, at line 770 ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/parse-events.c | 40 ++++++++++++++++++++--------------------
1 file changed, 20 insertions(+), 20 deletions(-)
diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c
index 5ffb356cbcc6..c1c64fb647aa 100644
--- a/tools/perf/util/parse-events.c
+++ b/tools/perf/util/parse-events.c
@@ -389,7 +389,7 @@ int parse_events_add_cache(struct list_head *list, int *idx,
return add_event(list, idx, &attr, name, NULL);
}
-static void tracepoint_error(struct parse_events_error *error, int err,
+static void tracepoint_error(struct parse_events_error *e, int err,
char *sys, char *name)
{
char help[BUFSIZ];
@@ -402,30 +402,30 @@ static void tracepoint_error(struct parse_events_error *error, int err,
switch (err) {
case EACCES:
- error->str = strdup("can't access trace events");
+ e->str = strdup("can't access trace events");
break;
case ENOENT:
- error->str = strdup("unknown tracepoint");
+ e->str = strdup("unknown tracepoint");
break;
default:
- error->str = strdup("failed to add tracepoint");
+ e->str = strdup("failed to add tracepoint");
break;
}
tracing_path__strerror_open_tp(err, help, sizeof(help), sys, name);
- error->help = strdup(help);
+ e->help = strdup(help);
}
static int add_tracepoint(struct list_head *list, int *idx,
char *sys_name, char *evt_name,
- struct parse_events_error *error __maybe_unused,
+ struct parse_events_error *err,
struct list_head *head_config)
{
struct perf_evsel *evsel;
evsel = perf_evsel__newtp_idx(sys_name, evt_name, (*idx)++);
if (IS_ERR(evsel)) {
- tracepoint_error(error, PTR_ERR(evsel), sys_name, evt_name);
+ tracepoint_error(err, PTR_ERR(evsel), sys_name, evt_name);
return PTR_ERR(evsel);
}
@@ -443,7 +443,7 @@ static int add_tracepoint(struct list_head *list, int *idx,
static int add_tracepoint_multi_event(struct list_head *list, int *idx,
char *sys_name, char *evt_name,
- struct parse_events_error *error,
+ struct parse_events_error *err,
struct list_head *head_config)
{
char evt_path[MAXPATHLEN];
@@ -454,7 +454,7 @@ static int add_tracepoint_multi_event(struct list_head *list, int *idx,
snprintf(evt_path, MAXPATHLEN, "%s/%s", tracing_events_path, sys_name);
evt_dir = opendir(evt_path);
if (!evt_dir) {
- tracepoint_error(error, errno, sys_name, evt_name);
+ tracepoint_error(err, errno, sys_name, evt_name);
return -1;
}
@@ -469,7 +469,7 @@ static int add_tracepoint_multi_event(struct list_head *list, int *idx,
continue;
ret = add_tracepoint(list, idx, sys_name, evt_ent->d_name,
- error, head_config);
+ err, head_config);
}
closedir(evt_dir);
@@ -478,19 +478,19 @@ static int add_tracepoint_multi_event(struct list_head *list, int *idx,
static int add_tracepoint_event(struct list_head *list, int *idx,
char *sys_name, char *evt_name,
- struct parse_events_error *error,
+ struct parse_events_error *err,
struct list_head *head_config)
{
return strpbrk(evt_name, "*?") ?
add_tracepoint_multi_event(list, idx, sys_name, evt_name,
- error, head_config) :
+ err, head_config) :
add_tracepoint(list, idx, sys_name, evt_name,
- error, head_config);
+ err, head_config);
}
static int add_tracepoint_multi_sys(struct list_head *list, int *idx,
char *sys_name, char *evt_name,
- struct parse_events_error *error,
+ struct parse_events_error *err,
struct list_head *head_config)
{
struct dirent *events_ent;
@@ -499,7 +499,7 @@ static int add_tracepoint_multi_sys(struct list_head *list, int *idx,
events_dir = opendir(tracing_events_path);
if (!events_dir) {
- tracepoint_error(error, errno, sys_name, evt_name);
+ tracepoint_error(err, errno, sys_name, evt_name);
return -1;
}
@@ -515,7 +515,7 @@ static int add_tracepoint_multi_sys(struct list_head *list, int *idx,
continue;
ret = add_tracepoint_event(list, idx, events_ent->d_name,
- evt_name, error, head_config);
+ evt_name, err, head_config);
}
closedir(events_dir);
@@ -767,23 +767,23 @@ do { \
int parse_events_add_tracepoint(struct list_head *list, int *idx,
char *sys, char *event,
- struct parse_events_error *error,
+ struct parse_events_error *err,
struct list_head *head_config)
{
if (head_config) {
struct perf_event_attr attr;
- if (config_attr(&attr, head_config, error,
+ if (config_attr(&attr, head_config, err,
config_term_tracepoint))
return -EINVAL;
}
if (strpbrk(sys, "*?"))
return add_tracepoint_multi_sys(list, idx, sys, event,
- error, head_config);
+ err, head_config);
else
return add_tracepoint_event(list, idx, sys, event,
- error, head_config);
+ err, head_config);
}
int parse_events_add_numeric(struct parse_events_evlist *data,
--
2.1.0
^ permalink raw reply related [flat|nested] 59+ messages in thread
* [PATCH 03/16] perf maps: Introduce maps__find_symbol_by_name()
2015-09-30 21:54 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo
2015-09-30 21:54 ` [PATCH 01/16] tools: Fix shadowed declaration in err.h Arnaldo Carvalho de Melo
2015-09-30 21:54 ` [PATCH 02/16] perf tools: Fix shadowed declaration in parse-events.c Arnaldo Carvalho de Melo
@ 2015-09-30 21:54 ` Arnaldo Carvalho de Melo
2015-09-30 21:54 ` [PATCH 04/16] perf report: Amend documentation about max_stack and synthesized callchains Arnaldo Carvalho de Melo
` (13 subsequent siblings)
16 siblings, 0 replies; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-09-30 21:54 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, Wang Nan
From: Arnaldo Carvalho de Melo <acme@redhat.com>
Out of map_groups__find_symbol_by_name(), so that we can turn this later
one first into a call to maps__find_symbol_by_name(MAP__FUNCTION) +
MAP__VARIABLE, and then to just one call, we'll merge MAP__FUNCTION with
MAP__VARIABLE maps, to simplify the code.
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>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-pvkar0jacqn92g148u9sqttt@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/map.c | 19 +++++++++++++------
tools/perf/util/map.h | 2 ++
2 files changed, 15 insertions(+), 6 deletions(-)
diff --git a/tools/perf/util/map.c b/tools/perf/util/map.c
index b1c475d9b240..622c2c9a1e65 100644
--- a/tools/perf/util/map.c
+++ b/tools/perf/util/map.c
@@ -553,13 +553,9 @@ struct symbol *map_groups__find_symbol(struct map_groups *mg,
return NULL;
}
-struct symbol *map_groups__find_symbol_by_name(struct map_groups *mg,
- enum map_type type,
- const char *name,
- struct map **mapp,
- symbol_filter_t filter)
+struct symbol *maps__find_symbol_by_name(struct maps *maps, const char *name,
+ struct map **mapp, symbol_filter_t filter)
{
- struct maps *maps = &mg->maps[type];
struct symbol *sym;
struct rb_node *nd;
@@ -583,6 +579,17 @@ out:
return sym;
}
+struct symbol *map_groups__find_symbol_by_name(struct map_groups *mg,
+ enum map_type type,
+ const char *name,
+ struct map **mapp,
+ symbol_filter_t filter)
+{
+ struct symbol *sym = maps__find_symbol_by_name(&mg->maps[type], name, mapp, filter);
+
+ return sym;
+}
+
int map_groups__find_ams(struct addr_map_symbol *ams, symbol_filter_t filter)
{
if (ams->addr < ams->map->start || ams->addr >= ams->map->end) {
diff --git a/tools/perf/util/map.h b/tools/perf/util/map.h
index 57829e89b78b..7309d64ce39e 100644
--- a/tools/perf/util/map.h
+++ b/tools/perf/util/map.h
@@ -190,6 +190,8 @@ void maps__remove(struct maps *maps, struct map *map);
struct map *maps__find(struct maps *maps, u64 addr);
struct map *maps__first(struct maps *maps);
struct map *map__next(struct map *map);
+struct symbol *maps__find_symbol_by_name(struct maps *maps, const char *name,
+ struct map **mapp, symbol_filter_t filter);
void map_groups__init(struct map_groups *mg, struct machine *machine);
void map_groups__exit(struct map_groups *mg);
int map_groups__clone(struct map_groups *mg,
--
2.1.0
^ permalink raw reply related [flat|nested] 59+ messages in thread
* [PATCH 04/16] perf report: Amend documentation about max_stack and synthesized callchains
2015-09-30 21:54 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (2 preceding siblings ...)
2015-09-30 21:54 ` [PATCH 03/16] perf maps: Introduce maps__find_symbol_by_name() Arnaldo Carvalho de Melo
@ 2015-09-30 21:54 ` Arnaldo Carvalho de Melo
2015-09-30 21:55 ` [PATCH 05/16] perf tools: Fix build break on powerpc due to sample_reg_masks Arnaldo Carvalho de Melo
` (12 subsequent siblings)
16 siblings, 0 replies; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-09-30 21:54 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Adrian Hunter, Jiri Olsa, Arnaldo Carvalho de Melo
From: Adrian Hunter <adrian.hunter@intel.com>
The --max_stack option was added as an optimization to reduce processing time,
so people specifying --max-stack might get a increased processing time if
combined with synthesized callchains, but otherwise no real harm.
A warning about setting both --max_stack and the synthesized callchains max
depth seems like overkill. Amend the documentation.
Reported-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Link: http://lkml.kernel.org/r/560A5155.4060105@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/Documentation/perf-report.txt | 2 ++
1 file changed, 2 insertions(+)
diff --git a/tools/perf/Documentation/perf-report.txt b/tools/perf/Documentation/perf-report.txt
index b941d5e07e28..ce499035e6d8 100644
--- a/tools/perf/Documentation/perf-report.txt
+++ b/tools/perf/Documentation/perf-report.txt
@@ -205,6 +205,8 @@ OPTIONS
beyond the specified depth will be ignored. This is a trade-off
between information loss and faster processing especially for
workloads that can have a very long callchain stack.
+ Note that when using the --itrace option the synthesized callchain size
+ will override this value if the synthesized callchain size is bigger.
Default: 127
--
2.1.0
^ permalink raw reply related [flat|nested] 59+ messages in thread
* [PATCH 05/16] perf tools: Fix build break on powerpc due to sample_reg_masks
2015-09-30 21:54 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (3 preceding siblings ...)
2015-09-30 21:54 ` [PATCH 04/16] perf report: Amend documentation about max_stack and synthesized callchains Arnaldo Carvalho de Melo
@ 2015-09-30 21:55 ` Arnaldo Carvalho de Melo
2015-09-30 21:55 ` [PATCH 06/16] perf machine: Use machine__kernel_map() thoroughly Arnaldo Carvalho de Melo
` (11 subsequent siblings)
16 siblings, 0 replies; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-09-30 21:55 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Sukadev Bhattiprolu, Dominik Dingel, Naveen N. Rao,
Stephane Eranian, linuxppc-dev, Arnaldo Carvalho de Melo
From: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
The perf_regs.c file does not get built on Powerpc as CONFIG_PERF_REGS
is false. So the weak definition for 'sample_regs_masks' doesn't get
picked up.
Adding perf_regs.o to util/Build unconditionally, exposes a redefinition
error for 'perf_reg_value()' function (due to the static inline version
in util/perf_regs.h). So use #ifdef HAVE_PERF_REGS_SUPPORT' around that
function.
Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: Dominik Dingel <dingel@linux.vnet.ibm.com>
Cc: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Cc: Stephane Eranian <eranian@google.com>
Cc: linuxppc-dev@ozlabs.org
Link: http://lkml.kernel.org/r/20150930182836.GA27858@us.ibm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/Build | 2 +-
tools/perf/util/perf_regs.c | 2 ++
tools/perf/util/perf_regs.h | 1 +
3 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/tools/perf/util/Build b/tools/perf/util/Build
index 4bc7a9ab45b1..9217119c4108 100644
--- a/tools/perf/util/Build
+++ b/tools/perf/util/Build
@@ -18,6 +18,7 @@ libperf-y += levenshtein.o
libperf-y += llvm-utils.o
libperf-y += parse-options.o
libperf-y += parse-events.o
+libperf-y += perf_regs.o
libperf-y += path.o
libperf-y += rbtree.o
libperf-y += bitmap.o
@@ -104,7 +105,6 @@ libperf-$(CONFIG_LIBBABELTRACE) += data-convert-bt.o
libperf-y += scripting-engines/
-libperf-$(CONFIG_PERF_REGS) += perf_regs.o
libperf-$(CONFIG_ZLIB) += zlib.o
libperf-$(CONFIG_LZMA) += lzma.o
diff --git a/tools/perf/util/perf_regs.c b/tools/perf/util/perf_regs.c
index 885e8ac83997..6b8eb13e14e4 100644
--- a/tools/perf/util/perf_regs.c
+++ b/tools/perf/util/perf_regs.c
@@ -6,6 +6,7 @@ const struct sample_reg __weak sample_reg_masks[] = {
SMPL_REG_END
};
+#ifdef HAVE_PERF_REGS_SUPPORT
int perf_reg_value(u64 *valp, struct regs_dump *regs, int id)
{
int i, idx = 0;
@@ -29,3 +30,4 @@ out:
*valp = regs->cache_regs[id];
return 0;
}
+#endif
diff --git a/tools/perf/util/perf_regs.h b/tools/perf/util/perf_regs.h
index 2984dcc54d67..679d6e493962 100644
--- a/tools/perf/util/perf_regs.h
+++ b/tools/perf/util/perf_regs.h
@@ -2,6 +2,7 @@
#define __PERF_REGS_H
#include <linux/types.h>
+#include <linux/compiler.h>
struct regs_dump;
--
2.1.0
^ permalink raw reply related [flat|nested] 59+ messages in thread
* [PATCH 06/16] perf machine: Use machine__kernel_map() thoroughly
2015-09-30 21:54 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (4 preceding siblings ...)
2015-09-30 21:55 ` [PATCH 05/16] perf tools: Fix build break on powerpc due to sample_reg_masks Arnaldo Carvalho de Melo
@ 2015-09-30 21:55 ` Arnaldo Carvalho de Melo
2015-09-30 21:55 ` [PATCH 07/16] perf machine: Add method for common kernel_map(FUNCTION) operation Arnaldo Carvalho de Melo
` (10 subsequent siblings)
16 siblings, 0 replies; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-09-30 21:55 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
David Ahern, Jiri Olsa, Namhyung Kim, Wang Nan
From: Arnaldo Carvalho de Melo <acme@redhat.com>
In places where we were using its open coded equivalent.
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-khkdugcdoqy3tkszm3jdxgbe@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/builtin-kmem.c | 2 +-
tools/perf/builtin-report.c | 2 +-
tools/perf/tests/code-reading.c | 2 +-
tools/perf/util/event.c | 7 +++----
tools/perf/util/machine.c | 23 ++++++++++++-----------
tools/perf/util/map.c | 2 +-
tools/perf/util/probe-event.c | 7 ++++---
7 files changed, 23 insertions(+), 22 deletions(-)
diff --git a/tools/perf/builtin-kmem.c b/tools/perf/builtin-kmem.c
index 23b1faaaa4cc..b122c4e0818e 100644
--- a/tools/perf/builtin-kmem.c
+++ b/tools/perf/builtin-kmem.c
@@ -329,7 +329,7 @@ static int build_alloc_func_list(void)
return -EINVAL;
}
- kernel_map = machine->vmlinux_maps[MAP__FUNCTION];
+ kernel_map = machine__kernel_map(machine, MAP__FUNCTION)
if (map__load(kernel_map, NULL) < 0) {
pr_err("cannot load kernel map\n");
return -ENOENT;
diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
index 37c9f5125887..7962605b3576 100644
--- a/tools/perf/builtin-report.c
+++ b/tools/perf/builtin-report.c
@@ -387,7 +387,7 @@ static int perf_evlist__tty_browse_hists(struct perf_evlist *evlist,
static void report__warn_kptr_restrict(const struct report *rep)
{
- struct map *kernel_map = rep->session->machines.host.vmlinux_maps[MAP__FUNCTION];
+ struct map *kernel_map = machine__kernel_map(&rep->session->machines.host, MAP__FUNCTION);
struct kmap *kernel_kmap = kernel_map ? map__kmap(kernel_map) : NULL;
if (kernel_map == NULL ||
diff --git a/tools/perf/tests/code-reading.c b/tools/perf/tests/code-reading.c
index 2d21183bd661..47017a8aa685 100644
--- a/tools/perf/tests/code-reading.c
+++ b/tools/perf/tests/code-reading.c
@@ -473,7 +473,7 @@ static int do_test_code_reading(bool try_kcore)
symbol_conf.kallsyms_name = "/proc/kallsyms";
/* Load kernel map */
- map = machine->vmlinux_maps[MAP__FUNCTION];
+ map = machine__kernel_map(machine, MAP__FUNCTION);
ret = map__load(map, NULL);
if (ret < 0) {
pr_debug("map__load failed\n");
diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c
index b1bb348ec3b6..281ab7f87446 100644
--- a/tools/perf/util/event.c
+++ b/tools/perf/util/event.c
@@ -649,12 +649,12 @@ int perf_event__synthesize_kernel_mmap(struct perf_tool *tool,
size_t size;
const char *mmap_name;
char name_buff[PATH_MAX];
- struct map *map;
+ struct map *map = machine__kernel_map(machine, MAP__FUNCTION);
struct kmap *kmap;
int err;
union perf_event *event;
- if (machine->vmlinux_maps[0] == NULL)
+ if (map == NULL)
return -1;
/*
@@ -680,7 +680,6 @@ int perf_event__synthesize_kernel_mmap(struct perf_tool *tool,
event->header.misc = PERF_RECORD_MISC_GUEST_KERNEL;
}
- map = machine->vmlinux_maps[MAP__FUNCTION];
kmap = map__kmap(map);
size = snprintf(event->mmap.filename, sizeof(event->mmap.filename),
"%s%s", mmap_name, kmap->ref_reloc_sym->name) + 1;
@@ -1008,7 +1007,7 @@ int perf_event__preprocess_sample(const union perf_event *event,
* it now.
*/
if (cpumode == PERF_RECORD_MISC_KERNEL &&
- machine->vmlinux_maps[MAP__FUNCTION] == NULL)
+ machine__kernel_map(machine, MAP__FUNCTION) == NULL)
machine__create_kernel_maps(machine);
thread__find_addr_map(thread, cpumode, MAP__FUNCTION, sample->ip, al);
diff --git a/tools/perf/util/machine.c b/tools/perf/util/machine.c
index fd1efeafb343..d71b7dcf4579 100644
--- a/tools/perf/util/machine.c
+++ b/tools/perf/util/machine.c
@@ -625,7 +625,7 @@ size_t machine__fprintf_vmlinux_path(struct machine *machine, FILE *fp)
{
int i;
size_t printed = 0;
- struct dso *kdso = machine->vmlinux_maps[MAP__FUNCTION]->dso;
+ struct dso *kdso = machine__kernel_map(machine, MAP__FUNCTION)->dso;
if (kdso->has_build_id) {
char filename[PATH_MAX];
@@ -741,6 +741,7 @@ int __machine__create_kernel_maps(struct machine *machine, struct dso *kernel)
for (type = 0; type < MAP__NR_TYPES; ++type) {
struct kmap *kmap;
+ struct map *map;
machine->vmlinux_maps[type] = map__new2(start, kernel, type);
if (machine->vmlinux_maps[type] == NULL)
@@ -749,13 +750,13 @@ int __machine__create_kernel_maps(struct machine *machine, struct dso *kernel)
machine->vmlinux_maps[type]->map_ip =
machine->vmlinux_maps[type]->unmap_ip =
identity__map_ip;
- kmap = map__kmap(machine->vmlinux_maps[type]);
+ map = machine__kernel_map(machine, type);
+ kmap = map__kmap(map);
if (!kmap)
return -1;
kmap->kmaps = &machine->kmaps;
- map_groups__insert(&machine->kmaps,
- machine->vmlinux_maps[type]);
+ map_groups__insert(&machine->kmaps, map);
}
return 0;
@@ -767,13 +768,13 @@ void machine__destroy_kernel_maps(struct machine *machine)
for (type = 0; type < MAP__NR_TYPES; ++type) {
struct kmap *kmap;
+ struct map *map = machine__kernel_map(machine, type);
- if (machine->vmlinux_maps[type] == NULL)
+ if (map == NULL)
continue;
- kmap = map__kmap(machine->vmlinux_maps[type]);
- map_groups__remove(&machine->kmaps,
- machine->vmlinux_maps[type]);
+ kmap = map__kmap(map);
+ map_groups__remove(&machine->kmaps, map);
if (kmap && kmap->ref_reloc_sym) {
/*
* ref_reloc_sym is shared among all maps, so free just
@@ -867,7 +868,7 @@ int machines__create_kernel_maps(struct machines *machines, pid_t pid)
int machine__load_kallsyms(struct machine *machine, const char *filename,
enum map_type type, symbol_filter_t filter)
{
- struct map *map = machine->vmlinux_maps[type];
+ struct map *map = machine__kernel_map(machine, MAP__FUNCTION);
int ret = dso__load_kallsyms(map->dso, filename, map, filter);
if (ret > 0) {
@@ -886,7 +887,7 @@ int machine__load_kallsyms(struct machine *machine, const char *filename,
int machine__load_vmlinux_path(struct machine *machine, enum map_type type,
symbol_filter_t filter)
{
- struct map *map = machine->vmlinux_maps[type];
+ struct map *map = machine__kernel_map(machine, MAP__FUNCTION);
int ret = dso__load_vmlinux_path(map->dso, map, filter);
if (ret > 0)
@@ -1244,7 +1245,7 @@ static int machine__process_kernel_mmap_event(struct machine *machine,
/*
* preload dso of guest kernel and modules
*/
- dso__load(kernel, machine->vmlinux_maps[MAP__FUNCTION],
+ dso__load(kernel, machine__kernel_map(machine, MAP__FUNCTION),
NULL);
}
}
diff --git a/tools/perf/util/map.c b/tools/perf/util/map.c
index 622c2c9a1e65..2a9d859d30b9 100644
--- a/tools/perf/util/map.c
+++ b/tools/perf/util/map.c
@@ -235,7 +235,7 @@ struct map *map__new2(u64 start, struct dso *dso, enum map_type type)
*/
bool __map__is_kernel(const struct map *map)
{
- return map->groups->machine->vmlinux_maps[map->type] == map;
+ return machine__kernel_map(map->groups->machine, map->type) == map;
}
static void map__exit(struct map *map)
diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
index 7fb0533ab18c..a0b3f3c886f0 100644
--- a/tools/perf/util/probe-event.c
+++ b/tools/perf/util/probe-event.c
@@ -126,11 +126,12 @@ static struct ref_reloc_sym *kernel_get_ref_reloc_sym(void)
{
/* kmap->ref_reloc_sym should be set if host_machine is initialized */
struct kmap *kmap;
+ struct map *map = machine__kernel_map(host_machine, MAP__FUNCTION);
- if (map__load(host_machine->vmlinux_maps[MAP__FUNCTION], NULL) < 0)
+ if (map__load(map, NULL) < 0)
return NULL;
- kmap = map__kmap(host_machine->vmlinux_maps[MAP__FUNCTION]);
+ kmap = map__kmap(map);
if (!kmap)
return NULL;
return kmap->ref_reloc_sym;
@@ -281,7 +282,7 @@ static int kernel_get_module_dso(const char *module, struct dso **pdso)
return -ENOENT;
}
- map = host_machine->vmlinux_maps[MAP__FUNCTION];
+ map = machine__kernel_map(host_machine, MAP__FUNCTION);
dso = map->dso;
vmlinux_name = symbol_conf.vmlinux_name;
--
2.1.0
^ permalink raw reply related [flat|nested] 59+ messages in thread
* [PATCH 07/16] perf machine: Add method for common kernel_map(FUNCTION) operation
2015-09-30 21:54 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (5 preceding siblings ...)
2015-09-30 21:55 ` [PATCH 06/16] perf machine: Use machine__kernel_map() thoroughly Arnaldo Carvalho de Melo
@ 2015-09-30 21:55 ` Arnaldo Carvalho de Melo
2015-09-30 21:55 ` [PATCH 08/16] tools lib symbol: Rename kallsyms2elf_type to kallsyms2elf_binding Arnaldo Carvalho de Melo
` (9 subsequent siblings)
16 siblings, 0 replies; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-09-30 21:55 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
David Ahern, Jiri Olsa, Namhyung Kim, Wang Nan
From: Arnaldo Carvalho de Melo <acme@redhat.com>
And it is also a step in the direction of killing the separation of data
and text maps in map_groups.
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-rrds86kb3wx5wk8v38v56gw8@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/builtin-kmem.c | 2 +-
tools/perf/builtin-report.c | 2 +-
tools/perf/tests/code-reading.c | 2 +-
tools/perf/tests/vmlinux-kallsyms.c | 4 ++--
tools/perf/util/event.c | 4 ++--
tools/perf/util/intel-pt.c | 2 +-
tools/perf/util/machine.c | 15 +++++++--------
tools/perf/util/machine.h | 8 +++++++-
tools/perf/util/map.c | 2 +-
tools/perf/util/probe-event.c | 4 ++--
10 files changed, 25 insertions(+), 20 deletions(-)
diff --git a/tools/perf/builtin-kmem.c b/tools/perf/builtin-kmem.c
index b122c4e0818e..93ce665f976f 100644
--- a/tools/perf/builtin-kmem.c
+++ b/tools/perf/builtin-kmem.c
@@ -329,7 +329,7 @@ static int build_alloc_func_list(void)
return -EINVAL;
}
- kernel_map = machine__kernel_map(machine, MAP__FUNCTION)
+ kernel_map = machine__kernel_map(machine);
if (map__load(kernel_map, NULL) < 0) {
pr_err("cannot load kernel map\n");
return -ENOENT;
diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
index 7962605b3576..b5623639f67d 100644
--- a/tools/perf/builtin-report.c
+++ b/tools/perf/builtin-report.c
@@ -387,7 +387,7 @@ static int perf_evlist__tty_browse_hists(struct perf_evlist *evlist,
static void report__warn_kptr_restrict(const struct report *rep)
{
- struct map *kernel_map = machine__kernel_map(&rep->session->machines.host, MAP__FUNCTION);
+ struct map *kernel_map = machine__kernel_map(&rep->session->machines.host);
struct kmap *kernel_kmap = kernel_map ? map__kmap(kernel_map) : NULL;
if (kernel_map == NULL ||
diff --git a/tools/perf/tests/code-reading.c b/tools/perf/tests/code-reading.c
index 47017a8aa685..49b1959dda41 100644
--- a/tools/perf/tests/code-reading.c
+++ b/tools/perf/tests/code-reading.c
@@ -473,7 +473,7 @@ static int do_test_code_reading(bool try_kcore)
symbol_conf.kallsyms_name = "/proc/kallsyms";
/* Load kernel map */
- map = machine__kernel_map(machine, MAP__FUNCTION);
+ map = machine__kernel_map(machine);
ret = map__load(map, NULL);
if (ret < 0) {
pr_debug("map__load failed\n");
diff --git a/tools/perf/tests/vmlinux-kallsyms.c b/tools/perf/tests/vmlinux-kallsyms.c
index b34c5fc829ae..d677e018e504 100644
--- a/tools/perf/tests/vmlinux-kallsyms.c
+++ b/tools/perf/tests/vmlinux-kallsyms.c
@@ -68,7 +68,7 @@ int test__vmlinux_matches_kallsyms(void)
* to see if the running kernel was relocated by checking if it has the
* same value in the vmlinux file we load.
*/
- kallsyms_map = machine__kernel_map(&kallsyms, type);
+ kallsyms_map = machine__kernel_map(&kallsyms);
/*
* Step 5:
@@ -80,7 +80,7 @@ int test__vmlinux_matches_kallsyms(void)
goto out;
}
- vmlinux_map = machine__kernel_map(&vmlinux, type);
+ vmlinux_map = machine__kernel_map(&vmlinux);
/*
* Step 6:
diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c
index 281ab7f87446..cb98b5af9e17 100644
--- a/tools/perf/util/event.c
+++ b/tools/perf/util/event.c
@@ -649,7 +649,7 @@ int perf_event__synthesize_kernel_mmap(struct perf_tool *tool,
size_t size;
const char *mmap_name;
char name_buff[PATH_MAX];
- struct map *map = machine__kernel_map(machine, MAP__FUNCTION);
+ struct map *map = machine__kernel_map(machine);
struct kmap *kmap;
int err;
union perf_event *event;
@@ -1007,7 +1007,7 @@ int perf_event__preprocess_sample(const union perf_event *event,
* it now.
*/
if (cpumode == PERF_RECORD_MISC_KERNEL &&
- machine__kernel_map(machine, MAP__FUNCTION) == NULL)
+ machine__kernel_map(machine) == NULL)
machine__create_kernel_maps(machine);
thread__find_addr_map(thread, cpumode, MAP__FUNCTION, sample->ip, al);
diff --git a/tools/perf/util/intel-pt.c b/tools/perf/util/intel-pt.c
index 03ff072b5993..97f963a3dcb9 100644
--- a/tools/perf/util/intel-pt.c
+++ b/tools/perf/util/intel-pt.c
@@ -1268,7 +1268,7 @@ static u64 intel_pt_switch_ip(struct intel_pt *pt, u64 *ptss_ip)
if (ptss_ip)
*ptss_ip = 0;
- map = machine__kernel_map(machine, MAP__FUNCTION);
+ map = machine__kernel_map(machine);
if (!map)
return 0;
diff --git a/tools/perf/util/machine.c b/tools/perf/util/machine.c
index d71b7dcf4579..76fe167c359e 100644
--- a/tools/perf/util/machine.c
+++ b/tools/perf/util/machine.c
@@ -625,7 +625,7 @@ size_t machine__fprintf_vmlinux_path(struct machine *machine, FILE *fp)
{
int i;
size_t printed = 0;
- struct dso *kdso = machine__kernel_map(machine, MAP__FUNCTION)->dso;
+ struct dso *kdso = machine__kernel_map(machine)->dso;
if (kdso->has_build_id) {
char filename[PATH_MAX];
@@ -750,7 +750,7 @@ int __machine__create_kernel_maps(struct machine *machine, struct dso *kernel)
machine->vmlinux_maps[type]->map_ip =
machine->vmlinux_maps[type]->unmap_ip =
identity__map_ip;
- map = machine__kernel_map(machine, type);
+ map = __machine__kernel_map(machine, type);
kmap = map__kmap(map);
if (!kmap)
return -1;
@@ -768,7 +768,7 @@ void machine__destroy_kernel_maps(struct machine *machine)
for (type = 0; type < MAP__NR_TYPES; ++type) {
struct kmap *kmap;
- struct map *map = machine__kernel_map(machine, type);
+ struct map *map = __machine__kernel_map(machine, type);
if (map == NULL)
continue;
@@ -868,7 +868,7 @@ int machines__create_kernel_maps(struct machines *machines, pid_t pid)
int machine__load_kallsyms(struct machine *machine, const char *filename,
enum map_type type, symbol_filter_t filter)
{
- struct map *map = machine__kernel_map(machine, MAP__FUNCTION);
+ struct map *map = machine__kernel_map(machine);
int ret = dso__load_kallsyms(map->dso, filename, map, filter);
if (ret > 0) {
@@ -887,7 +887,7 @@ int machine__load_kallsyms(struct machine *machine, const char *filename,
int machine__load_vmlinux_path(struct machine *machine, enum map_type type,
symbol_filter_t filter)
{
- struct map *map = machine__kernel_map(machine, MAP__FUNCTION);
+ struct map *map = machine__kernel_map(machine);
int ret = dso__load_vmlinux_path(map->dso, map, filter);
if (ret > 0)
@@ -1245,8 +1245,7 @@ static int machine__process_kernel_mmap_event(struct machine *machine,
/*
* preload dso of guest kernel and modules
*/
- dso__load(kernel, machine__kernel_map(machine, MAP__FUNCTION),
- NULL);
+ dso__load(kernel, machine__kernel_map(machine), NULL);
}
}
return 0;
@@ -1998,7 +1997,7 @@ int machine__set_current_tid(struct machine *machine, int cpu, pid_t pid,
int machine__get_kernel_start(struct machine *machine)
{
- struct map *map = machine__kernel_map(machine, MAP__FUNCTION);
+ struct map *map = machine__kernel_map(machine);
int err = 0;
/*
diff --git a/tools/perf/util/machine.h b/tools/perf/util/machine.h
index 9dfc4281f940..2c2b443df5ba 100644
--- a/tools/perf/util/machine.h
+++ b/tools/perf/util/machine.h
@@ -48,11 +48,17 @@ struct machine {
};
static inline
-struct map *machine__kernel_map(struct machine *machine, enum map_type type)
+struct map *__machine__kernel_map(struct machine *machine, enum map_type type)
{
return machine->vmlinux_maps[type];
}
+static inline
+struct map *machine__kernel_map(struct machine *machine)
+{
+ return __machine__kernel_map(machine, MAP__FUNCTION);
+}
+
int machine__get_kernel_start(struct machine *machine);
static inline u64 machine__kernel_start(struct machine *machine)
diff --git a/tools/perf/util/map.c b/tools/perf/util/map.c
index 2a9d859d30b9..4e38c396a897 100644
--- a/tools/perf/util/map.c
+++ b/tools/perf/util/map.c
@@ -235,7 +235,7 @@ struct map *map__new2(u64 start, struct dso *dso, enum map_type type)
*/
bool __map__is_kernel(const struct map *map)
{
- return machine__kernel_map(map->groups->machine, map->type) == map;
+ return __machine__kernel_map(map->groups->machine, map->type) == map;
}
static void map__exit(struct map *map)
diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
index a0b3f3c886f0..8b9a6807dab4 100644
--- a/tools/perf/util/probe-event.c
+++ b/tools/perf/util/probe-event.c
@@ -126,7 +126,7 @@ static struct ref_reloc_sym *kernel_get_ref_reloc_sym(void)
{
/* kmap->ref_reloc_sym should be set if host_machine is initialized */
struct kmap *kmap;
- struct map *map = machine__kernel_map(host_machine, MAP__FUNCTION);
+ struct map *map = machine__kernel_map(host_machine);
if (map__load(map, NULL) < 0)
return NULL;
@@ -282,7 +282,7 @@ static int kernel_get_module_dso(const char *module, struct dso **pdso)
return -ENOENT;
}
- map = machine__kernel_map(host_machine, MAP__FUNCTION);
+ map = machine__kernel_map(host_machine);
dso = map->dso;
vmlinux_name = symbol_conf.vmlinux_name;
--
2.1.0
^ permalink raw reply related [flat|nested] 59+ messages in thread
* [PATCH 08/16] tools lib symbol: Rename kallsyms2elf_type to kallsyms2elf_binding
2015-09-30 21:54 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (6 preceding siblings ...)
2015-09-30 21:55 ` [PATCH 07/16] perf machine: Add method for common kernel_map(FUNCTION) operation Arnaldo Carvalho de Melo
@ 2015-09-30 21:55 ` Arnaldo Carvalho de Melo
2015-09-30 21:55 ` [PATCH 09/16] tools lib symbol: Introduce kallsyms2elf_type Arnaldo Carvalho de Melo
` (8 subsequent siblings)
16 siblings, 0 replies; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-09-30 21:55 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
David Ahern, Jiri Olsa, Namhyung Kim, Wang Nan
From: Arnaldo Carvalho de Melo <acme@redhat.com>
It is about binding, not type, we have just a letter in kallsyms that
should map both for the ELF type (STT_FUNC, etc) and to the ELF
symbol binding (STB_WEAK, STB_GLOBAL, etc), so rename it now before
introducing kallsyms2_elf_type()
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-uu5vj343ms1q2wm55690on6v@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/lib/symbol/kallsyms.h | 2 +-
tools/perf/util/symbol.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/lib/symbol/kallsyms.h b/tools/lib/symbol/kallsyms.h
index 6084f5e18b3c..bb86c5b76ee8 100644
--- a/tools/lib/symbol/kallsyms.h
+++ b/tools/lib/symbol/kallsyms.h
@@ -9,7 +9,7 @@
#define KSYM_NAME_LEN 256
#endif
-static inline u8 kallsyms2elf_type(char type)
+static inline u8 kallsyms2elf_binding(char type)
{
if (type == 'W')
return STB_WEAK;
diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c
index 1f97ffb158a6..bcda43bee4d4 100644
--- a/tools/perf/util/symbol.c
+++ b/tools/perf/util/symbol.c
@@ -624,7 +624,7 @@ static int map__process_kallsym_symbol(void *arg, const char *name,
* symbols, setting length to 0, and rely on
* symbols__fixup_end() to fix it up.
*/
- sym = symbol__new(start, 0, kallsyms2elf_type(type), name);
+ sym = symbol__new(start, 0, kallsyms2elf_binding(type), name);
if (sym == NULL)
return -ENOMEM;
/*
--
2.1.0
^ permalink raw reply related [flat|nested] 59+ messages in thread
* [PATCH 09/16] tools lib symbol: Introduce kallsyms2elf_type
2015-09-30 21:54 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (7 preceding siblings ...)
2015-09-30 21:55 ` [PATCH 08/16] tools lib symbol: Rename kallsyms2elf_type to kallsyms2elf_binding Arnaldo Carvalho de Melo
@ 2015-09-30 21:55 ` Arnaldo Carvalho de Melo
2015-09-30 21:55 ` [PATCH 10/16] perf probe: Fix to remove dot suffix from second or latter events Arnaldo Carvalho de Melo
` (7 subsequent siblings)
16 siblings, 0 replies; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-09-30 21:55 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
David Ahern, Jiri Olsa, Namhyung Kim, Wang Nan
From: Arnaldo Carvalho de Melo <acme@redhat.com>
Map 't', 'T' (text, local, global), 'w' and 'W' (weak text, local,
global) as STT_FUNC, and the rest as STT_OBJECT
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-sbwcixulpc5v1xuxn3xvm0nn@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/lib/symbol/kallsyms.c | 6 ++++++
tools/lib/symbol/kallsyms.h | 2 ++
2 files changed, 8 insertions(+)
diff --git a/tools/lib/symbol/kallsyms.c b/tools/lib/symbol/kallsyms.c
index 18bc271a4bbc..5e431077fcd6 100644
--- a/tools/lib/symbol/kallsyms.c
+++ b/tools/lib/symbol/kallsyms.c
@@ -2,6 +2,12 @@
#include <stdio.h>
#include <stdlib.h>
+u8 kallsyms2elf_type(char type)
+{
+ type = tolower(type);
+ return (type == 't' || type == 'w') ? STT_FUNC : STT_OBJECT;
+}
+
int kallsyms__parse(const char *filename, void *arg,
int (*process_symbol)(void *arg, const char *name,
char type, u64 start))
diff --git a/tools/lib/symbol/kallsyms.h b/tools/lib/symbol/kallsyms.h
index bb86c5b76ee8..4071316a766e 100644
--- a/tools/lib/symbol/kallsyms.h
+++ b/tools/lib/symbol/kallsyms.h
@@ -17,6 +17,8 @@ static inline u8 kallsyms2elf_binding(char type)
return isupper(type) ? STB_GLOBAL : STB_LOCAL;
}
+u8 kallsyms2elf_type(char type);
+
int kallsyms__parse(const char *filename, void *arg,
int (*process_symbol)(void *arg, const char *name,
char type, u64 start));
--
2.1.0
^ permalink raw reply related [flat|nested] 59+ messages in thread
* [PATCH 10/16] perf probe: Fix to remove dot suffix from second or latter events
2015-09-30 21:54 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (8 preceding siblings ...)
2015-09-30 21:55 ` [PATCH 09/16] tools lib symbol: Introduce kallsyms2elf_type Arnaldo Carvalho de Melo
@ 2015-09-30 21:55 ` Arnaldo Carvalho de Melo
2015-09-30 21:55 ` [PATCH 11/16] perf probe: Begin and end libdwfl report session correctly Arnaldo Carvalho de Melo
` (6 subsequent siblings)
16 siblings, 0 replies; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-09-30 21:55 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Masami Hiramatsu, Jiri Olsa, Namhyung Kim,
Wang Nan, Arnaldo Carvalho de Melo
From: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Fix to remove dot suffix (e.g. .const, .isra) from the second or latter
events which has suffix numbers.
Since the previous commit 35a23ff928b0 ("perf probe: Cut off the gcc
optimization postfixes from function name") didn't care about the suffix
numbered events, therefore we'll have an error when we add additional
events on the same dot suffix functions.
e.g.
----
# ./perf probe -f -a get_sigframe.isra.2.constprop.3 \
-a get_sigframe.isra.2.constprop.3
Failed to write event: Invalid argument
Error: Failed to add events.
----
This fixes above issue as below:
----
# ./perf probe -f -a get_sigframe.isra.2.constprop.3 \
-a get_sigframe.isra.2.constprop.3
Added new events:
probe:get_sigframe (on get_sigframe.isra.2.constprop.3)
probe:get_sigframe_1 (on get_sigframe.isra.2.constprop.3)
You can now use it in all perf tools, such as:
perf record -e probe:get_sigframe_1 -aR sleep 1
----
Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/r/20150930164130.3733.26573.stgit@localhost.localdomain
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/probe-event.c | 33 ++++++++++++++++++++-------------
1 file changed, 20 insertions(+), 13 deletions(-)
diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
index 8b9a6807dab4..5d68f68797a9 100644
--- a/tools/perf/util/probe-event.c
+++ b/tools/perf/util/probe-event.c
@@ -2289,36 +2289,41 @@ static int get_new_event_name(char *buf, size_t len, const char *base,
struct strlist *namelist, bool allow_suffix)
{
int i, ret;
- char *p;
+ char *p, *nbase;
if (*base == '.')
base++;
+ nbase = strdup(base);
+ if (!nbase)
+ return -ENOMEM;
+
+ /* Cut off the dot suffixes (e.g. .const, .isra)*/
+ p = strchr(nbase, '.');
+ if (p && p != nbase)
+ *p = '\0';
- /* Try no suffix */
- ret = e_snprintf(buf, len, "%s", base);
+ /* Try no suffix number */
+ ret = e_snprintf(buf, len, "%s", nbase);
if (ret < 0) {
pr_debug("snprintf() failed: %d\n", ret);
- return ret;
+ goto out;
}
- /* Cut off the postfixes (e.g. .const, .isra)*/
- p = strchr(buf, '.');
- if (p && p != buf)
- *p = '\0';
if (!strlist__has_entry(namelist, buf))
- return 0;
+ goto out;
if (!allow_suffix) {
pr_warning("Error: event \"%s\" already exists. "
- "(Use -f to force duplicates.)\n", base);
- return -EEXIST;
+ "(Use -f to force duplicates.)\n", buf);
+ ret = -EEXIST;
+ goto out;
}
/* Try to add suffix */
for (i = 1; i < MAX_EVENT_INDEX; i++) {
- ret = e_snprintf(buf, len, "%s_%d", base, i);
+ ret = e_snprintf(buf, len, "%s_%d", nbase, i);
if (ret < 0) {
pr_debug("snprintf() failed: %d\n", ret);
- return ret;
+ goto out;
}
if (!strlist__has_entry(namelist, buf))
break;
@@ -2328,6 +2333,8 @@ static int get_new_event_name(char *buf, size_t len, const char *base,
ret = -ERANGE;
}
+out:
+ free(nbase);
return ret;
}
--
2.1.0
^ permalink raw reply related [flat|nested] 59+ messages in thread
* [PATCH 11/16] perf probe: Begin and end libdwfl report session correctly
2015-09-30 21:54 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (9 preceding siblings ...)
2015-09-30 21:55 ` [PATCH 10/16] perf probe: Fix to remove dot suffix from second or latter events Arnaldo Carvalho de Melo
@ 2015-09-30 21:55 ` Arnaldo Carvalho de Melo
2015-09-30 21:55 ` [PATCH 12/16] perf probe: Show correct source lines of probes on kmodules Arnaldo Carvalho de Melo
` (5 subsequent siblings)
16 siblings, 0 replies; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-09-30 21:55 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Masami Hiramatsu, Jiri Olsa, Namhyung Kim,
Wang Nan, Arnaldo Carvalho de Melo
From: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Fix a trival bug about libdwfl usage of the report session, it should
explicitly begin and end a report session around dwfl_report_offline().
Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/r/20150930164128.3733.59876.stgit@localhost.localdomain
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/probe-finder.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/tools/perf/util/probe-finder.c b/tools/perf/util/probe-finder.c
index 29c43c0680a8..35f905f4f34c 100644
--- a/tools/perf/util/probe-finder.c
+++ b/tools/perf/util/probe-finder.c
@@ -70,6 +70,7 @@ static int debuginfo__init_offline_dwarf(struct debuginfo *dbg,
if (!dbg->dwfl)
goto error;
+ dwfl_report_begin(dbg->dwfl);
dbg->mod = dwfl_report_offline(dbg->dwfl, "", "", fd);
if (!dbg->mod)
goto error;
@@ -78,6 +79,8 @@ static int debuginfo__init_offline_dwarf(struct debuginfo *dbg,
if (!dbg->dbg)
goto error;
+ dwfl_report_end(dbg->dwfl, NULL, NULL);
+
return 0;
error:
if (dbg->dwfl)
--
2.1.0
^ permalink raw reply related [flat|nested] 59+ messages in thread
* [PATCH 12/16] perf probe: Show correct source lines of probes on kmodules
2015-09-30 21:54 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (10 preceding siblings ...)
2015-09-30 21:55 ` [PATCH 11/16] perf probe: Begin and end libdwfl report session correctly Arnaldo Carvalho de Melo
@ 2015-09-30 21:55 ` Arnaldo Carvalho de Melo
2015-09-30 21:55 ` [PATCH 13/16] perf probe: Fix a segfault bug in debuginfo_cache Arnaldo Carvalho de Melo
` (4 subsequent siblings)
16 siblings, 0 replies; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-09-30 21:55 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Masami Hiramatsu, Jiri Olsa, Namhyung Kim,
Wang Nan, Arnaldo Carvalho de Melo
From: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Perf probe always failed to find appropriate line numbers because of
failing to find .text start address offset from debuginfo.
e.g.
----
# ./perf probe -m pcspkr pcspkr_event:5
Added new events:
probe:pcspkr_event (on pcspkr_event:5 in pcspkr)
probe:pcspkr_event_1 (on pcspkr_event:5 in pcspkr)
You can now use it in all perf tools, such as:
perf record -e probe:pcspkr_event_1 -aR sleep 1
# ./perf probe -l
Failed to find debug information for address ffffffffa031f006
Failed to find debug information for address ffffffffa031f016
probe:pcspkr_event (on pcspkr_event+6 in pcspkr)
probe:pcspkr_event_1 (on pcspkr_event+22 in pcspkr)
----
This fixes the above issue as below.
1. Get the relative address of the symbol in .text by using
map->start.
2. Adjust the address by adding the offset of .text section
in the kernel module binary.
With this fix, perf probe -l shows lines correctly.
----
# ./perf probe -l
probe:pcspkr_event (on pcspkr_event:5@drivers/input/misc/pcspkr.c in pcspkr)
probe:pcspkr_event_1 (on pcspkr_event:5@drivers/input/misc/pcspkr.c in pcspkr)
----
Reported-by: Arnaldo Carvalho de Melo <acme@kernel.org>
Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/r/20150930164132.3733.24643.stgit@localhost.localdomain
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/probe-event.c | 35 +++++++++++++++++++++++------------
tools/perf/util/probe-finder.c | 42 ++++++++++++++++++++++++++++++++++++++++++
2 files changed, 65 insertions(+), 12 deletions(-)
diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
index 5d68f68797a9..65be284823d5 100644
--- a/tools/perf/util/probe-event.c
+++ b/tools/perf/util/probe-event.c
@@ -137,7 +137,8 @@ static struct ref_reloc_sym *kernel_get_ref_reloc_sym(void)
return kmap->ref_reloc_sym;
}
-static u64 kernel_get_symbol_address_by_name(const char *name, bool reloc)
+static int kernel_get_symbol_address_by_name(const char *name, u64 *addr,
+ bool reloc, bool reladdr)
{
struct ref_reloc_sym *reloc_sym;
struct symbol *sym;
@@ -146,12 +147,14 @@ static u64 kernel_get_symbol_address_by_name(const char *name, bool reloc)
/* ref_reloc_sym is just a label. Need a special fix*/
reloc_sym = kernel_get_ref_reloc_sym();
if (reloc_sym && strcmp(name, reloc_sym->name) == 0)
- return (reloc) ? reloc_sym->addr : reloc_sym->unrelocated_addr;
+ *addr = (reloc) ? reloc_sym->addr : reloc_sym->unrelocated_addr;
else {
sym = __find_kernel_function_by_name(name, &map);
- if (sym)
- return map->unmap_ip(map, sym->start) -
- ((reloc) ? 0 : map->reloc);
+ if (!sym)
+ return -ENOENT;
+ *addr = map->unmap_ip(map, sym->start) -
+ ((reloc) ? 0 : map->reloc) -
+ ((reladdr) ? map->start : 0);
}
return 0;
}
@@ -245,12 +248,14 @@ static void clear_probe_trace_events(struct probe_trace_event *tevs, int ntevs)
static bool kprobe_blacklist__listed(unsigned long address);
static bool kprobe_warn_out_range(const char *symbol, unsigned long address)
{
- u64 etext_addr;
+ u64 etext_addr = 0;
+ int ret;
/* Get the address of _etext for checking non-probable text symbol */
- etext_addr = kernel_get_symbol_address_by_name("_etext", false);
+ ret = kernel_get_symbol_address_by_name("_etext", &etext_addr,
+ false, false);
- if (etext_addr != 0 && etext_addr < address)
+ if (ret == 0 && etext_addr < address)
pr_warning("%s is out of .text, skip it.\n", symbol);
else if (kprobe_blacklist__listed(address))
pr_warning("%s is blacklisted function, skip it.\n", symbol);
@@ -517,8 +522,10 @@ static int find_perf_probe_point_from_dwarf(struct probe_trace_point *tp,
goto error;
addr += stext;
} else if (tp->symbol) {
- addr = kernel_get_symbol_address_by_name(tp->symbol, false);
- if (addr == 0)
+ /* If the module is given, this returns relative address */
+ ret = kernel_get_symbol_address_by_name(tp->symbol, &addr,
+ false, !!tp->module);
+ if (ret != 0)
goto error;
addr += tp->offset;
}
@@ -1884,8 +1891,12 @@ static int find_perf_probe_point_from_map(struct probe_trace_point *tp,
goto out;
sym = map__find_symbol(map, addr, NULL);
} else {
- if (tp->symbol)
- addr = kernel_get_symbol_address_by_name(tp->symbol, true);
+ if (tp->symbol && !addr) {
+ ret = kernel_get_symbol_address_by_name(tp->symbol,
+ &addr, true, false);
+ if (ret < 0)
+ goto out;
+ }
if (addr) {
addr += tp->offset;
sym = __find_kernel_function(addr, &map);
diff --git a/tools/perf/util/probe-finder.c b/tools/perf/util/probe-finder.c
index 35f905f4f34c..f0708ffd5e07 100644
--- a/tools/perf/util/probe-finder.c
+++ b/tools/perf/util/probe-finder.c
@@ -1402,6 +1402,41 @@ int debuginfo__find_available_vars_at(struct debuginfo *dbg,
return (ret < 0) ? ret : af.nvls;
}
+/* For the kernel module, we need a special code to get a DIE */
+static int debuginfo__get_text_offset(struct debuginfo *dbg, Dwarf_Addr *offs)
+{
+ int n, i;
+ Elf32_Word shndx;
+ Elf_Scn *scn;
+ Elf *elf;
+ GElf_Shdr mem, *shdr;
+ const char *p;
+
+ elf = dwfl_module_getelf(dbg->mod, &dbg->bias);
+ if (!elf)
+ return -EINVAL;
+
+ /* Get the number of relocations */
+ n = dwfl_module_relocations(dbg->mod);
+ if (n < 0)
+ return -ENOENT;
+ /* Search the relocation related .text section */
+ for (i = 0; i < n; i++) {
+ p = dwfl_module_relocation_info(dbg->mod, i, &shndx);
+ if (strcmp(p, ".text") == 0) {
+ /* OK, get the section header */
+ scn = elf_getscn(elf, shndx);
+ if (!scn)
+ return -ENOENT;
+ shdr = gelf_getshdr(scn, &mem);
+ if (!shdr)
+ return -ENOENT;
+ *offs = shdr->sh_addr;
+ }
+ }
+ return 0;
+}
+
/* Reverse search */
int debuginfo__find_probe_point(struct debuginfo *dbg, unsigned long addr,
struct perf_probe_point *ppt)
@@ -1410,9 +1445,16 @@ int debuginfo__find_probe_point(struct debuginfo *dbg, unsigned long addr,
Dwarf_Addr _addr = 0, baseaddr = 0;
const char *fname = NULL, *func = NULL, *basefunc = NULL, *tmp;
int baseline = 0, lineno = 0, ret = 0;
+ bool reloc = false;
+retry:
/* Find cu die */
if (!dwarf_addrdie(dbg->dbg, (Dwarf_Addr)addr, &cudie)) {
+ if (!reloc && debuginfo__get_text_offset(dbg, &baseaddr) == 0) {
+ addr += baseaddr;
+ reloc = true;
+ goto retry;
+ }
pr_warning("Failed to find debug information for address %lx\n",
addr);
ret = -EINVAL;
--
2.1.0
^ permalink raw reply related [flat|nested] 59+ messages in thread
* [PATCH 13/16] perf probe: Fix a segfault bug in debuginfo_cache
2015-09-30 21:54 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (11 preceding siblings ...)
2015-09-30 21:55 ` [PATCH 12/16] perf probe: Show correct source lines of probes on kmodules Arnaldo Carvalho de Melo
@ 2015-09-30 21:55 ` Arnaldo Carvalho de Melo
2015-09-30 21:55 ` [PATCH 14/16] perf probe: Improve error message when %return is on inlined function Arnaldo Carvalho de Melo
` (3 subsequent siblings)
16 siblings, 0 replies; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-09-30 21:55 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Masami Hiramatsu, Jiri Olsa, Namhyung Kim,
Wang Nan, Arnaldo Carvalho de Melo
From: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
perf probe --list will get a segfault if the first kprobe event is on a
module and the second or latter one is on the kernel.
e.g.
----
# ./perf probe -q -m pcspkr pcspkr_event
# ./perf probe -q vfs_read
# ./perf probe -l
Segmentation fault (core dumped)
----
This is because the debuginfo_cache fails to handle NULL module name,
which causes segfault on strcmp. (Note that strcmp("something", NULL)
always causes segfault)
To fix this debuginfo_cache__open always translates the NULL module name
to "kernel" (this is correct, because NULL module name means opening the
debuginfo for the kernel)
----
# ./perf probe -l
probe:pcspkr_event (on pcspkr_event@drivers/input/misc/pcspkr.c
in pcspkr)
probe:vfs_read (on vfs_read@ksrc/linux-3/fs/read_write.c)
----
Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/r/20150930164135.3733.23993.stgit@localhost.localdomain
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/probe-event.c | 21 ++++++++++++---------
1 file changed, 12 insertions(+), 9 deletions(-)
diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
index 65be284823d5..3010abc071ff 100644
--- a/tools/perf/util/probe-event.c
+++ b/tools/perf/util/probe-event.c
@@ -441,19 +441,22 @@ static char *debuginfo_cache_path;
static struct debuginfo *debuginfo_cache__open(const char *module, bool silent)
{
- if ((debuginfo_cache_path && !strcmp(debuginfo_cache_path, module)) ||
- (!debuginfo_cache_path && !module && debuginfo_cache))
+ const char *path = module;
+
+ /* If the module is NULL, it should be the kernel. */
+ if (!module)
+ path = "kernel";
+
+ if (debuginfo_cache_path && !strcmp(debuginfo_cache_path, path))
goto out;
/* Copy module path */
free(debuginfo_cache_path);
- if (module) {
- debuginfo_cache_path = strdup(module);
- if (!debuginfo_cache_path) {
- debuginfo__delete(debuginfo_cache);
- debuginfo_cache = NULL;
- goto out;
- }
+ debuginfo_cache_path = strdup(path);
+ if (!debuginfo_cache_path) {
+ debuginfo__delete(debuginfo_cache);
+ debuginfo_cache = NULL;
+ goto out;
}
debuginfo_cache = open_debuginfo(module, silent);
--
2.1.0
^ permalink raw reply related [flat|nested] 59+ messages in thread
* [PATCH 14/16] perf probe: Improve error message when %return is on inlined function
2015-09-30 21:54 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (12 preceding siblings ...)
2015-09-30 21:55 ` [PATCH 13/16] perf probe: Fix a segfault bug in debuginfo_cache Arnaldo Carvalho de Melo
@ 2015-09-30 21:55 ` Arnaldo Carvalho de Melo
2015-09-30 21:55 ` [PATCH 15/16] perf list: Remove blank lines, headers when piping output Arnaldo Carvalho de Melo
` (2 subsequent siblings)
16 siblings, 0 replies; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-09-30 21:55 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Masami Hiramatsu, Jiri Olsa, Namhyung Kim,
Wang Nan, Arnaldo Carvalho de Melo
From: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
perf probe shows more precisely message when it finds given
%return target function is inlined.
Without this fix:
----
# ./perf probe -V getname_flags%return
Return probe must be on the head of a real function.
Debuginfo analysis failed.
Error: Failed to show vars.
----
With this fix:
----
# ./perf probe -V getname_flags%return
Failed to find "getname_flags%return",
because getname_flags is an inlined function and has no return point.
Debuginfo analysis failed.
Error: Failed to show vars.
----
Suggested-by: Arnaldo Carvalho de Melo <acme@kernel.org>
Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/r/20150930164137.3733.55055.stgit@localhost.localdomain
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/probe-finder.c | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/tools/perf/util/probe-finder.c b/tools/perf/util/probe-finder.c
index f0708ffd5e07..bd8f03de5e40 100644
--- a/tools/perf/util/probe-finder.c
+++ b/tools/perf/util/probe-finder.c
@@ -594,6 +594,7 @@ static int find_variable(Dwarf_Die *sc_die, struct probe_finder *pf)
/* Convert subprogram DIE to trace point */
static int convert_to_trace_point(Dwarf_Die *sp_die, Dwfl_Module *mod,
Dwarf_Addr paddr, bool retprobe,
+ const char *function,
struct probe_trace_point *tp)
{
Dwarf_Addr eaddr, highaddr;
@@ -637,8 +638,10 @@ static int convert_to_trace_point(Dwarf_Die *sp_die, Dwfl_Module *mod,
/* Return probe must be on the head of a subprogram */
if (retprobe) {
if (eaddr != paddr) {
- pr_warning("Return probe must be on the head of"
- " a real function.\n");
+ pr_warning("Failed to find \"%s%%return\",\n"
+ " because %s is an inlined function and"
+ " has no return point.\n", function,
+ function);
return -EINVAL;
}
tp->retprobe = true;
@@ -1178,6 +1181,7 @@ static int add_probe_trace_event(Dwarf_Die *sc_die, struct probe_finder *pf)
{
struct trace_event_finder *tf =
container_of(pf, struct trace_event_finder, pf);
+ struct perf_probe_point *pp = &pf->pev->point;
struct probe_trace_event *tev;
struct perf_probe_arg *args;
int ret, i;
@@ -1192,7 +1196,7 @@ static int add_probe_trace_event(Dwarf_Die *sc_die, struct probe_finder *pf)
/* Trace point should be converted from subprogram DIE */
ret = convert_to_trace_point(&pf->sp_die, tf->mod, pf->addr,
- pf->pev->point.retprobe, &tev->point);
+ pp->retprobe, pp->function, &tev->point);
if (ret < 0)
return ret;
@@ -1322,6 +1326,7 @@ static int add_available_vars(Dwarf_Die *sc_die, struct probe_finder *pf)
{
struct available_var_finder *af =
container_of(pf, struct available_var_finder, pf);
+ struct perf_probe_point *pp = &pf->pev->point;
struct variable_list *vl;
Dwarf_Die die_mem;
int ret;
@@ -1335,7 +1340,7 @@ static int add_available_vars(Dwarf_Die *sc_die, struct probe_finder *pf)
/* Trace point should be converted from subprogram DIE */
ret = convert_to_trace_point(&pf->sp_die, af->mod, pf->addr,
- pf->pev->point.retprobe, &vl->point);
+ pp->retprobe, pp->function, &vl->point);
if (ret < 0)
return ret;
--
2.1.0
^ permalink raw reply related [flat|nested] 59+ messages in thread
* [PATCH 15/16] perf list: Remove blank lines, headers when piping output
2015-09-30 21:54 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (13 preceding siblings ...)
2015-09-30 21:55 ` [PATCH 14/16] perf probe: Improve error message when %return is on inlined function Arnaldo Carvalho de Melo
@ 2015-09-30 21:55 ` Arnaldo Carvalho de Melo
2015-09-30 21:55 ` [PATCH 16/16] perf tools: By default use the most precise "cycles" hw counter available Arnaldo Carvalho de Melo
2015-10-01 7:05 ` [GIT PULL 00/16] perf/core improvements and fixes Ingo Molnar
16 siblings, 0 replies; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-09-30 21:55 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, Wang Nan
From: Arnaldo Carvalho de Melo <acme@redhat.com>
So that one can, for instance, use it with wc -l:
# perf list *:*write* | wc -l
60
Or to look for the "bio" tracepoints, without 'perf list' headers:
# perf list *:*bio* | head
block:block_bio_backmerge [Tracepoint event]
block:block_bio_bounce [Tracepoint event]
block:block_bio_complete [Tracepoint event]
block:block_bio_frontmerge [Tracepoint event]
block:block_bio_queue [Tracepoint event]
block:block_bio_remap [Tracepoint event]
#
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>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-ts7sc0x8u4io4cifzkup4j44@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/builtin-list.c | 2 +-
tools/perf/util/parse-events.c | 13 +++++++------
tools/perf/util/pmu.c | 2 +-
3 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/tools/perf/builtin-list.c b/tools/perf/builtin-list.c
index af5bd0514108..602414040344 100644
--- a/tools/perf/builtin-list.c
+++ b/tools/perf/builtin-list.c
@@ -36,7 +36,7 @@ int cmd_list(int argc, const char **argv, const char *prefix __maybe_unused)
setup_pager();
- if (!raw_dump)
+ if (!raw_dump && pager_in_use())
printf("\nList of pre-defined events (to be used in -e):\n\n");
if (argc == 0) {
diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c
index c1c64fb647aa..5d0cfce2599b 100644
--- a/tools/perf/util/parse-events.c
+++ b/tools/perf/util/parse-events.c
@@ -1534,7 +1534,7 @@ restart:
printf(" %-50s [%s]\n", evt_list[evt_i++],
event_type_descriptors[PERF_TYPE_TRACEPOINT]);
}
- if (evt_num)
+ if (evt_num && pager_in_use())
printf("\n");
out_free:
@@ -1690,7 +1690,7 @@ restart:
printf(" %-50s [%s]\n", evt_list[evt_i++],
event_type_descriptors[PERF_TYPE_HW_CACHE]);
}
- if (evt_num)
+ if (evt_num && pager_in_use())
printf("\n");
out_free:
@@ -1763,7 +1763,7 @@ restart:
}
printf(" %-50s [%s]\n", evt_list[evt_i++], event_type_descriptors[type]);
}
- if (evt_num)
+ if (evt_num && pager_in_use())
printf("\n");
out_free:
@@ -1804,13 +1804,14 @@ void print_events(const char *event_glob, bool name_only)
printf(" %-50s [%s]\n",
"cpu/t1=v1[,t2=v2,t3 ...]/modifier",
event_type_descriptors[PERF_TYPE_RAW]);
- printf(" (see 'man perf-list' on how to encode it)\n");
- printf("\n");
+ if (pager_in_use())
+ printf(" (see 'man perf-list' on how to encode it)\n\n");
printf(" %-50s [%s]\n",
"mem:<addr>[/len][:access]",
event_type_descriptors[PERF_TYPE_BREAKPOINT]);
- printf("\n");
+ if (pager_in_use())
+ printf("\n");
}
print_tracepoint_events(NULL, NULL, name_only);
diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c
index ac42c97be9e4..41a356ba3cfe 100644
--- a/tools/perf/util/pmu.c
+++ b/tools/perf/util/pmu.c
@@ -1026,7 +1026,7 @@ void print_pmu_events(const char *event_glob, bool name_only)
printf(" %-50s [Kernel PMU event]\n", aliases[j]);
printed++;
}
- if (printed)
+ if (printed && pager_in_use())
printf("\n");
out_free:
for (j = 0; j < len; j++)
--
2.1.0
^ permalink raw reply related [flat|nested] 59+ messages in thread
* [PATCH 16/16] perf tools: By default use the most precise "cycles" hw counter available
2015-09-30 21:54 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (14 preceding siblings ...)
2015-09-30 21:55 ` [PATCH 15/16] perf list: Remove blank lines, headers when piping output Arnaldo Carvalho de Melo
@ 2015-09-30 21:55 ` Arnaldo Carvalho de Melo
2015-10-01 7:05 ` [GIT PULL 00/16] perf/core improvements and fixes Ingo Molnar
16 siblings, 0 replies; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-09-30 21:55 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Borislav Petkov, Chandler Carruth, David Ahern,
Frederic Weisbecker, Jiri Olsa, Namhyung Kim, Stephane Eranian,
Wang Nan
From: Arnaldo Carvalho de Melo <acme@redhat.com>
If the user doesn't specify any event, try the most precise "cycles"
available, i.e. start by "cycles:ppp" and go on removing "p" till it
works.
E.g.
$ perf record usleep 1
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.017 MB perf.data (11 samples) ]
$ perf evlist
cycles:pp
$ perf evlist -v
cycles:pp: size: 112, { sample_period, sample_freq }: 4000, sample_type:
IP|TID|TIME|PERIOD, disabled: 1, inherit: 1, mmap: 1, comm: 1, freq: 1,
enable_on_exec: 1, task: 1, precise_ip: 2, sample_id_all: 1,
exclude_guest: 1, mmap2: 1, comm_exec: 1
$ grep 'model name' /proc/cpuinfo | head -1
model name : Intel(R) Core(TM) i7-3667U CPU @ 2.00GHz
$
When 'cycles' appears explicitely is specified this will not be tried,
i.e. the user has full control of the level of precision to be used:
$ perf record -e cycles usleep 1
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.016 MB perf.data (9 samples) ]
$ perf evlist
cycles
$ perf evlist -v
cycles: size: 112, { sample_period, sample_freq }: 4000, sample_type:
IP|TID|TIME|PERIOD, disabled: 1, inherit: 1, mmap: 1, comm: 1, freq: 1,
enable_on_exec: 1, task: 1, sample_id_all: 1, exclude_guest: 1, mmap2:
1, comm_exec: 1
$
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Borislav Petkov <bp@suse.de>
Cc: Chandler Carruth <chandlerc@gmail.com>
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>
Cc: Wang Nan <wangnan0@huawei.com>
Link: https://www.youtube.com/watch?v=nXaxk27zwlk
Link: http://lkml.kernel.org/n/tip-b1ywebmt22pi78vjxau01wth@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/evlist.c | 22 +++++++++++++++++++---
1 file changed, 19 insertions(+), 3 deletions(-)
diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c
index 89546228b8ed..e7e195d867ea 100644
--- a/tools/perf/util/evlist.c
+++ b/tools/perf/util/evlist.c
@@ -205,6 +205,20 @@ void perf_evlist__set_leader(struct perf_evlist *evlist)
}
}
+static void perf_event_attr__set_max_precise_ip(struct perf_event_attr *attr)
+{
+ attr->precise_ip = 3;
+
+ while (attr->precise_ip != 0) {
+ int fd = sys_perf_event_open(attr, 0, -1, -1, 0);
+ if (fd != -1) {
+ close(fd);
+ break;
+ }
+ --attr->precise_ip;
+ }
+}
+
int perf_evlist__add_default(struct perf_evlist *evlist)
{
struct perf_event_attr attr = {
@@ -215,13 +229,15 @@ int perf_evlist__add_default(struct perf_evlist *evlist)
event_attr_init(&attr);
+ perf_event_attr__set_max_precise_ip(&attr);
+
evsel = perf_evsel__new(&attr);
if (evsel == NULL)
goto error;
- /* use strdup() because free(evsel) assumes name is allocated */
- evsel->name = strdup("cycles");
- if (!evsel->name)
+ /* use asprintf() because free(evsel) assumes name is allocated */
+ if (asprintf(&evsel->name, "cycles%.*s",
+ attr.precise_ip ? attr.precise_ip + 1 : 0, ":ppp") < 0)
goto error_free;
perf_evlist__add(evlist, evsel);
--
2.1.0
^ permalink raw reply related [flat|nested] 59+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes
2015-09-30 21:54 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (15 preceding siblings ...)
2015-09-30 21:55 ` [PATCH 16/16] perf tools: By default use the most precise "cycles" hw counter available Arnaldo Carvalho de Melo
@ 2015-10-01 7:05 ` Ingo Molnar
16 siblings, 0 replies; 59+ messages in thread
From: Ingo Molnar @ 2015-10-01 7:05 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Adrian Hunter, Borislav Petkov, Chandler Carruth,
David Ahern, Dominik Dingel, Frederic Weisbecker, He Kuang,
H . Peter Anvin, Jiri Olsa, linuxppc-dev, linux-tip-commits,
Masami Hiramatsu, Matt Fleming, Namhyung Kim, Naveen N . Rao,
Peter Zijlstra, Raphael Beamonte, Stephane Eranian,
Sukadev Bhattiprolu, Thomas Gleixner, Vinson Lee, Wang Nan,
Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Hi Ingo,
>
> Please consider pulling,
>
> - Arnaldo
>
> The following changes since commit 9c17dbc6eb73bdd8a6aaea1baefd37ff78d86148:
>
> Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-09-29 09:43:46 +0200)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo
>
> for you to fetch changes up to 7f8d1ade1b19f684ed3a7c4fb1dc5d347127b438:
>
> perf tools: By default use the most precise "cycles" hw counter available (2015-09-30 18:34:39 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> User visible:
>
> - By default use the most precise "cycles" hw counter available, i.e.
> when the user doesn't specify any event, it will try using cycles:ppp,
> cycles:pp, etc (Arnaldo Carvalho de Melo)
That looks really useful!
> - Remove blank lines, headers when piping output in 'perf list', so that it can
> be sanely used with 'wc -l', etc (Arnaldo Carvalho de Melo)
>
> - Amend documentation about max_stack and synthesized callchains (Adrian Hunter)
>
> - Fix 'perf probe -l' for probes added to kernel module functions (Masami Hiramatsu)
>
> Build fixes:
>
> - Fix shadowed declarations that break the build on older distros (Jiri Olsa)
>
> - Fix build break on powerpc due to sample_reg_masks (Sukadev Bhattiprolu)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Adrian Hunter (1):
> perf report: Amend documentation about max_stack and synthesized callchains
>
> Arnaldo Carvalho de Melo (7):
> perf maps: Introduce maps__find_symbol_by_name()
> perf machine: Use machine__kernel_map() thoroughly
> perf machine: Add method for common kernel_map(FUNCTION) operation
> tools lib symbol: Rename kallsyms2elf_type to kallsyms2elf_binding
> tools lib symbol: Introduce kallsyms2elf_type
> perf list: Remove blank lines, headers when piping output
> perf tools: By default use the most precise "cycles" hw counter available
>
> Jiri Olsa (2):
> tools: Fix shadowed declaration in err.h
> perf tools: Fix shadowed declaration in parse-events.c
>
> Masami Hiramatsu (5):
> perf probe: Fix to remove dot suffix from second or latter events
> perf probe: Begin and end libdwfl report session correctly
> perf probe: Show correct source lines of probes on kmodules
> perf probe: Fix a segfault bug in debuginfo_cache
> perf probe: Improve error message when %return is on inlined function
>
> Sukadev Bhattiprolu (1):
> perf tools: Fix build break on powerpc due to sample_reg_masks
>
> tools/include/linux/err.h | 4 +-
> tools/lib/symbol/kallsyms.c | 6 ++
> tools/lib/symbol/kallsyms.h | 4 +-
> tools/perf/Documentation/perf-report.txt | 2 +
> tools/perf/builtin-kmem.c | 2 +-
> tools/perf/builtin-list.c | 2 +-
> tools/perf/builtin-report.c | 2 +-
> tools/perf/tests/code-reading.c | 2 +-
> tools/perf/tests/vmlinux-kallsyms.c | 4 +-
> tools/perf/util/Build | 2 +-
> tools/perf/util/event.c | 7 +--
> tools/perf/util/evlist.c | 22 +++++++-
> tools/perf/util/intel-pt.c | 2 +-
> tools/perf/util/machine.c | 26 ++++-----
> tools/perf/util/machine.h | 8 ++-
> tools/perf/util/map.c | 21 ++++---
> tools/perf/util/map.h | 2 +
> tools/perf/util/parse-events.c | 53 +++++++++---------
> tools/perf/util/perf_regs.c | 2 +
> tools/perf/util/perf_regs.h | 1 +
> tools/perf/util/pmu.c | 2 +-
> tools/perf/util/probe-event.c | 96 ++++++++++++++++++++------------
> tools/perf/util/probe-finder.c | 58 +++++++++++++++++--
> tools/perf/util/symbol.c | 2 +-
> 24 files changed, 224 insertions(+), 108 deletions(-)
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 59+ messages in thread
* [GIT PULL 00/16] perf/core improvements and fixes
@ 2019-01-04 18:33 Arnaldo Carvalho de Melo
2019-01-08 15:32 ` Ingo Molnar
0 siblings, 1 reply; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2019-01-04 18:33 UTC (permalink / raw)
To: Ingo Molnar
Cc: Clark Williams, linux-kernel, linux-perf-users,
Arnaldo Carvalho de Melo, Arnaldo Carvalho de Melo, Ivan Krylov,
Jin Yao, Mattias Jacobsson
Hi Ingo,
Please consider pulling,
Best regards,
- Arnaldo
Test results at the end of this message, as usual.
The following changes since commit 2573be22e5b6f24a0cabc97715c808c47e29eaaf:
Merge tag 'perf-core-for-mingo-4.21-20190103' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent (2019-01-03 14:05:16 +0100)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-4.21-20190104
for you to fetch changes up to 03fa483821c0b4db7c2b1453d3332f397d82313f:
perf test shell: Use a fallback to get the pathname in vfs_getname (2019-01-04 15:12:29 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
perf annotate:
Ivan Krylov:
- Pass filename to objdump via execl, fixing usage with filenames
with special characters.
perf report:
Jin Yao:
Fix wrong iteration count in --branch-history
perf stat:
Jin Yao:
- Fix endless wait for child process
perf test:
Arnaldo Carvalho de Melo:
- Use a fallback to get the pathname in vfs_getname in
tools build:
Jiri Olsa:
- Allow overriding CFLAGS assignments.
Misc:
Arnaldo Carvalho de Melo:
- Syncronize UAPI headers
Mattias Jacobsson:
- Remove redundant va_end() in strbuf_addv()
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Arnaldo Carvalho de Melo (10):
tools headers x86: Sync disabled-features.h
tools headers uapi: Sync prctl.h with the kernel sources
tools beauty: Make the prctl option table generator catch all PR_ options
tools headers uapi: Update i915_drm.h
tools headers uapi: Sync linux/in.h copy from the kernel sources
tools headers uapi: Sync linux/kvm.h with the kernel sources
tools headers uapi: Sync copy of asm-generic/unistd.h with the kernel sources
tools headers x86: Sync asm/cpufeatures.h copy with the kernel sources
perf python: Make sure the python binding output directory is in place
perf test shell: Use a fallback to get the pathname in vfs_getname
Ivan Krylov (1):
perf annotate: Pass filename to objdump via execl
Jin Yao (2):
perf stat: Fix endless wait for child process
perf report: Fix wrong iteration count in --branch-history
Jiri Olsa (2):
tools thermal tmon: Use -O3 instead of -O1 if available
tools iio: Override CFLAGS assignments
Mattias Jacobsson (1):
perf strbuf: Remove redundant va_end() in strbuf_addv()
tools/arch/x86/include/asm/cpufeatures.h | 2 ++
tools/arch/x86/include/asm/disabled-features.h | 8 ++++++-
tools/iio/Makefile | 2 +-
tools/include/uapi/asm-generic/unistd.h | 4 +++-
tools/include/uapi/drm/i915_drm.h | 8 +++++++
tools/include/uapi/linux/in.h | 10 +++++---
tools/include/uapi/linux/kvm.h | 19 +++++++++++++++
tools/include/uapi/linux/prctl.h | 8 +++++++
tools/perf/Makefile.perf | 4 +++-
tools/perf/builtin-stat.c | 3 ++-
tools/perf/tests/shell/lib/probe_vfs_getname.sh | 3 ++-
tools/perf/trace/beauty/prctl_option.sh | 2 +-
tools/perf/util/annotate.c | 8 +++----
tools/perf/util/callchain.c | 32 +++++++++++++++----------
tools/perf/util/callchain.h | 1 +
tools/perf/util/machine.c | 2 +-
tools/perf/util/strbuf.c | 1 -
tools/thermal/tmon/Makefile | 2 +-
18 files changed, 90 insertions(+), 29 deletions(-)
Test results:
The first ones are container based builds of tools/perf with and without libelf
support. Where clang is available, it is also used to build perf with/without
libelf, and building with LIBCLANGLLVM=1 (built-in clang) with gcc and clang
when clang and its devel libraries are installed.
The objtool and samples/bpf/ builds are disabled now that I'm switching from
using the sources in a local volume to fetching them from a http server to
build it inside the container, to make it easier to build in a container cluster.
Those will come back later.
Several are cross builds, the ones with -x-ARCH and the android one, and those
may not have all the features built, due to lack of multi-arch devel packages,
available and being used so far on just a few, like
debian:experimental-x-{arm64,mipsel}.
The 'perf test' one will perform a variety of tests exercising
tools/perf/util/, tools/lib/{bpf,traceevent,etc}, as well as run perf commands
with a variety of command line event specifications to then intercept the
sys_perf_event syscall to check that the perf_event_attr fields are set up as
expected, among a variety of other unit tests.
Then there is the 'make -C tools/perf build-test' ones, that build tools/perf/
with a variety of feature sets, exercising the build with an incomplete set of
features as well as with a complete one. It is planned to have it run on each
of the containers mentioned above, using some container orchestration
infrastructure. Get in contact if interested in helping having this in place.
$ dm
1 alpine:3.4 : Ok gcc (Alpine 5.3.0) 5.3.0
2 alpine:3.5 : Ok gcc (Alpine 6.2.1) 6.2.1 20160822
3 alpine:3.6 : Ok gcc (Alpine 6.3.0) 6.3.0
4 alpine:3.7 : Ok gcc (Alpine 6.4.0) 6.4.0
5 alpine:3.8 : Ok gcc (Alpine 6.4.0) 6.4.0
6 alpine:edge : Ok gcc (Alpine 8.2.0) 8.2.0
7 amazonlinux:1 : Ok gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28)
8 amazonlinux:2 : Ok gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5)
9 android-ndk:r12b-arm : Ok arm-linux-androideabi-gcc (GCC) 4.9.x 20150123 (prerelease)
10 android-ndk:r15c-arm : Ok arm-linux-androideabi-gcc (GCC) 4.9.x 20150123 (prerelease)
11 centos:5 : Ok gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-55)
12 centos:6 : Ok gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23)
13 centos:7 : Ok gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36)
14 clearlinux:latest : Ok gcc (Clear Linux OS for Intel Architecture) 8.2.1 20180502
15 debian:7 : Ok gcc (Debian 4.7.2-5) 4.7.2
16 debian:8 : Ok gcc (Debian 4.9.2-10+deb8u2) 4.9.2
17 debian:9 : Ok gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516
18 debian:experimental : Ok gcc (Debian 8.2.0-13) 8.2.0
19 debian:experimental-x-arm64 : Ok aarch64-linux-gnu-gcc (Debian 8.2.0-11) 8.2.0
20 debian:experimental-x-mips : Ok mips-linux-gnu-gcc (Debian 8.2.0-11) 8.2.0
21 debian:experimental-x-mips64 : Ok mips64-linux-gnuabi64-gcc (Debian 8.2.0-11) 8.2.0
22 debian:experimental-x-mipsel : Ok mipsel-linux-gnu-gcc (Debian 8.2.0-11) 8.2.0
23 fedora:20 : Ok gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-7)
24 fedora:22 : Ok gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6)
25 fedora:23 : Ok gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6)
26 fedora:24 : Ok gcc (GCC) 6.3.1 20161221 (Red Hat 6.3.1-1)
27 fedora:24-x-ARC-uClibc : Ok arc-linux-gcc (ARCompact ISA Linux uClibc toolchain 2017.09-rc2) 7.1.1 20170710
28 fedora:25 : Ok gcc (GCC) 6.4.1 20170727 (Red Hat 6.4.1-1)
29 fedora:26 : Ok gcc (GCC) 7.3.1 20180130 (Red Hat 7.3.1-2)
30 fedora:27 : Ok gcc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-6)
31 fedora:28 : Ok gcc (GCC) 8.2.1 20181105 (Red Hat 8.2.1-5)
32 fedora:29 : Ok gcc (GCC) 8.2.1 20181105 (Red Hat 8.2.1-5)
33 fedora:rawhide : Ok gcc (GCC) 8.2.1 20181105 (Red Hat 8.2.1-5)
34 gentoo-stage3-amd64:latest : Ok gcc (Gentoo 7.3.0-r3 p1.4) 7.3.0
35 mageia:5 : Ok gcc (GCC) 4.9.2
36 mageia:6 : Ok gcc (Mageia 5.5.0-1.mga6) 5.5.0
37 opensuse:13.2 : Ok gcc (SUSE Linux) 4.8.3 20140627 [gcc-4_8-branch revision 212064]
38 opensuse:15.0 : Ok gcc (SUSE Linux) 7.3.1 20180323 [gcc-7-branch revision 258812]
39 opensuse:42.1 : Ok gcc (SUSE Linux) 4.8.5
40 opensuse:42.2 : Ok gcc (SUSE Linux) 4.8.5
41 opensuse:42.3 : Ok gcc (SUSE Linux) 4.8.5
42 opensuse:tumbleweed : Ok gcc (SUSE Linux) 8.2.1 20181108 [gcc-8-branch revision 265914]
43 oraclelinux:6 : Ok gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23.0.1)
44 oraclelinux:7 : Ok gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36.0.1)
45 ubuntu:12.04.5 : Ok gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
46 ubuntu:14.04.4 : Ok gcc (Ubuntu 4.8.4-2ubuntu1~14.04.4) 4.8.4
47 ubuntu:14.04.4-x-linaro-arm64 : Ok aarch64-linux-gnu-gcc (Linaro GCC 5.5-2017.10) 5.5.0
48 ubuntu:16.04 : Ok gcc (Ubuntu 5.4.0-6ubuntu1~16.04.10) 5.4.0 20160609
49 ubuntu:16.04-x-arm : Ok arm-linux-gnueabihf-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
50 ubuntu:16.04-x-arm64 : Ok aarch64-linux-gnu-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
51 ubuntu:16.04-x-powerpc : Ok powerpc-linux-gnu-gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
52 ubuntu:16.04-x-powerpc64 : Ok powerpc64-linux-gnu-gcc (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
53 ubuntu:16.04-x-powerpc64el : Ok powerpc64le-linux-gnu-gcc (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
54 ubuntu:16.04-x-s390 : Ok s390x-linux-gnu-gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
55 ubuntu:17.10 : Ok gcc (Ubuntu 7.2.0-8ubuntu3.2) 7.2.0
56 ubuntu:18.04 : Ok gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
57 ubuntu:18.04-x-arm : Ok arm-linux-gnueabihf-gcc (Ubuntu/Linaro 7.3.0-27ubuntu1~18.04) 7.3.0
58 ubuntu:18.04-x-arm64 : Ok aarch64-linux-gnu-gcc (Ubuntu/Linaro 7.3.0-27ubuntu1~18.04) 7.3.0
59 ubuntu:18.04-x-m68k : Ok m68k-linux-gnu-gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
60 ubuntu:18.04-x-powerpc : Ok powerpc-linux-gnu-gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
61 ubuntu:18.04-x-powerpc64 : Ok powerpc64-linux-gnu-gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
62 ubuntu:18.04-x-powerpc64el : Ok powerpc64le-linux-gnu-gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
63 ubuntu:18.04-x-riscv64 : Ok riscv64-linux-gnu-gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
64 ubuntu:18.04-x-s390 : Ok s390x-linux-gnu-gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
65 ubuntu:18.04-x-sh4 : Ok sh4-linux-gnu-gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
66 ubuntu:18.04-x-sparc64 : Ok sparc64-linux-gnu-gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
67 ubuntu:18.10 : Ok gcc (Ubuntu 8.2.0-7ubuntu1) 8.2.0
68 ubuntu:19.04 : Ok gcc (Ubuntu 8.2.0-12ubuntu1) 8.2.0
69 ubuntu:19.04-x-alpha : Ok alpha-linux-gnu-gcc (Ubuntu 8.2.0-11ubuntu1) 8.2.0
70 ubuntu:19.04-x-hppa : Ok hppa-linux-gnu-gcc (Ubuntu 8.2.0-11ubuntu1) 8.2.0
# uname -a
Linux quaco 4.19.13-300.fc29.x86_64 #1 SMP Sat Dec 29 22:54:28 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
# git log --oneline -1
03fa483821c0 perf test shell: Use a fallback to get the pathname in vfs_getname
# perf version --build-options
perf version 4.20.g03fa48
dwarf: [ on ] # HAVE_DWARF_SUPPORT
dwarf_getlocations: [ on ] # HAVE_DWARF_GETLOCATIONS_SUPPORT
glibc: [ on ] # HAVE_GLIBC_SUPPORT
gtk2: [ on ] # HAVE_GTK2_SUPPORT
syscall_table: [ on ] # HAVE_SYSCALL_TABLE_SUPPORT
libbfd: [ on ] # HAVE_LIBBFD_SUPPORT
libelf: [ on ] # HAVE_LIBELF_SUPPORT
libnuma: [ on ] # HAVE_LIBNUMA_SUPPORT
numa_num_possible_cpus: [ on ] # HAVE_LIBNUMA_SUPPORT
libperl: [ on ] # HAVE_LIBPERL_SUPPORT
libpython: [ on ] # HAVE_LIBPYTHON_SUPPORT
libslang: [ on ] # HAVE_SLANG_SUPPORT
libcrypto: [ on ] # HAVE_LIBCRYPTO_SUPPORT
libunwind: [ on ] # HAVE_LIBUNWIND_SUPPORT
libdw-dwarf-unwind: [ on ] # HAVE_DWARF_SUPPORT
zlib: [ on ] # HAVE_ZLIB_SUPPORT
lzma: [ on ] # HAVE_LZMA_SUPPORT
get_cpuid: [ on ] # HAVE_AUXTRACE_SUPPORT
bpf: [ on ] # HAVE_LIBBPF_SUPPORT
# perf test
1: vmlinux symtab matches kallsyms : Ok
2: Detect openat syscall event : Ok
3: Detect openat syscall event on all cpus : Ok
4: Read samples using the mmap interface : Ok
5: Test data source output : Ok
6: Parse event definition strings : Ok
7: Simple expression parser : Ok
8: PERF_RECORD_* events & perf_sample fields : Ok
9: Parse perf pmu format : Ok
10: DSO data read : Ok
11: DSO data cache : Ok
12: DSO data reopen : Ok
13: Roundtrip evsel->name : Ok
14: Parse sched tracepoints fields : Ok
15: syscalls:sys_enter_openat event fields : Ok
16: Setup struct perf_event_attr : Ok
17: Match and link multiple hists : Ok
18: 'import perf' in python : Ok
19: Breakpoint overflow signal handler : Ok
20: Breakpoint overflow sampling : Ok
21: Breakpoint accounting : Ok
22: Watchpoint :
22.1: Read Only Watchpoint : Skip
22.2: Write Only Watchpoint : Ok
22.3: Read / Write Watchpoint : Ok
22.4: Modify Watchpoint : Ok
23: Number of exit events of a simple workload : Ok
24: Software clock events period values : Ok
25: Object code reading : Ok
26: Sample parsing : Ok
27: Use a dummy software event to keep tracking : Ok
28: Parse with no sample_id_all bit set : Ok
29: Filter hist entries : Ok
30: Lookup mmap thread : Ok
31: Share thread mg : Ok
32: Sort output of hist entries : Ok
33: Cumulate child hist entries : Ok
34: Track with sched_switch : Ok
35: Filter fds with revents mask in a fdarray : Ok
36: Add fd to a fdarray, making it autogrow : Ok
37: kmod_path__parse : Ok
38: Thread map : Ok
39: LLVM search and compile :
39.1: Basic BPF llvm compile : Ok
39.2: kbuild searching : Ok
39.3: Compile source for BPF prologue generation : Ok
39.4: Compile source for BPF relocation : Ok
40: Session topology : Ok
41: BPF filter :
41.1: Basic BPF filtering : Ok
41.2: BPF pinning : Ok
41.3: BPF prologue generation : Ok
41.4: BPF relocation checker : Ok
42: Synthesize thread map : Ok
43: Remove thread map : Ok
44: Synthesize cpu map : Ok
45: Synthesize stat config : Ok
46: Synthesize stat : Ok
47: Synthesize stat round : Ok
48: Synthesize attr update : Ok
49: Event times : Ok
50: Read backward ring buffer : Ok
51: Print cpu map : Ok
52: Probe SDT events : Ok
53: is_printable_array : Ok
54: Print bitmap : Ok
55: perf hooks : Ok
56: builtin clang support : Skip (not compiled in)
57: unit_number__scnprintf : Ok
58: mem2node : Ok
59: x86 rdpmc : Ok
60: Convert perf time to TSC : Ok
61: DWARF unwind : Ok
62: x86 instruction decoder - new instructions : Ok
63: x86 bp modify : Ok
64: probe libc's inet_pton & backtrace it with ping : Ok
65: Use vfs_getname probe to get syscall args filenames : Ok
66: Add vfs_getname probe to get syscall args filenames : Ok
67: Check open filename arg using perf trace + vfs_getname: Ok
$ make -C tools/perf build-test
make: Entering directory '/home/acme/git/perf/tools/perf'
- tarpkg: ./tests/perf-targz-src-pkg .
make_no_demangle_O: make NO_DEMANGLE=1
make_no_libperl_O: make NO_LIBPERL=1
make_no_newt_O: make NO_NEWT=1
make_no_gtk2_O: make NO_GTK2=1
make_no_libbpf_O: make NO_LIBBPF=1
make_static_O: make LDFLAGS=-static
make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1
make_cscope_O: make cscope
make_no_libaudit_O: make NO_LIBAUDIT=1
make_help_O: make help
make_no_auxtrace_O: make NO_AUXTRACE=1
make_no_libnuma_O: make NO_LIBNUMA=1
make_perf_o_O: make perf.o
make_no_libelf_O: make NO_LIBELF=1
make_install_prefix_O: make install prefix=/tmp/krava
make_tags_O: make tags
make_no_backtrace_O: make NO_BACKTRACE=1
make_pure_O: make
make_no_libunwind_O: make NO_LIBUNWIND=1
make_no_slang_O: make NO_SLANG=1
make_install_O: make install
make_clean_all_O: make clean all
make_install_bin_O: make install-bin
make_no_libpython_O: make NO_LIBPYTHON=1
make_debug_O: make DEBUG=1
make_doc_O: make doc
make_minimal_O: make NO_LIBPERL=1 NO_LIBPYTHON=1 NO_NEWT=1 NO_GTK2=1 NO_DEMANGLE=1 NO_LIBELF=1 NO_LIBUNWIND=1 NO_BACKTRACE=1 NO_LIBNUMA=1 NO_LIBAUDIT=1 NO_LIBBIONIC=1 NO_LIBDW_DWARF_UNWIND=1 NO_AUXTRACE=1 NO_LIBBPF=1 NO_LIBCRYPTO=1 NO_SDT=1 NO_JVMTI=1
make_with_clangllvm_O: make LIBCLANGLLVM=1
make_util_pmu_bison_o_O: make util/pmu-bison.o
make_no_libbionic_O: make NO_LIBBIONIC=1
make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1
make_util_map_o_O: make util/map.o
make_with_babeltrace_O: make LIBBABELTRACE=1
make_install_prefix_slash_O: make install prefix=/tmp/krava/
make_no_libdw_dwarf_unwind_O: make NO_LIBDW_DWARF_UNWIND=1
OK
make: Leaving directory '/home/acme/git/perf/tools/perf'
$
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes
2019-01-04 18:33 Arnaldo Carvalho de Melo
@ 2019-01-08 15:32 ` Ingo Molnar
0 siblings, 0 replies; 59+ messages in thread
From: Ingo Molnar @ 2019-01-08 15:32 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: Clark Williams, linux-kernel, linux-perf-users,
Arnaldo Carvalho de Melo, Ivan Krylov, Jin Yao,
Mattias Jacobsson
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Hi Ingo,
>
> Please consider pulling,
>
> Best regards,
>
> - Arnaldo
>
> Test results at the end of this message, as usual.
>
> The following changes since commit 2573be22e5b6f24a0cabc97715c808c47e29eaaf:
>
> Merge tag 'perf-core-for-mingo-4.21-20190103' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent (2019-01-03 14:05:16 +0100)
>
> are available in the Git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-4.21-20190104
>
> for you to fetch changes up to 03fa483821c0b4db7c2b1453d3332f397d82313f:
>
> perf test shell: Use a fallback to get the pathname in vfs_getname (2019-01-04 15:12:29 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> perf annotate:
>
> Ivan Krylov:
>
> - Pass filename to objdump via execl, fixing usage with filenames
> with special characters.
>
> perf report:
>
> Jin Yao:
>
> Fix wrong iteration count in --branch-history
>
> perf stat:
>
> Jin Yao:
>
> - Fix endless wait for child process
>
> perf test:
>
> Arnaldo Carvalho de Melo:
>
> - Use a fallback to get the pathname in vfs_getname in
>
> tools build:
>
> Jiri Olsa:
>
> - Allow overriding CFLAGS assignments.
>
> Misc:
>
> Arnaldo Carvalho de Melo:
>
> - Syncronize UAPI headers
>
> Mattias Jacobsson:
>
> - Remove redundant va_end() in strbuf_addv()
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (10):
> tools headers x86: Sync disabled-features.h
> tools headers uapi: Sync prctl.h with the kernel sources
> tools beauty: Make the prctl option table generator catch all PR_ options
> tools headers uapi: Update i915_drm.h
> tools headers uapi: Sync linux/in.h copy from the kernel sources
> tools headers uapi: Sync linux/kvm.h with the kernel sources
> tools headers uapi: Sync copy of asm-generic/unistd.h with the kernel sources
> tools headers x86: Sync asm/cpufeatures.h copy with the kernel sources
> perf python: Make sure the python binding output directory is in place
> perf test shell: Use a fallback to get the pathname in vfs_getname
>
> Ivan Krylov (1):
> perf annotate: Pass filename to objdump via execl
>
> Jin Yao (2):
> perf stat: Fix endless wait for child process
> perf report: Fix wrong iteration count in --branch-history
>
> Jiri Olsa (2):
> tools thermal tmon: Use -O3 instead of -O1 if available
> tools iio: Override CFLAGS assignments
>
> Mattias Jacobsson (1):
> perf strbuf: Remove redundant va_end() in strbuf_addv()
>
> tools/arch/x86/include/asm/cpufeatures.h | 2 ++
> tools/arch/x86/include/asm/disabled-features.h | 8 ++++++-
> tools/iio/Makefile | 2 +-
> tools/include/uapi/asm-generic/unistd.h | 4 +++-
> tools/include/uapi/drm/i915_drm.h | 8 +++++++
> tools/include/uapi/linux/in.h | 10 +++++---
> tools/include/uapi/linux/kvm.h | 19 +++++++++++++++
> tools/include/uapi/linux/prctl.h | 8 +++++++
> tools/perf/Makefile.perf | 4 +++-
> tools/perf/builtin-stat.c | 3 ++-
> tools/perf/tests/shell/lib/probe_vfs_getname.sh | 3 ++-
> tools/perf/trace/beauty/prctl_option.sh | 2 +-
> tools/perf/util/annotate.c | 8 +++----
> tools/perf/util/callchain.c | 32 +++++++++++++++----------
> tools/perf/util/callchain.h | 1 +
> tools/perf/util/machine.c | 2 +-
> tools/perf/util/strbuf.c | 1 -
> tools/thermal/tmon/Makefile | 2 +-
> 18 files changed, 90 insertions(+), 29 deletions(-)
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 59+ messages in thread
* [GIT PULL 00/16] perf/core improvements and fixes
@ 2016-07-05 0:38 Arnaldo Carvalho de Melo
2016-07-05 10:14 ` Ingo Molnar
0 siblings, 1 reply; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-07-05 0:38 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Alexei Starovoitov, Ananth N Mavinakayanahalli, Brendan Gregg,
Chris Phlipot, Christoph Hellwig, Daniel Borkmann, David Ahern,
Eric Leblond, He Kuang, Hemant Kumar, Jiri Olsa,
Masami Hiramatsu, Milian Wolff, Namhyung Kim, Peter Zijlstra,
pi3orama, Taeung Song, Wang Nan, Zefan Li,
Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling,
Build status:
[root@jouet ~]# dm
alpine:3.4: FAIL <--- strerror_r usage needs to be made XSI-compliant, Alpine Linux uses musl libc
centos:5: FAIL <--- flex snafu, being investigated by Jiri
centos:6: Ok
centos:7: Ok
debian:7: Ok
debian:8: Ok
debian:experimental: Ok
fedora:21: Ok
fedora:22: Ok
fedora:23: Ok
fedora:24: Ok
fedora:rawhide: Ok
mageia:5: Ok
opensuse:13.2: Ok
opensuse:42.1: Ok
ubuntu:12.04.5: Ok
ubuntu:14.04.4: Ok
ubuntu:15.10: Ok
ubuntu:16.04: Ok
[root@jouet ~]#
These images are now available at: https://hub.docker.com/search/?q=acmel
And the 'dm' script at: https://fedorapeople.org/~acme/perf/dm
Regards,
- Arnaldo
The following changes since commit dc29bb47a34130459fadd58f05e2acd051a6327d:
Merge tag 'perf-core-for-mingo-20160630' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2016-07-01 08:40:39 +0200)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-20160704
for you to fetch changes up to f3d082ceabe53177c98bfa4580a294c2844966e8:
perf tools: Sync copy of syscall_64.tbl with the kernel (2016-07-04 20:29:40 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
Documentation:
- Update android build documentation (Chris Phlipot)
Infrastructure:
- Respect WERROR=0 in libapi and libsubcmd, to allow building on Android (Chris Phlipot)
- Prep work to support SDT events in probe cache (Masami Hiramatsu)
- ELF support for SDT (Hemant Kumar)
- Add feature detection for libelf's elf_getshdrstrndx function (Arnaldo Carvalho de Melo)
- Fix hist accumulation test (Jiri Olsa)
- Unwind callchain fixes (Jiri Olsa)
- Change internal representation of numa nodes obtained from
perf.data header (Jiri Olsa)
- Sync copy of syscall_64.tbl with the kernel (Arnaldo Carvalho de Melo)
- Add LGPL 2.1 license header to libbpf source files (Wang Nan)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Arnaldo Carvalho de Melo (2):
perf build: Add feature detection for libelf's elf_getshdrstrndx()
perf tools: Sync copy of syscall_64.tbl with the kernel
Chris Phlipot (3):
tools lib api: Respect WERROR=0 for build
tools lib subcmd: Respect WERROR=0 for build
perf tools: Update android build documentation
Hemant Kumar (1):
perf sdt: ELF support for SDT
Jiri Olsa (4):
perf header: Transform nodes string info to struct
perf tests: Fix hist accumulation test
perf unwind: Add initialized arg into unwind__prepare_access
perf unwind: Call unwind__prepare_access for forked thread
Masami Hiramatsu (5):
perf probe: Use cache entry if possible
perf probe: Show all cached probes
perf probe: Remove caches when --cache is given
perf probe: Add group name support
perf buildid-cache: Scan and import user SDT events to probe cache
Wang Nan (1):
tools lib bpf: Add license header
tools/build/Makefile.feature | 1 +
tools/build/feature/Makefile | 4 +
tools/build/feature/test-all.c | 5 +
tools/build/feature/test-libelf-getshdrstrndx.c | 8 +
tools/lib/api/Makefile | 8 +-
tools/lib/bpf/bpf.c | 13 ++
tools/lib/bpf/bpf.h | 13 ++
tools/lib/bpf/libbpf.c | 13 ++
tools/lib/bpf/libbpf.h | 13 ++
tools/lib/subcmd/Makefile | 8 +-
tools/perf/Documentation/android.txt | 16 +-
tools/perf/Documentation/perf-buildid-cache.txt | 3 +
tools/perf/Documentation/perf-probe.txt | 19 +-
tools/perf/arch/x86/entry/syscalls/syscall_64.tbl | 2 +
tools/perf/builtin-probe.c | 31 ++-
tools/perf/config/Makefile | 4 +
tools/perf/tests/hists_cumulate.c | 4 +
tools/perf/util/build-id.c | 138 +++++++++++-
tools/perf/util/build-id.h | 3 +
tools/perf/util/callchain.h | 1 +
tools/perf/util/env.c | 5 +-
tools/perf/util/env.h | 10 +-
tools/perf/util/header.c | 76 +++----
tools/perf/util/map.c | 9 +-
tools/perf/util/map.h | 2 +-
tools/perf/util/probe-event.c | 91 +++++++-
tools/perf/util/probe-file.c | 175 ++++++++++++++-
tools/perf/util/probe-file.h | 10 +-
tools/perf/util/symbol-elf.c | 260 ++++++++++++++++++++++
tools/perf/util/symbol.h | 22 ++
tools/perf/util/thread.c | 39 +++-
tools/perf/util/unwind-libunwind.c | 11 +-
tools/perf/util/unwind.h | 9 +-
tools/perf/util/util.c | 19 +-
34 files changed, 940 insertions(+), 105 deletions(-)
create mode 100644 tools/build/feature/test-libelf-getshdrstrndx.c
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes
2016-07-05 0:38 Arnaldo Carvalho de Melo
@ 2016-07-05 10:14 ` Ingo Molnar
0 siblings, 0 replies; 59+ messages in thread
From: Ingo Molnar @ 2016-07-05 10:14 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Adrian Hunter, Alexei Starovoitov,
Ananth N Mavinakayanahalli, Brendan Gregg, Chris Phlipot,
Christoph Hellwig, Daniel Borkmann, David Ahern, Eric Leblond,
He Kuang, Hemant Kumar, Jiri Olsa, Masami Hiramatsu,
Milian Wolff, Namhyung Kim, Peter Zijlstra, pi3orama,
Taeung Song, Wang Nan, Zefan Li, Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Hi Ingo,
>
> Please consider pulling,
>
> Build status:
>
> [root@jouet ~]# dm
> alpine:3.4: FAIL <--- strerror_r usage needs to be made XSI-compliant, Alpine Linux uses musl libc
> centos:5: FAIL <--- flex snafu, being investigated by Jiri
> centos:6: Ok
> centos:7: Ok
> debian:7: Ok
> debian:8: Ok
> debian:experimental: Ok
> fedora:21: Ok
> fedora:22: Ok
> fedora:23: Ok
> fedora:24: Ok
> fedora:rawhide: Ok
> mageia:5: Ok
> opensuse:13.2: Ok
> opensuse:42.1: Ok
> ubuntu:12.04.5: Ok
> ubuntu:14.04.4: Ok
> ubuntu:15.10: Ok
> ubuntu:16.04: Ok
> [root@jouet ~]#
>
> These images are now available at: https://hub.docker.com/search/?q=acmel
>
> And the 'dm' script at: https://fedorapeople.org/~acme/perf/dm
>
> Regards,
>
> - Arnaldo
>
> The following changes since commit dc29bb47a34130459fadd58f05e2acd051a6327d:
>
> Merge tag 'perf-core-for-mingo-20160630' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2016-07-01 08:40:39 +0200)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-20160704
>
> for you to fetch changes up to f3d082ceabe53177c98bfa4580a294c2844966e8:
>
> perf tools: Sync copy of syscall_64.tbl with the kernel (2016-07-04 20:29:40 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> Documentation:
>
> - Update android build documentation (Chris Phlipot)
>
> Infrastructure:
>
> - Respect WERROR=0 in libapi and libsubcmd, to allow building on Android (Chris Phlipot)
>
> - Prep work to support SDT events in probe cache (Masami Hiramatsu)
>
> - ELF support for SDT (Hemant Kumar)
>
> - Add feature detection for libelf's elf_getshdrstrndx function (Arnaldo Carvalho de Melo)
>
> - Fix hist accumulation test (Jiri Olsa)
>
> - Unwind callchain fixes (Jiri Olsa)
>
> - Change internal representation of numa nodes obtained from
> perf.data header (Jiri Olsa)
>
> - Sync copy of syscall_64.tbl with the kernel (Arnaldo Carvalho de Melo)
>
> - Add LGPL 2.1 license header to libbpf source files (Wang Nan)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (2):
> perf build: Add feature detection for libelf's elf_getshdrstrndx()
> perf tools: Sync copy of syscall_64.tbl with the kernel
>
> Chris Phlipot (3):
> tools lib api: Respect WERROR=0 for build
> tools lib subcmd: Respect WERROR=0 for build
> perf tools: Update android build documentation
>
> Hemant Kumar (1):
> perf sdt: ELF support for SDT
>
> Jiri Olsa (4):
> perf header: Transform nodes string info to struct
> perf tests: Fix hist accumulation test
> perf unwind: Add initialized arg into unwind__prepare_access
> perf unwind: Call unwind__prepare_access for forked thread
>
> Masami Hiramatsu (5):
> perf probe: Use cache entry if possible
> perf probe: Show all cached probes
> perf probe: Remove caches when --cache is given
> perf probe: Add group name support
> perf buildid-cache: Scan and import user SDT events to probe cache
>
> Wang Nan (1):
> tools lib bpf: Add license header
>
> tools/build/Makefile.feature | 1 +
> tools/build/feature/Makefile | 4 +
> tools/build/feature/test-all.c | 5 +
> tools/build/feature/test-libelf-getshdrstrndx.c | 8 +
> tools/lib/api/Makefile | 8 +-
> tools/lib/bpf/bpf.c | 13 ++
> tools/lib/bpf/bpf.h | 13 ++
> tools/lib/bpf/libbpf.c | 13 ++
> tools/lib/bpf/libbpf.h | 13 ++
> tools/lib/subcmd/Makefile | 8 +-
> tools/perf/Documentation/android.txt | 16 +-
> tools/perf/Documentation/perf-buildid-cache.txt | 3 +
> tools/perf/Documentation/perf-probe.txt | 19 +-
> tools/perf/arch/x86/entry/syscalls/syscall_64.tbl | 2 +
> tools/perf/builtin-probe.c | 31 ++-
> tools/perf/config/Makefile | 4 +
> tools/perf/tests/hists_cumulate.c | 4 +
> tools/perf/util/build-id.c | 138 +++++++++++-
> tools/perf/util/build-id.h | 3 +
> tools/perf/util/callchain.h | 1 +
> tools/perf/util/env.c | 5 +-
> tools/perf/util/env.h | 10 +-
> tools/perf/util/header.c | 76 +++----
> tools/perf/util/map.c | 9 +-
> tools/perf/util/map.h | 2 +-
> tools/perf/util/probe-event.c | 91 +++++++-
> tools/perf/util/probe-file.c | 175 ++++++++++++++-
> tools/perf/util/probe-file.h | 10 +-
> tools/perf/util/symbol-elf.c | 260 ++++++++++++++++++++++
> tools/perf/util/symbol.h | 22 ++
> tools/perf/util/thread.c | 39 +++-
> tools/perf/util/unwind-libunwind.c | 11 +-
> tools/perf/util/unwind.h | 9 +-
> tools/perf/util/util.c | 19 +-
> 34 files changed, 940 insertions(+), 105 deletions(-)
> create mode 100644 tools/build/feature/test-libelf-getshdrstrndx.c
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 59+ messages in thread
* [GIT PULL 00/16] perf/core improvements and fixes
@ 2016-01-29 21:17 ` Arnaldo Carvalho de Melo
0 siblings, 0 replies; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-01-29 21:17 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Alexander Yarygin, Alexei Starovoitov, Al Grant, Brendan Gregg,
Chunyan Zhang, Daniel Borkmann, David Ahern, He Kuang,
Hemant Kumar, Jiri Olsa, linux-arm-kernel, linux-doc,
linuxppc-dev, Li Zefan, Masami Hiramatsu, Mathieu Poirier,
Michael Ellerman, Mike Leach, Namhyung Kim, Naveen N . Rao,
Paul Mackerras, Peter Zijlstra, pi3orama, Rabin Vincent,
Scott Wood, Srikar Dronamraju, Tor Jeremiassen, Wang Nan,
Will Deacon, Arnaldo Carvalho de Melo
See http://www.infradead.org/rpr.html
Hi Ingo,
This is on top of the previously submitted perf-core-for-mingo tag,
please consider applying,
- Arnaldo
The following changes since commit 5ac76283b32b116c58e362e99542182ddcfc8262:
perf cpumap: Auto initialize cpu__max_{node,cpu} (2016-01-26 16:08:36 -0300)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-2
for you to fetch changes up to 814568db641f6587c1e98a3a85f214cb6a30fe10:
perf build: Align the names of the build tests: (2016-01-29 17:51:04 -0300)
----------------------------------------------------------------
New features:
- Port 'perf kvm stat' to PowerPC (Hemant Kumar)
Infrastructure:
- Use the 'feature-dump' target to do the feature checks just once and then
add code to reuse that in the tests/make makefile, speeding up the
'make -C tools/perf build-test' target (Wang Nan)
- Reduce the number of tests the 'build-test' target do to those that don't
pollute the source tree (Arnaldo Carvalho de Melo)
- Improve the output of the build tests a bit by aligning the name of the
tests, more can be done to filter out uninteresting info in the output
(Arnaldo Carvalho de Melo)
- Add perf_evlist pointer to *info_priv_size(), more prep work for
supporting the coresight architecture (Mathieu Poirier)
- Improve the 'perf test bp_signal' test (Wang Nan)
- Check environment before starting the BPF 'perf test', so that we can just
'Skip' older kernels instead of 'FAIL'ing them (Wang Nan)
- Fix cpumode of synthesized buildid event (Wang Nan)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Arnaldo Carvalho de Melo (2):
perf tools: Speed up build-tests by reducing the number of builds tested
perf build: Align the names of the build tests:
Hemant Kumar (4):
perf kvm/{x86,s390}: Remove dependency on uapi/kvm_perf.h
perf kvm/{x86,s390}: Remove const from kvm_events_tp
perf kvm/powerpc: Port perf kvm stat to powerpc
perf kvm/powerpc: Add support for HCALL reasons
Jiri Olsa (1):
perf build: Fix feature-dump checks, we need to test all features
Mathieu Poirier (1):
perf auxtrace: Add perf_evlist pointer to *info_priv_size()
Wang Nan (8):
tools build: Check basic headers for test-compile feature checker
perf build: Remove all condition feature check {C,LD}FLAGS
perf build: Use feature dump file for build-test
perf buildid: Fix cpumode of buildid event
perf test: Check environment before start real BPF test
perf test: Improve bp_signal
perf tools: Move timestamp creation to util
perf record: Use OPT_BOOLEAN_SET for buildid cache related options
tools/build/Makefile.feature | 8 ++
tools/build/feature/test-compile.c | 2 +
tools/perf/Makefile | 11 +-
tools/perf/arch/powerpc/Makefile | 2 +
tools/perf/arch/powerpc/util/Build | 1 +
tools/perf/arch/powerpc/util/book3s_hcalls.h | 123 ++++++++++++++++++
tools/perf/arch/powerpc/util/book3s_hv_exits.h | 33 +++++
tools/perf/arch/powerpc/util/kvm-stat.c | 170 +++++++++++++++++++++++++
tools/perf/arch/s390/util/kvm-stat.c | 10 +-
tools/perf/arch/x86/util/intel-bts.c | 4 +-
tools/perf/arch/x86/util/intel-pt.c | 4 +-
tools/perf/arch/x86/util/kvm-stat.c | 16 ++-
tools/perf/builtin-buildid-cache.c | 14 +-
tools/perf/builtin-kvm.c | 38 ++++--
tools/perf/builtin-record.c | 12 +-
tools/perf/config/Makefile | 101 +++++++--------
tools/perf/tests/bp_signal.c | 140 ++++++++++++++++----
tools/perf/tests/bpf.c | 37 ++++++
tools/perf/tests/make | 39 +++++-
tools/perf/util/auxtrace.c | 7 +-
tools/perf/util/auxtrace.h | 6 +-
tools/perf/util/build-id.c | 6 +-
tools/perf/util/kvm-stat.h | 8 +-
tools/perf/util/util.c | 17 +++
tools/perf/util/util.h | 1 +
25 files changed, 688 insertions(+), 122 deletions(-)
create mode 100644 tools/perf/arch/powerpc/util/book3s_hcalls.h
create mode 100644 tools/perf/arch/powerpc/util/book3s_hv_exits.h
create mode 100644 tools/perf/arch/powerpc/util/kvm-stat.c
^ permalink raw reply [flat|nested] 59+ messages in thread
* [GIT PULL 00/16] perf/core improvements and fixes
@ 2016-01-29 21:17 ` Arnaldo Carvalho de Melo
0 siblings, 0 replies; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-01-29 21:17 UTC (permalink / raw)
To: linux-arm-kernel
See http://www.infradead.org/rpr.html
Hi Ingo,
This is on top of the previously submitted perf-core-for-mingo tag,
please consider applying,
- Arnaldo
The following changes since commit 5ac76283b32b116c58e362e99542182ddcfc8262:
perf cpumap: Auto initialize cpu__max_{node,cpu} (2016-01-26 16:08:36 -0300)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-2
for you to fetch changes up to 814568db641f6587c1e98a3a85f214cb6a30fe10:
perf build: Align the names of the build tests: (2016-01-29 17:51:04 -0300)
----------------------------------------------------------------
New features:
- Port 'perf kvm stat' to PowerPC (Hemant Kumar)
Infrastructure:
- Use the 'feature-dump' target to do the feature checks just once and then
add code to reuse that in the tests/make makefile, speeding up the
'make -C tools/perf build-test' target (Wang Nan)
- Reduce the number of tests the 'build-test' target do to those that don't
pollute the source tree (Arnaldo Carvalho de Melo)
- Improve the output of the build tests a bit by aligning the name of the
tests, more can be done to filter out uninteresting info in the output
(Arnaldo Carvalho de Melo)
- Add perf_evlist pointer to *info_priv_size(), more prep work for
supporting the coresight architecture (Mathieu Poirier)
- Improve the 'perf test bp_signal' test (Wang Nan)
- Check environment before starting the BPF 'perf test', so that we can just
'Skip' older kernels instead of 'FAIL'ing them (Wang Nan)
- Fix cpumode of synthesized buildid event (Wang Nan)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Arnaldo Carvalho de Melo (2):
perf tools: Speed up build-tests by reducing the number of builds tested
perf build: Align the names of the build tests:
Hemant Kumar (4):
perf kvm/{x86,s390}: Remove dependency on uapi/kvm_perf.h
perf kvm/{x86,s390}: Remove const from kvm_events_tp
perf kvm/powerpc: Port perf kvm stat to powerpc
perf kvm/powerpc: Add support for HCALL reasons
Jiri Olsa (1):
perf build: Fix feature-dump checks, we need to test all features
Mathieu Poirier (1):
perf auxtrace: Add perf_evlist pointer to *info_priv_size()
Wang Nan (8):
tools build: Check basic headers for test-compile feature checker
perf build: Remove all condition feature check {C,LD}FLAGS
perf build: Use feature dump file for build-test
perf buildid: Fix cpumode of buildid event
perf test: Check environment before start real BPF test
perf test: Improve bp_signal
perf tools: Move timestamp creation to util
perf record: Use OPT_BOOLEAN_SET for buildid cache related options
tools/build/Makefile.feature | 8 ++
tools/build/feature/test-compile.c | 2 +
tools/perf/Makefile | 11 +-
tools/perf/arch/powerpc/Makefile | 2 +
tools/perf/arch/powerpc/util/Build | 1 +
tools/perf/arch/powerpc/util/book3s_hcalls.h | 123 ++++++++++++++++++
tools/perf/arch/powerpc/util/book3s_hv_exits.h | 33 +++++
tools/perf/arch/powerpc/util/kvm-stat.c | 170 +++++++++++++++++++++++++
tools/perf/arch/s390/util/kvm-stat.c | 10 +-
tools/perf/arch/x86/util/intel-bts.c | 4 +-
tools/perf/arch/x86/util/intel-pt.c | 4 +-
tools/perf/arch/x86/util/kvm-stat.c | 16 ++-
tools/perf/builtin-buildid-cache.c | 14 +-
tools/perf/builtin-kvm.c | 38 ++++--
tools/perf/builtin-record.c | 12 +-
tools/perf/config/Makefile | 101 +++++++--------
tools/perf/tests/bp_signal.c | 140 ++++++++++++++++----
tools/perf/tests/bpf.c | 37 ++++++
tools/perf/tests/make | 39 +++++-
tools/perf/util/auxtrace.c | 7 +-
tools/perf/util/auxtrace.h | 6 +-
tools/perf/util/build-id.c | 6 +-
tools/perf/util/kvm-stat.h | 8 +-
tools/perf/util/util.c | 17 +++
tools/perf/util/util.h | 1 +
25 files changed, 688 insertions(+), 122 deletions(-)
create mode 100644 tools/perf/arch/powerpc/util/book3s_hcalls.h
create mode 100644 tools/perf/arch/powerpc/util/book3s_hv_exits.h
create mode 100644 tools/perf/arch/powerpc/util/kvm-stat.c
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes
2016-01-29 21:17 ` Arnaldo Carvalho de Melo
@ 2016-02-03 10:02 ` Ingo Molnar
-1 siblings, 0 replies; 59+ messages in thread
From: Ingo Molnar @ 2016-02-03 10:02 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Adrian Hunter, Alexander Yarygin,
Alexei Starovoitov, Al Grant, Brendan Gregg, Chunyan Zhang,
Daniel Borkmann, David Ahern, He Kuang, Hemant Kumar, Jiri Olsa,
linux-arm-kernel, linux-doc, linuxppc-dev, Li Zefan,
Masami Hiramatsu, Mathieu Poirier, Michael Ellerman, Mike Leach,
Namhyung Kim, Naveen N . Rao, Paul Mackerras, Peter Zijlstra,
pi3orama, Rabin Vincent, Scott Wood, Srikar Dronamraju,
Tor Jeremiassen, Wang Nan, Will Deacon, Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Hi Ingo,
>
> This is on top of the previously submitted perf-core-for-mingo tag,
> please consider applying,
>
> - Arnaldo
>
> The following changes since commit 5ac76283b32b116c58e362e99542182ddcfc8262:
>
> perf cpumap: Auto initialize cpu__max_{node,cpu} (2016-01-26 16:08:36 -0300)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-2
>
> for you to fetch changes up to 814568db641f6587c1e98a3a85f214cb6a30fe10:
>
> perf build: Align the names of the build tests: (2016-01-29 17:51:04 -0300)
>
> ----------------------------------------------------------------
> New features:
>
> - Port 'perf kvm stat' to PowerPC (Hemant Kumar)
>
> Infrastructure:
>
> - Use the 'feature-dump' target to do the feature checks just once and then
> add code to reuse that in the tests/make makefile, speeding up the
> 'make -C tools/perf build-test' target (Wang Nan)
>
> - Reduce the number of tests the 'build-test' target do to those that don't
> pollute the source tree (Arnaldo Carvalho de Melo)
>
> - Improve the output of the build tests a bit by aligning the name of the
> tests, more can be done to filter out uninteresting info in the output
> (Arnaldo Carvalho de Melo)
>
> - Add perf_evlist pointer to *info_priv_size(), more prep work for
> supporting the coresight architecture (Mathieu Poirier)
>
> - Improve the 'perf test bp_signal' test (Wang Nan)
>
> - Check environment before starting the BPF 'perf test', so that we can just
> 'Skip' older kernels instead of 'FAIL'ing them (Wang Nan)
>
> - Fix cpumode of synthesized buildid event (Wang Nan)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (2):
> perf tools: Speed up build-tests by reducing the number of builds tested
> perf build: Align the names of the build tests:
>
> Hemant Kumar (4):
> perf kvm/{x86,s390}: Remove dependency on uapi/kvm_perf.h
> perf kvm/{x86,s390}: Remove const from kvm_events_tp
> perf kvm/powerpc: Port perf kvm stat to powerpc
> perf kvm/powerpc: Add support for HCALL reasons
>
> Jiri Olsa (1):
> perf build: Fix feature-dump checks, we need to test all features
>
> Mathieu Poirier (1):
> perf auxtrace: Add perf_evlist pointer to *info_priv_size()
>
> Wang Nan (8):
> tools build: Check basic headers for test-compile feature checker
> perf build: Remove all condition feature check {C,LD}FLAGS
> perf build: Use feature dump file for build-test
> perf buildid: Fix cpumode of buildid event
> perf test: Check environment before start real BPF test
> perf test: Improve bp_signal
> perf tools: Move timestamp creation to util
> perf record: Use OPT_BOOLEAN_SET for buildid cache related options
>
> tools/build/Makefile.feature | 8 ++
> tools/build/feature/test-compile.c | 2 +
> tools/perf/Makefile | 11 +-
> tools/perf/arch/powerpc/Makefile | 2 +
> tools/perf/arch/powerpc/util/Build | 1 +
> tools/perf/arch/powerpc/util/book3s_hcalls.h | 123 ++++++++++++++++++
> tools/perf/arch/powerpc/util/book3s_hv_exits.h | 33 +++++
> tools/perf/arch/powerpc/util/kvm-stat.c | 170 +++++++++++++++++++++++++
> tools/perf/arch/s390/util/kvm-stat.c | 10 +-
> tools/perf/arch/x86/util/intel-bts.c | 4 +-
> tools/perf/arch/x86/util/intel-pt.c | 4 +-
> tools/perf/arch/x86/util/kvm-stat.c | 16 ++-
> tools/perf/builtin-buildid-cache.c | 14 +-
> tools/perf/builtin-kvm.c | 38 ++++--
> tools/perf/builtin-record.c | 12 +-
> tools/perf/config/Makefile | 101 +++++++--------
> tools/perf/tests/bp_signal.c | 140 ++++++++++++++++----
> tools/perf/tests/bpf.c | 37 ++++++
> tools/perf/tests/make | 39 +++++-
> tools/perf/util/auxtrace.c | 7 +-
> tools/perf/util/auxtrace.h | 6 +-
> tools/perf/util/build-id.c | 6 +-
> tools/perf/util/kvm-stat.h | 8 +-
> tools/perf/util/util.c | 17 +++
> tools/perf/util/util.h | 1 +
> 25 files changed, 688 insertions(+), 122 deletions(-)
> create mode 100644 tools/perf/arch/powerpc/util/book3s_hcalls.h
> create mode 100644 tools/perf/arch/powerpc/util/book3s_hv_exits.h
> create mode 100644 tools/perf/arch/powerpc/util/kvm-stat.c
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 59+ messages in thread
* [GIT PULL 00/16] perf/core improvements and fixes
@ 2016-02-03 10:02 ` Ingo Molnar
0 siblings, 0 replies; 59+ messages in thread
From: Ingo Molnar @ 2016-02-03 10:02 UTC (permalink / raw)
To: linux-arm-kernel
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Hi Ingo,
>
> This is on top of the previously submitted perf-core-for-mingo tag,
> please consider applying,
>
> - Arnaldo
>
> The following changes since commit 5ac76283b32b116c58e362e99542182ddcfc8262:
>
> perf cpumap: Auto initialize cpu__max_{node,cpu} (2016-01-26 16:08:36 -0300)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-2
>
> for you to fetch changes up to 814568db641f6587c1e98a3a85f214cb6a30fe10:
>
> perf build: Align the names of the build tests: (2016-01-29 17:51:04 -0300)
>
> ----------------------------------------------------------------
> New features:
>
> - Port 'perf kvm stat' to PowerPC (Hemant Kumar)
>
> Infrastructure:
>
> - Use the 'feature-dump' target to do the feature checks just once and then
> add code to reuse that in the tests/make makefile, speeding up the
> 'make -C tools/perf build-test' target (Wang Nan)
>
> - Reduce the number of tests the 'build-test' target do to those that don't
> pollute the source tree (Arnaldo Carvalho de Melo)
>
> - Improve the output of the build tests a bit by aligning the name of the
> tests, more can be done to filter out uninteresting info in the output
> (Arnaldo Carvalho de Melo)
>
> - Add perf_evlist pointer to *info_priv_size(), more prep work for
> supporting the coresight architecture (Mathieu Poirier)
>
> - Improve the 'perf test bp_signal' test (Wang Nan)
>
> - Check environment before starting the BPF 'perf test', so that we can just
> 'Skip' older kernels instead of 'FAIL'ing them (Wang Nan)
>
> - Fix cpumode of synthesized buildid event (Wang Nan)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (2):
> perf tools: Speed up build-tests by reducing the number of builds tested
> perf build: Align the names of the build tests:
>
> Hemant Kumar (4):
> perf kvm/{x86,s390}: Remove dependency on uapi/kvm_perf.h
> perf kvm/{x86,s390}: Remove const from kvm_events_tp
> perf kvm/powerpc: Port perf kvm stat to powerpc
> perf kvm/powerpc: Add support for HCALL reasons
>
> Jiri Olsa (1):
> perf build: Fix feature-dump checks, we need to test all features
>
> Mathieu Poirier (1):
> perf auxtrace: Add perf_evlist pointer to *info_priv_size()
>
> Wang Nan (8):
> tools build: Check basic headers for test-compile feature checker
> perf build: Remove all condition feature check {C,LD}FLAGS
> perf build: Use feature dump file for build-test
> perf buildid: Fix cpumode of buildid event
> perf test: Check environment before start real BPF test
> perf test: Improve bp_signal
> perf tools: Move timestamp creation to util
> perf record: Use OPT_BOOLEAN_SET for buildid cache related options
>
> tools/build/Makefile.feature | 8 ++
> tools/build/feature/test-compile.c | 2 +
> tools/perf/Makefile | 11 +-
> tools/perf/arch/powerpc/Makefile | 2 +
> tools/perf/arch/powerpc/util/Build | 1 +
> tools/perf/arch/powerpc/util/book3s_hcalls.h | 123 ++++++++++++++++++
> tools/perf/arch/powerpc/util/book3s_hv_exits.h | 33 +++++
> tools/perf/arch/powerpc/util/kvm-stat.c | 170 +++++++++++++++++++++++++
> tools/perf/arch/s390/util/kvm-stat.c | 10 +-
> tools/perf/arch/x86/util/intel-bts.c | 4 +-
> tools/perf/arch/x86/util/intel-pt.c | 4 +-
> tools/perf/arch/x86/util/kvm-stat.c | 16 ++-
> tools/perf/builtin-buildid-cache.c | 14 +-
> tools/perf/builtin-kvm.c | 38 ++++--
> tools/perf/builtin-record.c | 12 +-
> tools/perf/config/Makefile | 101 +++++++--------
> tools/perf/tests/bp_signal.c | 140 ++++++++++++++++----
> tools/perf/tests/bpf.c | 37 ++++++
> tools/perf/tests/make | 39 +++++-
> tools/perf/util/auxtrace.c | 7 +-
> tools/perf/util/auxtrace.h | 6 +-
> tools/perf/util/build-id.c | 6 +-
> tools/perf/util/kvm-stat.h | 8 +-
> tools/perf/util/util.c | 17 +++
> tools/perf/util/util.h | 1 +
> 25 files changed, 688 insertions(+), 122 deletions(-)
> create mode 100644 tools/perf/arch/powerpc/util/book3s_hcalls.h
> create mode 100644 tools/perf/arch/powerpc/util/book3s_hv_exits.h
> create mode 100644 tools/perf/arch/powerpc/util/kvm-stat.c
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 59+ messages in thread
* [GIT PULL 00/16] perf/core improvements and fixes
@ 2015-12-14 17:44 Arnaldo Carvalho de Melo
0 siblings, 0 replies; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-12-14 17:44 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Alexei Starovoitov, Andi Kleen, David Ahern, He Kuang, Jiri Olsa,
Josh Poimboeuf, 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 0d76ded582c178d3cca55c9112eceb5b0f12f558:
Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-12-14 09:31:39 +0100)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo
for you to fetch changes up to 7efe0e034c713716060bc7794c7e332589980c70:
perf record: Support custom vmlinux path (2015-12-14 13:04:12 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
User visible:
- Make command line options always available, even when they
depend on some feature being enabled, warning the user about
use of such options (Wang Nan)
- Support --vmlinux in perf record, useful, so far, for eBPF,
where we will set up events that will be used in the record
session (He Kuang)
- Automatically disable collecting branch flags and cycles with
--call-graph lbr. This allows avoiding a bunch of extra MSR
reads in the PMI on Skylake. (Andi Kleen)
Infrastructure:
- Dump the stack when a 'perf test -v ' entry segfaults, so far we
would have to run it under gdb with 'set follow-fork-mode child'
set to get a proper backtrace (Arnaldo Carvalho de Melo)
- Initialize the refcnt in 'struct thread' to 1 and fixup its
users accordingly, so that we try to have the same refcount
model accross the perf codebase (Arnaldo Carvalho de Melo)
- More prep work for moving the subcmd infrastructure out of
tools/perf/ and into tools/lib/subcmd/ to be used by other
tools/ living utilities (Josh Poimboeuf)
- Fix 'perf test' hist testcases when kptr_restrict is on (Namhyung Kim)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Andi Kleen (1):
perf evsel: Disable branch flags/cycles for --callgraph lbr
Arnaldo Carvalho de Melo (3):
perf tools: Use same signal handling strategy as 'record'
perf test: Dump the stack when test segfaults when in verbose mode
perf thread: Fix reference count initial state
He Kuang (1):
perf record: Support custom vmlinux path
Josh Poimboeuf (9):
perf build: Remove unnecessary line in Makefile.feature
perf test: Add Build file to dependencies for llvm-src-*.c
perf test: Remove tarpkg at end of test
perf build: Fix 'make clean'
perf build: Rename LIB_PATH -> API_PATH
perf tools: Create pager.h
perf tools: Remove check for unused PERF_PAGER_IN_USE
perf tools: Move help_unknown_cmd() to its own file
perf tools: Convert parse-options.c internal functions to static
Namhyung Kim (1):
perf test: Fix hist testcases when kptr_restrict is on
Wang Nan (1):
perf tools: Make options always available, even if required libs not linked
tools/build/Makefile.feature | 1 -
tools/perf/Documentation/perf-record.txt | 10 ++-
tools/perf/Makefile.perf | 15 ++--
tools/perf/builtin-probe.c | 15 +++-
tools/perf/builtin-record.c | 25 +++++-
tools/perf/tests/Build | 6 +-
tools/perf/tests/builtin-test.c | 3 +
tools/perf/tests/hists_common.c | 5 +-
tools/perf/tests/make | 3 +-
tools/perf/util/Build | 1 +
tools/perf/util/cache.h | 5 +-
tools/perf/util/evsel.c | 14 +++-
tools/perf/util/help-unknown-cmd.c | 103 +++++++++++++++++++++++
tools/perf/util/help-unknown-cmd.h | 0
tools/perf/util/help.c | 107 +-----------------------
tools/perf/util/help.h | 3 +
tools/perf/util/intel-pt.c | 4 +-
tools/perf/util/machine.c | 19 +++--
tools/perf/util/pager.c | 8 +-
tools/perf/util/pager.h | 7 ++
tools/perf/util/parse-options.c | 136 +++++++++++++++++++++++++++----
tools/perf/util/parse-options.h | 14 ++--
tools/perf/util/thread.c | 10 ++-
tools/perf/util/util.c | 3 +-
24 files changed, 341 insertions(+), 176 deletions(-)
create mode 100644 tools/perf/util/help-unknown-cmd.c
create mode 100644 tools/perf/util/help-unknown-cmd.h
create mode 100644 tools/perf/util/pager.h
^ permalink raw reply [flat|nested] 59+ messages in thread
* [GIT PULL 00/16] perf/core improvements and fixes
@ 2015-10-05 21:03 Arnaldo Carvalho de Melo
2015-10-06 7:09 ` Ingo Molnar
0 siblings, 1 reply; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-10-05 21:03 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Andi Kleen, Borislav Petkov, Chandler Carruth,
Daniel Bristot de Oliveira, David Ahern, Don Zickus, Fenghua Yu,
Frederic Weisbecker, Jiri Olsa, Kanaka Juvva, Kan Liang,
Matt Fleming, Namhyung Kim, Peter Zijlstra, Stephane Eranian,
Vikas Shivappa, Vince Weaver, Wang Nan, Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling,
- Arnaldo
The following changes since commit e3b0ac1b7a8a590440a2030e7d10d48c59ab8a2a:
Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-10-03 08:20:14 +0200)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo
for you to fetch changes up to 27bf90bf0690f55c3679bcc4c325823cf1cfd19d:
perf tools: Fail properly in case pattern matching fails to find tracepoint (2015-10-05 17:59:50 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
User visible:
- Switch the default callchain output mode to 'graph,0.5,caller', to make it
look like the default for other tools, reducing the learning curve for
people used to 'caller' based viewing (Arnaldo Carvalho de Melo)
- Implement column based horizontal scrolling in the hists browser (top, report),
making it possible to use the TUI for things like 'perf mem report' where
there are many more columns than can fit in a terminal (Arnaldo Carvalho de Melo)
- Support sorting by symbol_iaddr with perf.data files produced by
'perf mem record' (Don Zickus)
- Display DATA_SRC sample type bit, i.e. when running 'perf evlist -v' the
"DATA_SRC" wasn't appearing when set, fix it to look like: (Jiri Olsa)
cpu/mem-loads/pp: ...SNIP... sample_type: IP|TID|TIME|ADDR|CPU|PERIOD|DATA_SRC
- Introduce 'P' event modified, meaning 'max precision level, please', i.e.:
$ perf record -e cycles:P usleep 1
Is now similar to:
$ perf record usleep 1
Useful, for instance, when specifying multiple events (Jiri Olsa)
- Make 'perf -v' and 'perf -h' work (Jiri Olsa)
- Fail properly when pattern matching fails to find a tracepoint, i.e.
'-e non:existent' was being correctly handled, with a proper error message
about that not being a valid event, but '-e non:existent*' wasn't,
fix it (Jiri Olsa)
Infrastructure:
- Separate arch specific entries in 'perf test' and add an 'Intel CQM' one
to be fun on x86 only (Matt Fleming)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Arnaldo Carvalho de Melo (3):
perf callchain: Switch default to 'graph,0.5,caller'
perf ui browser: Optional horizontal scrolling key binding
perf hists browser: Implement horizontal scrolling
Don Zickus (1):
perf tools: Add support for sorting on the iaddr
Jiri Olsa (9):
tools lib api fs: No need to use PATH_MAX + 1
perf evlist: Display DATA_SRC sample type bit
perf annotate: Fix sizeof_sym_hist overflow issue
perf tools: Export perf_event_attr__set_max_precise_ip()
perf tools: Introduce 'P' modifier to request max precision
perf tests: Add parsing test for 'P' modifier
perf tools: Setup proper width for symbol_iaddr field
perf tools: Handle -h and -v options
perf tools: Fail properly in case pattern matching fails to find tracepoint
Matt Fleming (3):
perf tests: Add arch tests
perf tests: Move x86 tests into arch directory
perf tests: Add Intel CQM test
tools/lib/api/fs/fs.c | 2 +-
tools/lib/api/fs/tracing_path.c | 6 +-
tools/perf/Documentation/perf-list.txt | 1 +
tools/perf/Documentation/perf-report.txt | 2 +-
tools/perf/Documentation/perf.txt | 8 ++
tools/perf/arch/x86/Build | 2 +-
tools/perf/arch/x86/include/arch-tests.h | 19 ++++
tools/perf/arch/x86/tests/Build | 10 +-
tools/perf/arch/x86/tests/arch-tests.c | 34 ++++++
tools/perf/arch/x86/tests/dwarf-unwind.c | 1 +
.../perf/{ => arch/x86}/tests/gen-insn-x86-dat.awk | 0
.../perf/{ => arch/x86}/tests/gen-insn-x86-dat.sh | 0
tools/perf/{ => arch/x86}/tests/insn-x86-dat-32.c | 0
tools/perf/{ => arch/x86}/tests/insn-x86-dat-64.c | 0
tools/perf/{ => arch/x86}/tests/insn-x86-dat-src.c | 0
tools/perf/{ => arch/x86}/tests/insn-x86.c | 3 +-
tools/perf/arch/x86/tests/intel-cqm.c | 124 +++++++++++++++++++++
tools/perf/{ => arch/x86}/tests/perf-time-to-tsc.c | 4 +-
tools/perf/{ => arch/x86}/tests/rdpmc.c | 7 +-
tools/perf/builtin-report.c | 4 +-
tools/perf/perf.c | 14 +++
tools/perf/tests/Build | 6 -
tools/perf/tests/builtin-test.c | 56 ++++------
tools/perf/tests/dwarf-unwind.c | 4 +
tools/perf/tests/parse-events.c | 16 +++
tools/perf/tests/tests.h | 10 +-
tools/perf/ui/browser.c | 14 +++
tools/perf/ui/browser.h | 2 +-
tools/perf/ui/browsers/hists.c | 22 +++-
tools/perf/util/annotate.h | 2 +-
tools/perf/util/evlist.c | 2 +-
tools/perf/util/evlist.h | 2 +
tools/perf/util/evsel.c | 5 +-
tools/perf/util/evsel.h | 1 +
tools/perf/util/hist.c | 13 +++
tools/perf/util/hist.h | 1 +
tools/perf/util/parse-events.c | 17 ++-
tools/perf/util/parse-events.l | 2 +-
tools/perf/util/sort.c | 37 ++++++
tools/perf/util/sort.h | 1 +
tools/perf/util/util.c | 4 +-
41 files changed, 381 insertions(+), 77 deletions(-)
create mode 100644 tools/perf/arch/x86/include/arch-tests.h
create mode 100644 tools/perf/arch/x86/tests/arch-tests.c
rename tools/perf/{ => arch/x86}/tests/gen-insn-x86-dat.awk (100%)
rename tools/perf/{ => arch/x86}/tests/gen-insn-x86-dat.sh (100%)
rename tools/perf/{ => arch/x86}/tests/insn-x86-dat-32.c (100%)
rename tools/perf/{ => arch/x86}/tests/insn-x86-dat-64.c (100%)
rename tools/perf/{ => arch/x86}/tests/insn-x86-dat-src.c (100%)
rename tools/perf/{ => arch/x86}/tests/insn-x86.c (98%)
create mode 100644 tools/perf/arch/x86/tests/intel-cqm.c
rename tools/perf/{ => arch/x86}/tests/perf-time-to-tsc.c (98%)
rename tools/perf/{ => arch/x86}/tests/rdpmc.c (97%)
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes
2015-10-05 21:03 Arnaldo Carvalho de Melo
@ 2015-10-06 7:09 ` Ingo Molnar
0 siblings, 0 replies; 59+ messages in thread
From: Ingo Molnar @ 2015-10-06 7:09 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Adrian Hunter, Andi Kleen, Borislav Petkov,
Chandler Carruth, Daniel Bristot de Oliveira, David Ahern,
Don Zickus, Fenghua Yu, Frederic Weisbecker, Jiri Olsa,
Kanaka Juvva, Kan Liang, Matt Fleming, Namhyung Kim,
Peter Zijlstra, Stephane Eranian, Vikas Shivappa, Vince Weaver,
Wang Nan, Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Hi Ingo,
>
> Please consider pulling,
>
> - Arnaldo
>
> The following changes since commit e3b0ac1b7a8a590440a2030e7d10d48c59ab8a2a:
>
> Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-10-03 08:20:14 +0200)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo
>
> for you to fetch changes up to 27bf90bf0690f55c3679bcc4c325823cf1cfd19d:
>
> perf tools: Fail properly in case pattern matching fails to find tracepoint (2015-10-05 17:59:50 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> User visible:
>
> - Switch the default callchain output mode to 'graph,0.5,caller', to make it
> look like the default for other tools, reducing the learning curve for
> people used to 'caller' based viewing (Arnaldo Carvalho de Melo)
>
> - Implement column based horizontal scrolling in the hists browser (top, report),
> making it possible to use the TUI for things like 'perf mem report' where
> there are many more columns than can fit in a terminal (Arnaldo Carvalho de Melo)
>
> - Support sorting by symbol_iaddr with perf.data files produced by
> 'perf mem record' (Don Zickus)
>
> - Display DATA_SRC sample type bit, i.e. when running 'perf evlist -v' the
> "DATA_SRC" wasn't appearing when set, fix it to look like: (Jiri Olsa)
>
> cpu/mem-loads/pp: ...SNIP... sample_type: IP|TID|TIME|ADDR|CPU|PERIOD|DATA_SRC
>
> - Introduce 'P' event modified, meaning 'max precision level, please', i.e.:
>
> $ perf record -e cycles:P usleep 1
>
> Is now similar to:
>
> $ perf record usleep 1
>
> Useful, for instance, when specifying multiple events (Jiri Olsa)
>
> - Make 'perf -v' and 'perf -h' work (Jiri Olsa)
>
> - Fail properly when pattern matching fails to find a tracepoint, i.e.
> '-e non:existent' was being correctly handled, with a proper error message
> about that not being a valid event, but '-e non:existent*' wasn't,
> fix it (Jiri Olsa)
>
> Infrastructure:
>
> - Separate arch specific entries in 'perf test' and add an 'Intel CQM' one
> to be fun on x86 only (Matt Fleming)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (3):
> perf callchain: Switch default to 'graph,0.5,caller'
> perf ui browser: Optional horizontal scrolling key binding
> perf hists browser: Implement horizontal scrolling
>
> Don Zickus (1):
> perf tools: Add support for sorting on the iaddr
>
> Jiri Olsa (9):
> tools lib api fs: No need to use PATH_MAX + 1
> perf evlist: Display DATA_SRC sample type bit
> perf annotate: Fix sizeof_sym_hist overflow issue
> perf tools: Export perf_event_attr__set_max_precise_ip()
> perf tools: Introduce 'P' modifier to request max precision
> perf tests: Add parsing test for 'P' modifier
> perf tools: Setup proper width for symbol_iaddr field
> perf tools: Handle -h and -v options
> perf tools: Fail properly in case pattern matching fails to find tracepoint
>
> Matt Fleming (3):
> perf tests: Add arch tests
> perf tests: Move x86 tests into arch directory
> perf tests: Add Intel CQM test
>
> tools/lib/api/fs/fs.c | 2 +-
> tools/lib/api/fs/tracing_path.c | 6 +-
> tools/perf/Documentation/perf-list.txt | 1 +
> tools/perf/Documentation/perf-report.txt | 2 +-
> tools/perf/Documentation/perf.txt | 8 ++
> tools/perf/arch/x86/Build | 2 +-
> tools/perf/arch/x86/include/arch-tests.h | 19 ++++
> tools/perf/arch/x86/tests/Build | 10 +-
> tools/perf/arch/x86/tests/arch-tests.c | 34 ++++++
> tools/perf/arch/x86/tests/dwarf-unwind.c | 1 +
> .../perf/{ => arch/x86}/tests/gen-insn-x86-dat.awk | 0
> .../perf/{ => arch/x86}/tests/gen-insn-x86-dat.sh | 0
> tools/perf/{ => arch/x86}/tests/insn-x86-dat-32.c | 0
> tools/perf/{ => arch/x86}/tests/insn-x86-dat-64.c | 0
> tools/perf/{ => arch/x86}/tests/insn-x86-dat-src.c | 0
> tools/perf/{ => arch/x86}/tests/insn-x86.c | 3 +-
> tools/perf/arch/x86/tests/intel-cqm.c | 124 +++++++++++++++++++++
> tools/perf/{ => arch/x86}/tests/perf-time-to-tsc.c | 4 +-
> tools/perf/{ => arch/x86}/tests/rdpmc.c | 7 +-
> tools/perf/builtin-report.c | 4 +-
> tools/perf/perf.c | 14 +++
> tools/perf/tests/Build | 6 -
> tools/perf/tests/builtin-test.c | 56 ++++------
> tools/perf/tests/dwarf-unwind.c | 4 +
> tools/perf/tests/parse-events.c | 16 +++
> tools/perf/tests/tests.h | 10 +-
> tools/perf/ui/browser.c | 14 +++
> tools/perf/ui/browser.h | 2 +-
> tools/perf/ui/browsers/hists.c | 22 +++-
> tools/perf/util/annotate.h | 2 +-
> tools/perf/util/evlist.c | 2 +-
> tools/perf/util/evlist.h | 2 +
> tools/perf/util/evsel.c | 5 +-
> tools/perf/util/evsel.h | 1 +
> tools/perf/util/hist.c | 13 +++
> tools/perf/util/hist.h | 1 +
> tools/perf/util/parse-events.c | 17 ++-
> tools/perf/util/parse-events.l | 2 +-
> tools/perf/util/sort.c | 37 ++++++
> tools/perf/util/sort.h | 1 +
> tools/perf/util/util.c | 4 +-
> 41 files changed, 381 insertions(+), 77 deletions(-)
> create mode 100644 tools/perf/arch/x86/include/arch-tests.h
> create mode 100644 tools/perf/arch/x86/tests/arch-tests.c
> rename tools/perf/{ => arch/x86}/tests/gen-insn-x86-dat.awk (100%)
> rename tools/perf/{ => arch/x86}/tests/gen-insn-x86-dat.sh (100%)
> rename tools/perf/{ => arch/x86}/tests/insn-x86-dat-32.c (100%)
> rename tools/perf/{ => arch/x86}/tests/insn-x86-dat-64.c (100%)
> rename tools/perf/{ => arch/x86}/tests/insn-x86-dat-src.c (100%)
> rename tools/perf/{ => arch/x86}/tests/insn-x86.c (98%)
> create mode 100644 tools/perf/arch/x86/tests/intel-cqm.c
> rename tools/perf/{ => arch/x86}/tests/perf-time-to-tsc.c (98%)
> rename tools/perf/{ => arch/x86}/tests/rdpmc.c (97%)
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 59+ messages in thread
* [GIT PULL 00/16] perf/core improvements and fixes
@ 2015-08-25 16:14 Arnaldo Carvalho de Melo
2015-08-26 13:39 ` Arnaldo Carvalho de Melo
0 siblings, 1 reply; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-08-25 16:14 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Borislav Petkov, David Ahern, Frederic Weisbecker, Jiri Olsa,
Masami Hiramatsu, Namhyung Kim, pi3orama, Stephane Eranian,
Wang Nan, Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling, now to get back looking at eBPF :-)
- Arnaldo
The following changes since commit 0e53909a1cf0153736fb52c216558a65530d8c40:
Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-08-22 08:45:46 +0200)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo
for you to fetch changes up to 1cbebfc7abb549ed3f4080e12c4d7b07d1f16637:
perf probe: Support probing at absolute addresses (2015-08-25 12:36:22 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
User visible:
- Add support for using several Intel PT features (CYC, MTC packets), the
relevant documentation was updated: tools/perf/Documentation/intel-pt.txt,
briefly describing those packets, its purposes, how to configure them in
the event config terms and relevant external documentation for further
reading. (Adrian Hunter)
- Introduce support for probing at an absolut address, for user and kernel
'perf probe's, useful when one have the symbol maps on a developer machine
but not on an embedded system (Wang Nan)
- Clear the progress bar at the end of a ordered_events flush, fixing
an UI artifact when, after ordering the events the screen doesn't get
completely redraw, for instance, when an error window covers just the
center of the screen and waits for user input. (Arnaldo Carvalho de Melo)
- Fix 'annotate' segfault by resetting the dso find_symbol cache when removing
symbols (Arnaldo Carvalho de Melo)
Infrastructure:
- Fix Intel PT 'instructions' sample period (Adrian Hunter)
- Prevent segfault when reading probe point with absolute address (Wang Nan)
Build fixes:
- Fix tarball build broken by pt/bts (Adrian Hunter)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Adrian Hunter (11):
perf tools: Fix tarball build broken by pt/bts
perf tools: Fix Intel PT 'instructions' sample period
perf tools: Add Intel PT support for PSB periods
perf tools: Add new Intel PT packet definitions
perf tools: Pass Intel PT information for decoding MTC and CYC
perf tools: Add Intel PT support for decoding MTC packets
perf tools: Add Intel PT support for using MTC packets
perf tools: Add Intel PT support for decoding CYC packets
perf tools: Add Intel PT support for using CYC packets
perf tools: Add Intel PT support for decoding TRACESTOP packets
perf tools: Update Intel PT documentation
Arnaldo Carvalho de Melo (3):
perf annotate: Reset the dso find_symbol cache when removing symbols
perf ui tui progress: Implement the ui_progress_ops->finish() method
perf ordered_events: Clear the progress bar at the end of a flush
Wang Nan (2):
perf probe: Prevent segfault when reading probe point with absolute address
perf probe: Support probing at absolute addresses
tools/perf/Documentation/intel-pt.txt | 194 ++++++-
tools/perf/arch/x86/util/intel-pt.c | 271 +++++++++-
tools/perf/builtin-annotate.c | 1 +
tools/perf/ui/tui/progress.c | 19 +-
tools/perf/util/dso.h | 2 +
tools/perf/util/intel-pt-decoder/inat.c | 2 +-
tools/perf/util/intel-pt-decoder/inat.h | 2 +-
tools/perf/util/intel-pt-decoder/inat_types.h | 29 ++
tools/perf/util/intel-pt-decoder/insn.c | 4 +-
tools/perf/util/intel-pt-decoder/insn.h | 2 +-
.../perf/util/intel-pt-decoder/intel-pt-decoder.c | 555 ++++++++++++++++++++-
.../perf/util/intel-pt-decoder/intel-pt-decoder.h | 5 +
.../util/intel-pt-decoder/intel-pt-insn-decoder.c | 2 +-
.../util/intel-pt-decoder/intel-pt-pkt-decoder.c | 142 +++++-
.../util/intel-pt-decoder/intel-pt-pkt-decoder.h | 6 +
tools/perf/util/intel-pt.c | 67 ++-
tools/perf/util/intel-pt.h | 5 +
tools/perf/util/ordered-events.c | 3 +
tools/perf/util/probe-event.c | 152 +++++-
tools/perf/util/probe-event.h | 3 +
tools/perf/util/probe-finder.c | 21 +-
tools/perf/util/symbol.c | 10 +
22 files changed, 1404 insertions(+), 93 deletions(-)
create mode 100644 tools/perf/util/intel-pt-decoder/inat_types.h
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes
2015-08-25 16:14 Arnaldo Carvalho de Melo
@ 2015-08-26 13:39 ` Arnaldo Carvalho de Melo
0 siblings, 0 replies; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-08-26 13:39 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Adrian Hunter, Borislav Petkov, David Ahern,
Frederic Weisbecker, Jiri Olsa, Masami Hiramatsu, Namhyung Kim,
pi3orama, Stephane Eranian, Wang Nan
Em Tue, Aug 25, 2015 at 01:14:22PM -0300, Arnaldo Carvalho de Melo escreveu:
> Hi Ingo,
>
> Please consider pulling, now to get back looking at eBPF :-)
Ingo, please do not process this one, there was a NAK from Masami to
some new syntax on adding non symbolic probes, will resubmit with the
new patches provided by Wang Nan that already got Masami's approval.
- Arnaldo
> - Arnaldo
>
> The following changes since commit 0e53909a1cf0153736fb52c216558a65530d8c40:
>
> Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-08-22 08:45:46 +0200)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo
>
> for you to fetch changes up to 1cbebfc7abb549ed3f4080e12c4d7b07d1f16637:
>
> perf probe: Support probing at absolute addresses (2015-08-25 12:36:22 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> User visible:
>
> - Add support for using several Intel PT features (CYC, MTC packets), the
> relevant documentation was updated: tools/perf/Documentation/intel-pt.txt,
> briefly describing those packets, its purposes, how to configure them in
> the event config terms and relevant external documentation for further
> reading. (Adrian Hunter)
>
> - Introduce support for probing at an absolut address, for user and kernel
> 'perf probe's, useful when one have the symbol maps on a developer machine
> but not on an embedded system (Wang Nan)
>
> - Clear the progress bar at the end of a ordered_events flush, fixing
> an UI artifact when, after ordering the events the screen doesn't get
> completely redraw, for instance, when an error window covers just the
> center of the screen and waits for user input. (Arnaldo Carvalho de Melo)
>
> - Fix 'annotate' segfault by resetting the dso find_symbol cache when removing
> symbols (Arnaldo Carvalho de Melo)
>
> Infrastructure:
>
> - Fix Intel PT 'instructions' sample period (Adrian Hunter)
>
> - Prevent segfault when reading probe point with absolute address (Wang Nan)
>
> Build fixes:
>
> - Fix tarball build broken by pt/bts (Adrian Hunter)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Adrian Hunter (11):
> perf tools: Fix tarball build broken by pt/bts
> perf tools: Fix Intel PT 'instructions' sample period
> perf tools: Add Intel PT support for PSB periods
> perf tools: Add new Intel PT packet definitions
> perf tools: Pass Intel PT information for decoding MTC and CYC
> perf tools: Add Intel PT support for decoding MTC packets
> perf tools: Add Intel PT support for using MTC packets
> perf tools: Add Intel PT support for decoding CYC packets
> perf tools: Add Intel PT support for using CYC packets
> perf tools: Add Intel PT support for decoding TRACESTOP packets
> perf tools: Update Intel PT documentation
>
> Arnaldo Carvalho de Melo (3):
> perf annotate: Reset the dso find_symbol cache when removing symbols
> perf ui tui progress: Implement the ui_progress_ops->finish() method
> perf ordered_events: Clear the progress bar at the end of a flush
>
> Wang Nan (2):
> perf probe: Prevent segfault when reading probe point with absolute address
> perf probe: Support probing at absolute addresses
>
> tools/perf/Documentation/intel-pt.txt | 194 ++++++-
> tools/perf/arch/x86/util/intel-pt.c | 271 +++++++++-
> tools/perf/builtin-annotate.c | 1 +
> tools/perf/ui/tui/progress.c | 19 +-
> tools/perf/util/dso.h | 2 +
> tools/perf/util/intel-pt-decoder/inat.c | 2 +-
> tools/perf/util/intel-pt-decoder/inat.h | 2 +-
> tools/perf/util/intel-pt-decoder/inat_types.h | 29 ++
> tools/perf/util/intel-pt-decoder/insn.c | 4 +-
> tools/perf/util/intel-pt-decoder/insn.h | 2 +-
> .../perf/util/intel-pt-decoder/intel-pt-decoder.c | 555 ++++++++++++++++++++-
> .../perf/util/intel-pt-decoder/intel-pt-decoder.h | 5 +
> .../util/intel-pt-decoder/intel-pt-insn-decoder.c | 2 +-
> .../util/intel-pt-decoder/intel-pt-pkt-decoder.c | 142 +++++-
> .../util/intel-pt-decoder/intel-pt-pkt-decoder.h | 6 +
> tools/perf/util/intel-pt.c | 67 ++-
> tools/perf/util/intel-pt.h | 5 +
> tools/perf/util/ordered-events.c | 3 +
> tools/perf/util/probe-event.c | 152 +++++-
> tools/perf/util/probe-event.h | 3 +
> tools/perf/util/probe-finder.c | 21 +-
> tools/perf/util/symbol.c | 10 +
> 22 files changed, 1404 insertions(+), 93 deletions(-)
> create mode 100644 tools/perf/util/intel-pt-decoder/inat_types.h
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 59+ messages in thread
* [GIT PULL 00/16] perf/core improvements and fixes
@ 2015-04-07 16:40 ` Arnaldo Carvalho de Melo
0 siblings, 0 replies; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-04-07 16:40 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Andrew Morton, Borislav Petkov, David Ahern, Don Zickus,
Frederic Weisbecker, He Kuang, H. Peter Anvin, Jiri Olsa,
John Stultz, Joonsoo Kim, Linus Torvalds, linux-mm, Minchan Kim,
Namhyung Kim, Paul Mackerras, Peter Zijlstra, pi3orama,
Stephane Eranian, Steven Rostedt, Thomas Gleixner, Wang Nan,
Yunlong Song, Zefan Li, Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling,
- Arnaldo
The following changes since commit 6645f3187f5beb64f7a40515cfa18f3889264ece:
Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-04-03 07:00:02 +0200)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo
for you to fetch changes up to d083e5ff09eccc0afd44e02ec85f10c06271e93b:
perf tools: Merge all perf_event_attr print functions (2015-04-07 13:25:05 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
- Teach about perf_event_attr.clockid to 'perf record' (Peter Zijlstra)
- perf sched replay improvements for high CPU core count machines (Yunlong Song)
- Consider PERF_RECORD_ events with cpumode == 0 in 'perf top', removing one
cause of long term memory usage buildup, i.e. not processing PERF_RECORD_EXIT
events (Arnaldo Carvalho de Melo)
- Respect -i option 'in perf kmem' (Jiri Olsa)
Infrastructure:
- Honor operator priority in libtraceevent (Namhyung Kim)
- Merge all perf_event_attr print functions (Peter Zijlstra)
- Check kmaps access to make code more robust (Wang Nan)
- Fix inverted logic in perf_mmap__empty() (He Kuang)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Arnaldo Carvalho de Melo (1):
perf top: Consider PERF_RECORD_ events with cpumode == 0
He Kuang (1):
perf evlist: Fix inverted logic in perf_mmap__empty
Jiri Olsa (1):
perf kmem: Respect -i option
Namhyung Kim (1):
tools lib traceevent: Honor operator priority
Peter Zijlstra (2):
perf record: Add clockid parameter
perf tools: Merge all perf_event_attr print functions
Wang Nan (1):
perf kmaps: Check kmaps to make code more robust
Yunlong Song (9):
perf sched replay: Use struct task_desc instead of struct task_task for correct meaning
perf sched replay: Increase the MAX_PID value to fix assertion failure problem
perf sched replay: Alloc the memory of pid_to_task dynamically to adapt to the unexpected change of pid_max
perf sched replay: Realloc the memory of pid_to_task stepwise to adapt to the different pid_max configurations
perf sched replay: Fix the segmentation fault problem caused by pr_err in threads
perf sched replay: Handle the dead halt of sem_wait when create_tasks() fails for any task
perf sched replay: Fix the EMFILE error caused by the limitation of the maximum open files
perf sched replay: Support using -f to override perf.data file ownership
perf sched replay: Use replay_repeat to calculate the runavg of cpu usage instead of the default value 10
tools/lib/traceevent/event-parse.c | 17 +-
tools/perf/Documentation/perf-record.txt | 7 +
tools/perf/builtin-kmem.c | 3 +-
tools/perf/builtin-record.c | 80 ++++++++
tools/perf/builtin-sched.c | 67 +++++--
tools/perf/builtin-top.c | 8 +-
tools/perf/perf.h | 2 +
tools/perf/util/evlist.c | 2 +-
tools/perf/util/evsel.c | 325 ++++++++++++++++---------------
tools/perf/util/evsel.h | 6 +
tools/perf/util/header.c | 28 +--
tools/perf/util/machine.c | 5 +-
tools/perf/util/map.c | 20 ++
tools/perf/util/map.h | 6 +-
tools/perf/util/probe-event.c | 2 +
tools/perf/util/session.c | 3 +
tools/perf/util/symbol-elf.c | 16 +-
tools/perf/util/symbol.c | 34 +++-
18 files changed, 422 insertions(+), 209 deletions(-)
^ permalink raw reply [flat|nested] 59+ messages in thread
* [GIT PULL 00/16] perf/core improvements and fixes
@ 2015-04-07 16:40 ` Arnaldo Carvalho de Melo
0 siblings, 0 replies; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-04-07 16:40 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Andrew Morton, Borislav Petkov, David Ahern, Don Zickus,
Frederic Weisbecker, He Kuang, H. Peter Anvin, Jiri Olsa,
John Stultz, Joonsoo Kim, Linus Torvalds, linux-mm, Minchan Kim,
Namhyung Kim, Paul Mackerras, Peter Zijlstra, pi3orama,
Stephane Eranian, Steven Rostedt, Thomas Gleixner, Wang Nan,
Yunlong Song, Zefan Li, Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling,
- Arnaldo
The following changes since commit 6645f3187f5beb64f7a40515cfa18f3889264ece:
Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-04-03 07:00:02 +0200)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo
for you to fetch changes up to d083e5ff09eccc0afd44e02ec85f10c06271e93b:
perf tools: Merge all perf_event_attr print functions (2015-04-07 13:25:05 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
- Teach about perf_event_attr.clockid to 'perf record' (Peter Zijlstra)
- perf sched replay improvements for high CPU core count machines (Yunlong Song)
- Consider PERF_RECORD_ events with cpumode == 0 in 'perf top', removing one
cause of long term memory usage buildup, i.e. not processing PERF_RECORD_EXIT
events (Arnaldo Carvalho de Melo)
- Respect -i option 'in perf kmem' (Jiri Olsa)
Infrastructure:
- Honor operator priority in libtraceevent (Namhyung Kim)
- Merge all perf_event_attr print functions (Peter Zijlstra)
- Check kmaps access to make code more robust (Wang Nan)
- Fix inverted logic in perf_mmap__empty() (He Kuang)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Arnaldo Carvalho de Melo (1):
perf top: Consider PERF_RECORD_ events with cpumode == 0
He Kuang (1):
perf evlist: Fix inverted logic in perf_mmap__empty
Jiri Olsa (1):
perf kmem: Respect -i option
Namhyung Kim (1):
tools lib traceevent: Honor operator priority
Peter Zijlstra (2):
perf record: Add clockid parameter
perf tools: Merge all perf_event_attr print functions
Wang Nan (1):
perf kmaps: Check kmaps to make code more robust
Yunlong Song (9):
perf sched replay: Use struct task_desc instead of struct task_task for correct meaning
perf sched replay: Increase the MAX_PID value to fix assertion failure problem
perf sched replay: Alloc the memory of pid_to_task dynamically to adapt to the unexpected change of pid_max
perf sched replay: Realloc the memory of pid_to_task stepwise to adapt to the different pid_max configurations
perf sched replay: Fix the segmentation fault problem caused by pr_err in threads
perf sched replay: Handle the dead halt of sem_wait when create_tasks() fails for any task
perf sched replay: Fix the EMFILE error caused by the limitation of the maximum open files
perf sched replay: Support using -f to override perf.data file ownership
perf sched replay: Use replay_repeat to calculate the runavg of cpu usage instead of the default value 10
tools/lib/traceevent/event-parse.c | 17 +-
tools/perf/Documentation/perf-record.txt | 7 +
tools/perf/builtin-kmem.c | 3 +-
tools/perf/builtin-record.c | 80 ++++++++
tools/perf/builtin-sched.c | 67 +++++--
tools/perf/builtin-top.c | 8 +-
tools/perf/perf.h | 2 +
tools/perf/util/evlist.c | 2 +-
tools/perf/util/evsel.c | 325 ++++++++++++++++---------------
tools/perf/util/evsel.h | 6 +
tools/perf/util/header.c | 28 +--
tools/perf/util/machine.c | 5 +-
tools/perf/util/map.c | 20 ++
tools/perf/util/map.h | 6 +-
tools/perf/util/probe-event.c | 2 +
tools/perf/util/session.c | 3 +
tools/perf/util/symbol-elf.c | 16 +-
tools/perf/util/symbol.c | 34 +++-
18 files changed, 422 insertions(+), 209 deletions(-)
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply [flat|nested] 59+ messages in thread
* [GIT PULL 00/16] perf/core improvements and fixes
@ 2014-11-19 16:03 Arnaldo Carvalho de Melo
2014-11-20 7:33 ` Ingo Molnar
0 siblings, 1 reply; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2014-11-19 16:03 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Andi Kleen, Aravinda Prasad, Borislav Petkov, Brendan Gregg,
Corey Ashford, David Ahern, Don Zickus, Frederic Weisbecker,
Hemant Kumar, Jean Pihet, Jiri Olsa, Kan Liang, Masami Hiramatsu,
Mike Galbraith, Namhyung Kim, Oleg Nesterov, Paul Mackerras,
Pekka Enberg, Peter Zijlstra, Srikar Dronamraju,
Stephane Eranian, Steven Rostedt, systemtap, Vasant Hegde,
WANG Chao, Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling,
- Arnaldo
The following changes since commit 2565711fb7d7c28e0cd93c8971b520d1b10b857c:
perf: Improve the perf_sample_data struct layout (2014-11-16 11:42:04 +0100)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo
for you to fetch changes up to a84808083688d82d7f1e5786ccf5df0ff7d448cb:
perf tools: Only override the default :tid comm entry (2014-11-19 12:37:26 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
User visible fixes:
- Fallback to kallsyms when using the minimal 'ELF' loader (Arnaldo Carvalho de Melo)
- Fix annotation with kcore (Adrian Hunter)
- Fix up srcline histogram key formatting (Arnaldo Carvalho de Melo)
- Add missing handler for PERF_RECORD_MMAP2 events in 'perf diff' (Kan Liang)
User visible changes/new features:
- Only print base source file for srcline histogram sort key (Andi Kleen)
- Support source line numbers in annotate using a hotkey (Andi Kleen)
Infrastructure:
- Do not poll events that use the system_wide flag (Adrian Hunter)
- Add perf-read-vdso32 and perf-read-vdsox32 to .gitignore (Adrian Hunter)
perf tools: Only override the default :tid comm entry (Adrian Hunter)
- Factor out adding new call chain entries (Andi Kleen)
- Use al.addr to set up call chain (Andi Kleen)
- Use a common function to resolve symbol or name (Andi Kleen)
- Fix ftrace:function event recording (Jiri Olsa)
- Move disable_buildid_cache() to util/build-id.c (Namhyung Kim)
- Clean up libelf feature support code (Namhyung Kim)
- fix typo in python 'perf test' (WANG Chao)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Adrian Hunter (4):
perf tools: Fix annotation with kcore
perf evlist: Do not poll events that use the system_wide flag
perf tools: Add perf-read-vdso32 and perf-read-vdsox32 to .gitignore
perf tools: Only override the default :tid comm entry
Andi Kleen (5):
perf callchain: Factor out adding new call chain entries
perf callchain: Use al.addr to set up call chain
perf callchain: Use a common function to resolve symbol or name
perf tools: Only print base source file for srcline
perf annotate: Support source line numbers in annotate
Arnaldo Carvalho de Melo (2):
perf symbols: Fallback to kallsyms when using the minimal 'ELF' loader
perf hists: Fix up srcline histogram key formatting
Jiri Olsa (1):
perf evsel: Fix ftrace:function event recording
Kan Liang (1):
perf diff: Add missing handler for PERF_RECORD_MMAP2 events
Namhyung Kim (2):
perf build-id: Move disable_buildid_cache() to util/build-id.c
perf tools: Clean up libelf feature support code
WANG Chao (1):
perf test: fix typo in python test
tools/perf/.gitignore | 2 ++
tools/perf/Makefile.perf | 2 --
tools/perf/builtin-diff.c | 1 +
tools/perf/config/Makefile | 5 ++--
tools/perf/tests/builtin-test.c | 2 +-
tools/perf/ui/browsers/annotate.c | 13 +++++++++-
tools/perf/ui/browsers/hists.c | 17 -------------
tools/perf/ui/gtk/hists.c | 11 +--------
tools/perf/ui/stdio/hist.c | 23 +++++++-----------
tools/perf/util/annotate.c | 32 ++++++++++++++++++++----
tools/perf/util/annotate.h | 1 +
tools/perf/util/build-id.c | 11 +++++++++
tools/perf/util/build-id.h | 1 +
tools/perf/util/callchain.c | 19 +++++++++++++++
tools/perf/util/callchain.h | 3 +++
tools/perf/util/evlist.c | 10 +++++++-
tools/perf/util/evsel.c | 8 ++++++
tools/perf/util/header.c | 10 +-------
tools/perf/util/machine.c | 51 ++++++++++++++++++++++++---------------
tools/perf/util/sort.c | 2 +-
tools/perf/util/srcline.c | 2 +-
tools/perf/util/symbol-minimal.c | 1 -
tools/perf/util/thread.c | 5 ++--
tools/perf/util/util.h | 1 -
24 files changed, 145 insertions(+), 88 deletions(-)
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes
2014-11-19 16:03 Arnaldo Carvalho de Melo
@ 2014-11-20 7:33 ` Ingo Molnar
0 siblings, 0 replies; 59+ messages in thread
From: Ingo Molnar @ 2014-11-20 7:33 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Adrian Hunter, Andi Kleen, Aravinda Prasad,
Borislav Petkov, Brendan Gregg, Corey Ashford, David Ahern,
Don Zickus, Frederic Weisbecker, Hemant Kumar, Jean Pihet,
Jiri Olsa, Kan Liang, Masami Hiramatsu, Mike Galbraith,
Namhyung Kim, Oleg Nesterov, Paul Mackerras, Pekka Enberg,
Peter Zijlstra, Srikar Dronamraju, Stephane Eranian,
Steven Rostedt, systemtap, Vasant Hegde, WANG Chao,
Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Hi Ingo,
>
> Please consider pulling,
>
> - Arnaldo
>
> The following changes since commit 2565711fb7d7c28e0cd93c8971b520d1b10b857c:
>
> perf: Improve the perf_sample_data struct layout (2014-11-16 11:42:04 +0100)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo
>
> for you to fetch changes up to a84808083688d82d7f1e5786ccf5df0ff7d448cb:
>
> perf tools: Only override the default :tid comm entry (2014-11-19 12:37:26 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> User visible fixes:
>
> - Fallback to kallsyms when using the minimal 'ELF' loader (Arnaldo Carvalho de Melo)
>
> - Fix annotation with kcore (Adrian Hunter)
>
> - Fix up srcline histogram key formatting (Arnaldo Carvalho de Melo)
>
> - Add missing handler for PERF_RECORD_MMAP2 events in 'perf diff' (Kan Liang)
>
> User visible changes/new features:
>
> - Only print base source file for srcline histogram sort key (Andi Kleen)
>
> - Support source line numbers in annotate using a hotkey (Andi Kleen)
>
> Infrastructure:
>
> - Do not poll events that use the system_wide flag (Adrian Hunter)
>
> - Add perf-read-vdso32 and perf-read-vdsox32 to .gitignore (Adrian Hunter)
>
> perf tools: Only override the default :tid comm entry (Adrian Hunter)
>
> - Factor out adding new call chain entries (Andi Kleen)
>
> - Use al.addr to set up call chain (Andi Kleen)
>
> - Use a common function to resolve symbol or name (Andi Kleen)
>
> - Fix ftrace:function event recording (Jiri Olsa)
>
> - Move disable_buildid_cache() to util/build-id.c (Namhyung Kim)
>
> - Clean up libelf feature support code (Namhyung Kim)
>
> - fix typo in python 'perf test' (WANG Chao)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Adrian Hunter (4):
> perf tools: Fix annotation with kcore
> perf evlist: Do not poll events that use the system_wide flag
> perf tools: Add perf-read-vdso32 and perf-read-vdsox32 to .gitignore
> perf tools: Only override the default :tid comm entry
>
> Andi Kleen (5):
> perf callchain: Factor out adding new call chain entries
> perf callchain: Use al.addr to set up call chain
> perf callchain: Use a common function to resolve symbol or name
> perf tools: Only print base source file for srcline
> perf annotate: Support source line numbers in annotate
>
> Arnaldo Carvalho de Melo (2):
> perf symbols: Fallback to kallsyms when using the minimal 'ELF' loader
> perf hists: Fix up srcline histogram key formatting
>
> Jiri Olsa (1):
> perf evsel: Fix ftrace:function event recording
>
> Kan Liang (1):
> perf diff: Add missing handler for PERF_RECORD_MMAP2 events
>
> Namhyung Kim (2):
> perf build-id: Move disable_buildid_cache() to util/build-id.c
> perf tools: Clean up libelf feature support code
>
> WANG Chao (1):
> perf test: fix typo in python test
>
> tools/perf/.gitignore | 2 ++
> tools/perf/Makefile.perf | 2 --
> tools/perf/builtin-diff.c | 1 +
> tools/perf/config/Makefile | 5 ++--
> tools/perf/tests/builtin-test.c | 2 +-
> tools/perf/ui/browsers/annotate.c | 13 +++++++++-
> tools/perf/ui/browsers/hists.c | 17 -------------
> tools/perf/ui/gtk/hists.c | 11 +--------
> tools/perf/ui/stdio/hist.c | 23 +++++++-----------
> tools/perf/util/annotate.c | 32 ++++++++++++++++++++----
> tools/perf/util/annotate.h | 1 +
> tools/perf/util/build-id.c | 11 +++++++++
> tools/perf/util/build-id.h | 1 +
> tools/perf/util/callchain.c | 19 +++++++++++++++
> tools/perf/util/callchain.h | 3 +++
> tools/perf/util/evlist.c | 10 +++++++-
> tools/perf/util/evsel.c | 8 ++++++
> tools/perf/util/header.c | 10 +-------
> tools/perf/util/machine.c | 51 ++++++++++++++++++++++++---------------
> tools/perf/util/sort.c | 2 +-
> tools/perf/util/srcline.c | 2 +-
> tools/perf/util/symbol-minimal.c | 1 -
> tools/perf/util/thread.c | 5 ++--
> tools/perf/util/util.h | 1 -
> 24 files changed, 145 insertions(+), 88 deletions(-)
Pulled into tip:perf/core, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 59+ messages in thread
* [GIT PULL 00/16] perf/core improvements and fixes
@ 2014-08-22 16:29 Arnaldo Carvalho de Melo
2014-08-24 10:11 ` Ingo Molnar
0 siblings, 1 reply; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2014-08-22 16:29 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Andi Kleen, Corey Ashford, David Ahern, Don Zickus,
Frederic Weisbecker, Jean Pihet, Jiri Olsa, Joe Mario,
Michael Ellerman, Namhyung Kim, Paul Mackerras, Peter Zijlstra,
Stephane Eranian, Sukadev Bhattiprolu, Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling,
- Arnaldo
The following changes since commit af924aa35129edf338ebc8da6a4eae08cf7cb297:
Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2014-08-18 10:14: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
for you to fetch changes up to 141da74d2eff8de134c5a5ffaf2800a8a1b27517:
perf hists browser: Consolidate callchain print functions in TUI (2014-08-22 13:12:15 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
User visible:
o Don't try to find DSOs in SYSV maps (Don Zickus)
o Fallback to MAP__FUNCTION if daddr maps are NULL,
i.e. addresses get looked upon more maps (Don Zickus)
o Kernel fix to properly handle exited tasks, by returning POLLHUP values
on perf event file descriptors. Tooling changes will come next, but were
tested with this kernel fix. (Jiri Olsa)
o Add +field argument support for --field option, so that one can add
fields to the default list of fields to show, i.e. now one can just do:
perf report --fields +pid
And the pid will appear in addition to the default fields. (Jiri Olsa)
Developer stuff:
o More Intel PT prep stuff, including:
- Add a 'perf test' for tracking with sched_switch
- Add 'flush' callback to scripting API
o hists browser (used in top and report) refactorings, getting rid of unused
variables and reducing source code size by handling similar cases in a
fewer functions (Namhyung Kim).
o Explicitly include util/debug.h for powerpc, was being indirectly included,
broke the build when some change made it stop being included. (Sukadev
Bhattiprolu)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Adrian Hunter (4):
perf tests: Add a test for tracking with sched_switch
perf scripting: Add 'flush' callback to scripting API
perf machine: Rename machine__get_kernel_start_addr() method
perf tools: Add machine__kernel_ip()
Don Zickus (2):
perf symbols: Don't try to find DSOs in SYSV maps
perf machine: Fallback to MAP__FUNCTION if daddr maps are NULL
Jiri Olsa (4):
perf: Fix perf_poll to return proper POLLHUP value
perf: Add PERF_EVENT_STATE_EXIT state for events with exited task
perf top: Use set_term_quiet() instead of open coded equivalent
perf tools: Add +field argument support for --field option
Namhyung Kim (5):
perf hists browser: Get rid of unused 'remaining' variable
perf hists browser: Fix children overhead dump
perf hists browser: Factor out hist_browser__show_callchain_entry()
perf hists browser: Cleanup callchain print functions
perf hists browser: Consolidate callchain print functions in TUI
Sukadev Bhattiprolu (1):
perf tools powerpc: Explicitly include util/debug.h
include/linux/perf_event.h | 1 +
kernel/events/core.c | 12 +-
tools/perf/Makefile.perf | 1 +
tools/perf/arch/powerpc/util/skip-callchain-idx.c | 1 +
tools/perf/builtin-script.c | 13 +
tools/perf/builtin-top.c | 9 +-
tools/perf/tests/builtin-test.c | 4 +
tools/perf/tests/switch-tracking.c | 572 +++++++++++++++++++++
tools/perf/tests/tests.h | 1 +
tools/perf/ui/browsers/hists.c | 343 +++++-------
tools/perf/ui/hist.c | 6 +-
tools/perf/util/event.c | 6 +-
tools/perf/util/machine.c | 41 +-
tools/perf/util/machine.h | 17 +
tools/perf/util/map.c | 1 +
.../perf/util/scripting-engines/trace-event-perl.c | 6 +
.../util/scripting-engines/trace-event-python.c | 6 +
tools/perf/util/sort.c | 24 +-
tools/perf/util/sort.h | 1 +
tools/perf/util/trace-event-scripting.c | 7 +
tools/perf/util/trace-event.h | 1 +
21 files changed, 827 insertions(+), 246 deletions(-)
create mode 100644 tools/perf/tests/switch-tracking.c
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes
2014-08-22 16:29 Arnaldo Carvalho de Melo
@ 2014-08-24 10:11 ` Ingo Molnar
2014-08-24 11:16 ` Arnaldo Carvalho de Melo
0 siblings, 1 reply; 59+ messages in thread
From: Ingo Molnar @ 2014-08-24 10:11 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Adrian Hunter, Andi Kleen, Corey Ashford,
David Ahern, Don Zickus, Frederic Weisbecker, Jean Pihet,
Jiri Olsa, Joe Mario, Michael Ellerman, Namhyung Kim,
Paul Mackerras, Peter Zijlstra, Stephane Eranian,
Sukadev Bhattiprolu, Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Hi Ingo,
>
> Please consider pulling,
>
> - Arnaldo
>
> The following changes since commit af924aa35129edf338ebc8da6a4eae08cf7cb297:
>
> Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2014-08-18 10:14: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
>
> for you to fetch changes up to 141da74d2eff8de134c5a5ffaf2800a8a1b27517:
>
> perf hists browser: Consolidate callchain print functions in TUI (2014-08-22 13:12:15 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> User visible:
>
> o Don't try to find DSOs in SYSV maps (Don Zickus)
>
> o Fallback to MAP__FUNCTION if daddr maps are NULL,
> i.e. addresses get looked upon more maps (Don Zickus)
>
> o Kernel fix to properly handle exited tasks, by returning POLLHUP values
> on perf event file descriptors. Tooling changes will come next, but were
> tested with this kernel fix. (Jiri Olsa)
So the signoffs are really weird (and invalid) here:
commit ce1d77c667e40631d6673717e65e72f72265bf10
Author: Jiri Olsa <jolsa@kernel.org>
Date: Fri Aug 15 16:24:45 2014 -0300
perf top: Use set_term_quiet() instead of open coded equivalent
...
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/n/tip-h7n9te70flmaqfnj6l06ay6r@git.kernel.org
[ Yanked this out of a patch containing this and some other change ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
and in 7713886adc15 and f017bf0a8d92 - results of a rebase gone wrong?
Thanks,
Ingo
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes
2014-08-24 10:11 ` Ingo Molnar
@ 2014-08-24 11:16 ` Arnaldo Carvalho de Melo
2014-08-24 14:47 ` Ingo Molnar
0 siblings, 1 reply; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2014-08-24 11:16 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Adrian Hunter, Andi Kleen, Corey Ashford,
David Ahern, Don Zickus, Frederic Weisbecker, Jean Pihet,
Jiri Olsa, Joe Mario, Michael Ellerman, Namhyung Kim,
Paul Mackerras, Peter Zijlstra, Stephane Eranian,
Sukadev Bhattiprolu
Em Sun, Aug 24, 2014 at 12:11:24PM +0200, Ingo Molnar escreveu:
> * Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> > o Kernel fix to properly handle exited tasks, by returning POLLHUP values
> > on perf event file descriptors. Tooling changes will come next, but were
> > tested with this kernel fix. (Jiri Olsa)
> So the signoffs are really weird (and invalid) here:
> commit ce1d77c667e40631d6673717e65e72f72265bf10
> Author: Jiri Olsa <jolsa@kernel.org>
> Date: Fri Aug 15 16:24:45 2014 -0300
> perf top: Use set_term_quiet() instead of open coded equivalent
> ...
> Cc: Jiri Olsa <jolsa@kernel.org>
> Cc: Namhyung Kim <namhyung@kernel.org>
> Cc: Paul Mackerras <paulus@samba.org>
> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
> Link: http://lkml.kernel.org/n/tip-h7n9te70flmaqfnj6l06ay6r@git.kernel.org
> [ Yanked this out of a patch containing this and some other change ]
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> and in 7713886adc15 and f017bf0a8d92 - results of a rebase gone wrong?
Should be ok now, I recreated the perf-core-for-mingo signed tag, please
let me know if there are still any problems,
Thanks!
- Arnaldo
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes
2014-08-24 11:16 ` Arnaldo Carvalho de Melo
@ 2014-08-24 14:47 ` Ingo Molnar
0 siblings, 0 replies; 59+ messages in thread
From: Ingo Molnar @ 2014-08-24 14:47 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Adrian Hunter, Andi Kleen, Corey Ashford,
David Ahern, Don Zickus, Frederic Weisbecker, Jean Pihet,
Jiri Olsa, Joe Mario, Michael Ellerman, Namhyung Kim,
Paul Mackerras, Peter Zijlstra, Stephane Eranian,
Sukadev Bhattiprolu
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Em Sun, Aug 24, 2014 at 12:11:24PM +0200, Ingo Molnar escreveu:
> > * Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> > > o Kernel fix to properly handle exited tasks, by returning POLLHUP values
> > > on perf event file descriptors. Tooling changes will come next, but were
> > > tested with this kernel fix. (Jiri Olsa)
>
> > So the signoffs are really weird (and invalid) here:
>
> > commit ce1d77c667e40631d6673717e65e72f72265bf10
> > Author: Jiri Olsa <jolsa@kernel.org>
> > Date: Fri Aug 15 16:24:45 2014 -0300
>
> > perf top: Use set_term_quiet() instead of open coded equivalent
>
> > ...
> > Cc: Jiri Olsa <jolsa@kernel.org>
> > Cc: Namhyung Kim <namhyung@kernel.org>
> > Cc: Paul Mackerras <paulus@samba.org>
> > Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
> > Link: http://lkml.kernel.org/n/tip-h7n9te70flmaqfnj6l06ay6r@git.kernel.org
> > [ Yanked this out of a patch containing this and some other change ]
> > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> > and in 7713886adc15 and f017bf0a8d92 - results of a rebase gone wrong?
>
> Should be ok now, I recreated the perf-core-for-mingo signed tag, please
> let me know if there are still any problems,
Looks good now. Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 59+ messages in thread
* [GIT PULL 00/16] perf/core improvements and fixes
@ 2014-03-14 21:29 Arnaldo Carvalho de Melo
2014-03-18 8:24 ` Ingo Molnar
0 siblings, 1 reply; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2014-03-14 21:29 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Andi Kleen, Aswin Chandramouleeswaran, Corey Ashford,
Darren Hart, David Ahern, Davidlohr Bueso, Don Zickus,
Frederic Weisbecker, Jason Low, Jiri Olsa, Joe Mario,
Masami Hiramatsu, Mike Galbraith, Namhyung Kim, Paul Mackerras,
Pekka Enberg, Peter Zijlstra, Ramkumar Ramachandra,
Scott J Norton, Stephane Eranian, Thomas Gleixner, Waiman Long,
Arnaldo Carvalho de Melo
From: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
Hi Ingo,
Please consider pulling,
- Arnaldo
The following changes since commit 81827ed8d85e892311965dc9ec4120b2b2e745bd:
perf/x86/uncore: Fix missing end markers for SNB/IVB/HSW IMC PMU (2014-03-14 09:25:25 +0100)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux tags/perf-core-for-mingo
for you to fetch changes up to d75e6097ef1f7669deb500fbbdf53cfe524f1b53:
perf machine: Factor machine__find_thread to take tid argument (2014-03-14 18:08:42 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
User visible:
. Add several futex 'perf bench' microbenchmarks (Davidlohr Bueso)
. Speed up thread map generation (Don Zickus)
. Fix synthesizing mmaps for threads (Don Zickus)
. Fix invalid output on event group stdio report (Namhyung Kim)
. Introduce 'perf kvm --list-cmds' command line option for use by
scripts (Ramkumar Ramachandra)
Documentation:
. Clarify load-latency information in the 'perf mem' docs (Andi Kleen)
. Clarify x86 register naming in 'perf probe' docs (Andi Kleen)
Refactorigns:
. hists browser refactorings to reuse code accross UIs (Namhyung Kim)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Andi Kleen (2):
perf mem: Clarify load-latency in documentation
perf probe: Clarify x86 register naming for perf probe
Arnaldo Carvalho de Melo (1):
perf symbols: Introduce thread__find_cpumode_addr_location
Davidlohr Bueso (3):
perf bench: Add futex-hash microbenchmark
perf bench: Add futex-wake microbenchmark
perf bench: Add futex-requeue microbenchmark
Don Zickus (3):
perf tools: Fix synthesizing mmaps for threads
perf session: Change header.misc dump from decimal to hex
perf tools: Speed up thread map generation
Jiri Olsa (1):
perf machine: Factor machine__find_thread to take tid argument
Namhyung Kim (5):
perf ui/stdio: Fix invalid output on event group report
perf ui/gtk: Reuse generic __hpp__fmt() code
perf ui/hists: Pass struct hpp to print functions
perf ui/tui: Reuse generic __hpp__fmt() code
perf ui hists: Pass evsel to hpp->header/width functions explicitly
Ramkumar Ramachandra (1):
perf kvm: introduce --list-cmds for use by scripts
tools/perf/Documentation/perf-mem.txt | 4 +
tools/perf/Documentation/perf-probe.txt | 2 +
tools/perf/Makefile.perf | 3 +
tools/perf/bench/bench.h | 3 +
tools/perf/bench/futex-hash.c | 212 ++++++++++++++++++++++++++++++++
tools/perf/bench/futex-requeue.c | 211 +++++++++++++++++++++++++++++++
tools/perf/bench/futex-wake.c | 201 ++++++++++++++++++++++++++++++
tools/perf/bench/futex.h | 71 +++++++++++
tools/perf/builtin-bench.c | 12 +-
tools/perf/builtin-diff.c | 7 +-
tools/perf/builtin-kvm.c | 12 +-
tools/perf/perf-completion.sh | 2 +-
tools/perf/perf.h | 6 +
tools/perf/tests/dwarf-unwind.c | 2 +-
tools/perf/ui/browsers/hists.c | 122 ++++++------------
tools/perf/ui/gtk/hists.c | 78 ++----------
tools/perf/ui/hist.c | 138 +++++++++++++++------
tools/perf/ui/stdio/hist.c | 11 +-
tools/perf/util/event.c | 156 ++++++++++++++---------
tools/perf/util/hist.h | 20 ++-
tools/perf/util/machine.c | 46 +++----
tools/perf/util/machine.h | 3 +-
tools/perf/util/parse-options.c | 37 +++++-
tools/perf/util/parse-options.h | 8 +-
tools/perf/util/session.c | 2 +-
tools/perf/util/thread.c | 21 ++++
tools/perf/util/thread.h | 5 +
27 files changed, 1094 insertions(+), 301 deletions(-)
create mode 100644 tools/perf/bench/futex-hash.c
create mode 100644 tools/perf/bench/futex-requeue.c
create mode 100644 tools/perf/bench/futex-wake.c
create mode 100644 tools/perf/bench/futex.h
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes
2014-03-14 21:29 Arnaldo Carvalho de Melo
@ 2014-03-18 8:24 ` Ingo Molnar
0 siblings, 0 replies; 59+ messages in thread
From: Ingo Molnar @ 2014-03-18 8:24 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Andi Kleen, Aswin Chandramouleeswaran, Corey Ashford,
Darren Hart, David Ahern, Davidlohr Bueso, Don Zickus,
Frederic Weisbecker, Jason Low, Jiri Olsa, Joe Mario,
Masami Hiramatsu, Mike Galbraith, Namhyung Kim, Paul Mackerras,
Pekka Enberg, Peter Zijlstra, Ramkumar Ramachandra,
Scott J Norton, Stephane Eranian, Thomas Gleixner, Waiman Long,
Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@infradead.org> wrote:
> From: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
>
> Hi Ingo,
>
> Please consider pulling,
>
> - Arnaldo
>
> The following changes since commit 81827ed8d85e892311965dc9ec4120b2b2e745bd:
>
> perf/x86/uncore: Fix missing end markers for SNB/IVB/HSW IMC PMU (2014-03-14 09:25:25 +0100)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux tags/perf-core-for-mingo
>
> for you to fetch changes up to d75e6097ef1f7669deb500fbbdf53cfe524f1b53:
>
> perf machine: Factor machine__find_thread to take tid argument (2014-03-14 18:08:42 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> User visible:
>
> . Add several futex 'perf bench' microbenchmarks (Davidlohr Bueso)
>
> . Speed up thread map generation (Don Zickus)
>
> . Fix synthesizing mmaps for threads (Don Zickus)
>
> . Fix invalid output on event group stdio report (Namhyung Kim)
>
> . Introduce 'perf kvm --list-cmds' command line option for use by
> scripts (Ramkumar Ramachandra)
>
> Documentation:
>
> . Clarify load-latency information in the 'perf mem' docs (Andi Kleen)
>
> . Clarify x86 register naming in 'perf probe' docs (Andi Kleen)
>
> Refactorigns:
>
> . hists browser refactorings to reuse code accross UIs (Namhyung Kim)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Andi Kleen (2):
> perf mem: Clarify load-latency in documentation
> perf probe: Clarify x86 register naming for perf probe
>
> Arnaldo Carvalho de Melo (1):
> perf symbols: Introduce thread__find_cpumode_addr_location
>
> Davidlohr Bueso (3):
> perf bench: Add futex-hash microbenchmark
> perf bench: Add futex-wake microbenchmark
> perf bench: Add futex-requeue microbenchmark
>
> Don Zickus (3):
> perf tools: Fix synthesizing mmaps for threads
> perf session: Change header.misc dump from decimal to hex
> perf tools: Speed up thread map generation
>
> Jiri Olsa (1):
> perf machine: Factor machine__find_thread to take tid argument
>
> Namhyung Kim (5):
> perf ui/stdio: Fix invalid output on event group report
> perf ui/gtk: Reuse generic __hpp__fmt() code
> perf ui/hists: Pass struct hpp to print functions
> perf ui/tui: Reuse generic __hpp__fmt() code
> perf ui hists: Pass evsel to hpp->header/width functions explicitly
>
> Ramkumar Ramachandra (1):
> perf kvm: introduce --list-cmds for use by scripts
>
> tools/perf/Documentation/perf-mem.txt | 4 +
> tools/perf/Documentation/perf-probe.txt | 2 +
> tools/perf/Makefile.perf | 3 +
> tools/perf/bench/bench.h | 3 +
> tools/perf/bench/futex-hash.c | 212 ++++++++++++++++++++++++++++++++
> tools/perf/bench/futex-requeue.c | 211 +++++++++++++++++++++++++++++++
> tools/perf/bench/futex-wake.c | 201 ++++++++++++++++++++++++++++++
> tools/perf/bench/futex.h | 71 +++++++++++
> tools/perf/builtin-bench.c | 12 +-
> tools/perf/builtin-diff.c | 7 +-
> tools/perf/builtin-kvm.c | 12 +-
> tools/perf/perf-completion.sh | 2 +-
> tools/perf/perf.h | 6 +
> tools/perf/tests/dwarf-unwind.c | 2 +-
> tools/perf/ui/browsers/hists.c | 122 ++++++------------
> tools/perf/ui/gtk/hists.c | 78 ++----------
> tools/perf/ui/hist.c | 138 +++++++++++++++------
> tools/perf/ui/stdio/hist.c | 11 +-
> tools/perf/util/event.c | 156 ++++++++++++++---------
> tools/perf/util/hist.h | 20 ++-
> tools/perf/util/machine.c | 46 +++----
> tools/perf/util/machine.h | 3 +-
> tools/perf/util/parse-options.c | 37 +++++-
> tools/perf/util/parse-options.h | 8 +-
> tools/perf/util/session.c | 2 +-
> tools/perf/util/thread.c | 21 ++++
> tools/perf/util/thread.h | 5 +
> 27 files changed, 1094 insertions(+), 301 deletions(-)
> create mode 100644 tools/perf/bench/futex-hash.c
> create mode 100644 tools/perf/bench/futex-requeue.c
> create mode 100644 tools/perf/bench/futex-wake.c
> create mode 100644 tools/perf/bench/futex.h
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 59+ messages in thread
* [GIT PULL 00/16] perf/core improvements and fixes
@ 2013-11-18 20:27 Arnaldo Carvalho de Melo
0 siblings, 0 replies; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2013-11-18 20:27 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
David Ahern, Frederic Weisbecker, Jiri Olsa, Mike Galbraith,
Namhyung Kim, Paul Mackerras, Pekka Enberg, Peter Zijlstra,
Ramkumar Ramachandra, Stephane Eranian, Steven Rostedt,
Arnaldo Carvalho de Melo
From: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
Hi Ingo,
Please consider pulling,
- Arnaldo
The following changes since commit 89b4be142bf2491a94af325f5206fc2f2aa18960:
Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent (2013-11-15 07:35:50 +0100)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux tags/perf-core-for-mingo
for you to fetch changes up to b4070e339cd39e4b56604eddc3e93ee355027d45:
tools lib traceevent: Fix use of multiple options in processing field (2013-11-18 17:09:51 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
. Make per-cpu mmaps the default, having inheritance turned on for
all targets but --tid/-t. From Adrian Hunter.
. Make 'perf top -g' refer to callchains, not --groups, to be consistent
with 'perf record -g'. From David Ahern.
. Tag thread comm as overriden, fix from Frederic Weisbecker.
. Fix bogus group name when processing the perf.data file header, from Namhyung Kim.
. Fix possible memory leaks in process_group_desc(), from Namhyung Kim.
. Remove 'perf trace' thread summary coloring, from Pekka Enberg.
. Generalize the bash completion scripts and make it work with zsh too, from
Ramkumar Ramachandra.
. Fix use of multiple options in processing field in libtraceevent, from Steven Rostedt.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Adrian Hunter (4):
perf record: Make per-cpu mmaps the default.
perf tools: Allow '--inherit' as the negation of '--no-inherit'
perf tools: Add option macro OPT_BOOLEAN_SET
perf record: Default -t option to no inheritance
David Ahern (1):
perf top: Make -g refer to callchains
Frederic Weisbecker (1):
perf tools: Tag thread comm as overriden
Namhyung Kim (3):
perf header: Fix bogus group name
perf header: Fix possible memory leaks in process_group_desc()
perf script: Move evname print code to process_event()
Pekka Enberg (1):
perf trace: Remove thread summary coloring
Ramkumar Ramachandra (5):
perf completion: introduce a layer of indirection
perf completion: factor out compgen stuff
perf completion: factor out call to __ltrim_colon_completions
perf completion: introduce zsh support
perf completion: rename file to reflect zsh support
Steven Rostedt (1):
tools lib traceevent: Fix use of multiple options in processing field
tools/lib/traceevent/event-parse.c | 23 ++++-
tools/perf/Documentation/perf-record.txt | 12 +--
tools/perf/Documentation/perf-top.txt | 5 +-
tools/perf/Makefile.perf | 4 +-
tools/perf/builtin-record.c | 13 ++-
tools/perf/builtin-script.c | 11 ++-
tools/perf/builtin-top.c | 4 +-
tools/perf/builtin-trace.c | 13 +--
tools/perf/{bash_completion => perf-completion.sh} | 100 ++++++++++++++++++---
tools/perf/perf.h | 1 +
tools/perf/tests/attr/test-record-no-inherit | 2 +-
tools/perf/util/evlist.c | 6 +-
tools/perf/util/evsel.c | 5 +-
tools/perf/util/header.c | 6 +-
tools/perf/util/parse-options.c | 21 +++++
tools/perf/util/parse-options.h | 8 ++
tools/perf/util/target.c | 11 ++-
tools/perf/util/target.h | 4 +-
tools/perf/util/thread.c | 11 ++-
19 files changed, 198 insertions(+), 62 deletions(-)
rename tools/perf/{bash_completion => perf-completion.sh} (65%)
^ permalink raw reply [flat|nested] 59+ messages in thread
* [GIT PULL 00/16] perf/core improvements and fixes
@ 2013-10-23 20:57 Arnaldo Carvalho de Melo
2013-10-24 6:52 ` Ingo Molnar
0 siblings, 1 reply; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2013-10-23 20:57 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Andi Kleen, David Ahern, Frederic Weisbecker, Hitoshi Mitake,
Jiri Olsa, Linus Torvalds, Masami Hiramatsu, Mike Galbraith,
Namhyung Kim, Paul Mackerras, Peter Zijlstra, Stephane Eranian,
Arnaldo Carvalho de Melo
From: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
Hi Ingo,
Please consider pulling,
- Arnaldo
The following changes since commit aa30a2e03a453aad9fd96c3f2d4a82c3497674e5:
Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2013-10-23 09:45:50 +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 c1fb5651bb40f9efaf32d280f39e06df7e352673:
perf tools: Show progress on histogram collapsing (2013-10-23 15:48:24 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
. Show progress on histogram collapsing, that can take a long time, from
Namhyung Kim.
. Support "$vars" meta argument syntax for local variables, allowing
asking for all possible variables at a given probe point to be
collected when it hits, from Masami Hiramatsu.
. Address the root cause of that 'perf sched' stack initialization build
slowdown, by programmatically setting a big array after moving the
global variable back to the stack. Fix from Adrian Hunter.
. Do not repipe attributes to a perf.data file in 'perf inject',
fix from Adrian Hunter
. Change the procps visible command-name of invididual benchmark tests
plus cleanups, from Ingo Molnar.
. Do not accept parse_tag_value() overflow, fix from Adrian Hunter.
. Validate that mmap_pages is not too big. From Adrian Hunter.
. Fix non-debug build, from Adrian Hunter
. Clarify the "sample parsing" test entry.
. Consider PERF_SAMPLE_TRANSACTION in the "sample parsing" test.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Adrian Hunter (7):
perf sched: Make struct perf_sched sched a local variable
perf sched: Optimize build time
perf script: Make perf_script a local variable
perf inject: Do not repipe attributes to a perf.data file
perf tools: Do not accept parse_tag_value() overflow
perf evlist: Validate that mmap_pages is not too big
perf tools: Fix non-debug build
Arnaldo Carvalho de Melo (5):
perf test: Clarify the "sample parsing" test entry
perf test: Consider PERF_SAMPLE_TRANSACTION in the "sample parsing" test
perf tools: Stop using 'self' in some more places
perf ui: Rename ui_progress to ui_progress_ops
perf ui progress: Per progress bar state
Ingo Molnar (1):
perf bench: Change the procps visible command-name of invididual benchmark tests plus cleanups
Masami Hiramatsu (2):
perf probe: Support "$vars" meta argument syntax for local variables
perf probe: Find fentry mcount fuzzed parameter location
Namhyung Kim (1):
perf tools: Show progress on histogram collapsing
tools/perf/Makefile.perf | 1 +
tools/perf/builtin-annotate.c | 6 +-
tools/perf/builtin-bench.c | 239 +++++++++++++++++++-------------------
tools/perf/builtin-diff.c | 7 +-
tools/perf/builtin-inject.c | 27 +++--
tools/perf/builtin-report.c | 24 ++--
tools/perf/builtin-sched.c | 44 +++----
tools/perf/builtin-script.c | 40 ++++---
tools/perf/builtin-top.c | 4 +-
tools/perf/config/Makefile | 4 +
tools/perf/tests/hists_link.c | 2 +-
tools/perf/tests/sample-parsing.c | 4 +-
tools/perf/ui/gtk/gtk.h | 2 +-
tools/perf/ui/gtk/progress.c | 20 ++--
tools/perf/ui/gtk/setup.c | 2 +-
tools/perf/ui/progress.c | 32 +++--
tools/perf/ui/progress.h | 19 +--
tools/perf/ui/tui/progress.c | 15 +--
tools/perf/ui/tui/setup.c | 3 +-
tools/perf/ui/tui/tui.h | 6 +
tools/perf/util/build-id.c | 6 +-
tools/perf/util/evlist.c | 14 ++-
tools/perf/util/hist.c | 23 ++--
tools/perf/util/hist.h | 3 +-
tools/perf/util/probe-event.c | 1 -
tools/perf/util/probe-finder.c | 133 ++++++++++++++++++---
tools/perf/util/probe-finder.h | 1 +
tools/perf/util/session.c | 24 ++--
tools/perf/util/sort.c | 124 ++++++++++----------
tools/perf/util/strfilter.c | 46 ++++----
tools/perf/util/thread.c | 72 ++++++------
tools/perf/util/util.c | 2 +
32 files changed, 560 insertions(+), 390 deletions(-)
create mode 100644 tools/perf/ui/tui/tui.h
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes
2013-10-23 20:57 Arnaldo Carvalho de Melo
@ 2013-10-24 6:52 ` Ingo Molnar
0 siblings, 0 replies; 59+ messages in thread
From: Ingo Molnar @ 2013-10-24 6:52 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Andi Kleen, David Ahern, Frederic Weisbecker, Hitoshi Mitake,
Jiri Olsa, Linus Torvalds, Masami Hiramatsu, Mike Galbraith,
Namhyung Kim, Paul Mackerras, Peter Zijlstra, Stephane Eranian,
Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@infradead.org> wrote:
> From: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
>
> Hi Ingo,
>
> Please consider pulling,
>
> - Arnaldo
>
> The following changes since commit aa30a2e03a453aad9fd96c3f2d4a82c3497674e5:
>
> Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2013-10-23 09:45:50 +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 c1fb5651bb40f9efaf32d280f39e06df7e352673:
>
> perf tools: Show progress on histogram collapsing (2013-10-23 15:48:24 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> . Show progress on histogram collapsing, that can take a long time, from
> Namhyung Kim.
>
> . Support "$vars" meta argument syntax for local variables, allowing
> asking for all possible variables at a given probe point to be
> collected when it hits, from Masami Hiramatsu.
>
> . Address the root cause of that 'perf sched' stack initialization build
> slowdown, by programmatically setting a big array after moving the
> global variable back to the stack. Fix from Adrian Hunter.
>
> . Do not repipe attributes to a perf.data file in 'perf inject',
> fix from Adrian Hunter
>
> . Change the procps visible command-name of invididual benchmark tests
> plus cleanups, from Ingo Molnar.
>
> . Do not accept parse_tag_value() overflow, fix from Adrian Hunter.
>
> . Validate that mmap_pages is not too big. From Adrian Hunter.
>
> . Fix non-debug build, from Adrian Hunter
>
> . Clarify the "sample parsing" test entry.
>
> . Consider PERF_SAMPLE_TRANSACTION in the "sample parsing" test.
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Adrian Hunter (7):
> perf sched: Make struct perf_sched sched a local variable
> perf sched: Optimize build time
> perf script: Make perf_script a local variable
> perf inject: Do not repipe attributes to a perf.data file
> perf tools: Do not accept parse_tag_value() overflow
> perf evlist: Validate that mmap_pages is not too big
> perf tools: Fix non-debug build
>
> Arnaldo Carvalho de Melo (5):
> perf test: Clarify the "sample parsing" test entry
> perf test: Consider PERF_SAMPLE_TRANSACTION in the "sample parsing" test
> perf tools: Stop using 'self' in some more places
> perf ui: Rename ui_progress to ui_progress_ops
> perf ui progress: Per progress bar state
>
> Ingo Molnar (1):
> perf bench: Change the procps visible command-name of invididual benchmark tests plus cleanups
>
> Masami Hiramatsu (2):
> perf probe: Support "$vars" meta argument syntax for local variables
> perf probe: Find fentry mcount fuzzed parameter location
>
> Namhyung Kim (1):
> perf tools: Show progress on histogram collapsing
>
> tools/perf/Makefile.perf | 1 +
> tools/perf/builtin-annotate.c | 6 +-
> tools/perf/builtin-bench.c | 239 +++++++++++++++++++-------------------
> tools/perf/builtin-diff.c | 7 +-
> tools/perf/builtin-inject.c | 27 +++--
> tools/perf/builtin-report.c | 24 ++--
> tools/perf/builtin-sched.c | 44 +++----
> tools/perf/builtin-script.c | 40 ++++---
> tools/perf/builtin-top.c | 4 +-
> tools/perf/config/Makefile | 4 +
> tools/perf/tests/hists_link.c | 2 +-
> tools/perf/tests/sample-parsing.c | 4 +-
> tools/perf/ui/gtk/gtk.h | 2 +-
> tools/perf/ui/gtk/progress.c | 20 ++--
> tools/perf/ui/gtk/setup.c | 2 +-
> tools/perf/ui/progress.c | 32 +++--
> tools/perf/ui/progress.h | 19 +--
> tools/perf/ui/tui/progress.c | 15 +--
> tools/perf/ui/tui/setup.c | 3 +-
> tools/perf/ui/tui/tui.h | 6 +
> tools/perf/util/build-id.c | 6 +-
> tools/perf/util/evlist.c | 14 ++-
> tools/perf/util/hist.c | 23 ++--
> tools/perf/util/hist.h | 3 +-
> tools/perf/util/probe-event.c | 1 -
> tools/perf/util/probe-finder.c | 133 ++++++++++++++++++---
> tools/perf/util/probe-finder.h | 1 +
> tools/perf/util/session.c | 24 ++--
> tools/perf/util/sort.c | 124 ++++++++++----------
> tools/perf/util/strfilter.c | 46 ++++----
> tools/perf/util/thread.c | 72 ++++++------
> tools/perf/util/util.c | 2 +
> 32 files changed, 560 insertions(+), 390 deletions(-)
> create mode 100644 tools/perf/ui/tui/tui.h
Pulled, thanks Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 59+ messages in thread
* [GIT PULL 00/16] perf/core improvements and fixes
@ 2012-02-14 1:52 Arnaldo Carvalho de Melo
2012-02-14 2:50 ` Namhyung Kim
0 siblings, 1 reply; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2012-02-14 1:52 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Andi Kleen,
Anshuman Khandual, Arun Sharma, Corey Ashford, David Ahern,
Frederic Weisbecker, Jason Wang, Jiri Olsa, Joerg Roedel,
Lin Ming, Namhyung Kim, Namhyung Kim, Paul Mackerras,
Peter Zijlstra, Roberto Agostino Vitillo, Robert Richter,
Stephane Eranian, Thomas Gleixner, Vince Weaver, arnaldo.melo,
Arnaldo Carvalho de Melo
The following changes since commit c98fdeaa92731308ed80386261fa2589addefa47:
x86/sched/perf/AMD: Set sched_clock_stable (2012-02-07 13:12:08 +0100)
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 7e1ccd3804281fc0755eb726b654469c40a96d89:
perf tools: cleanup initialization of attr->size (2012-02-13 23:35:04 -0200)
----------------------------------------------------------------
perf/core fixes and improvements.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
David Ahern (3):
perf record: No build id option fails
perf tools: Fix out of tree compiles
perf tools: Allow multiple threads or processes in record, stat, top
Jiri Olsa (3):
perf tools: Remove unused functions from debugfs object
perf tools: Add sysfs mountpoint interface
perf tools: Add bitmap_or function into bitmap object
Joerg Roedel (2):
perf top: Don't process samples with no valid machine object
perf tools: Change perf_guest default back to false
Namhyung Kim (4):
perf tools: Fix build dependency of perf python extension
perf tools: Implement islower/isupper macro into util.h
perf tools: ctype.c only wants util.h
perf tools: Get rid of ctype.h in symbol.c
Robert Richter (2):
perf tools: Moving code in header.c
perf tools: Factor out feature op to process header sections
Stephane Eranian (2):
perf tools: fix endianness detection in perf.data
perf tools: cleanup initialization of attr->size
tools/perf/Documentation/perf-record.txt | 4 +-
tools/perf/Documentation/perf-stat.txt | 4 +-
tools/perf/Documentation/perf-top.txt | 4 +-
tools/perf/MANIFEST | 1 +
tools/perf/Makefile | 7 +-
tools/perf/builtin-record.c | 14 +-
tools/perf/builtin-stat.c | 31 ++-
tools/perf/builtin-test.c | 2 -
tools/perf/builtin-top.c | 18 +-
tools/perf/perf.h | 5 +-
tools/perf/util/bitmap.c | 10 +
tools/perf/util/ctype.c | 2 +-
tools/perf/util/debugfs.c | 141 ----------
tools/perf/util/debugfs.h | 6 -
tools/perf/util/evlist.c | 10 +-
tools/perf/util/evlist.h | 4 +-
tools/perf/util/evsel.c | 2 +-
tools/perf/util/header.c | 421 +++++++++++++++++-------------
tools/perf/util/hist.h | 1 +
tools/perf/util/include/linux/bitmap.h | 11 +
tools/perf/util/python-ext-sources | 19 ++
tools/perf/util/session.c | 10 +
tools/perf/util/setup.py | 8 +-
tools/perf/util/symbol.c | 2 +-
tools/perf/util/sysfs.c | 60 +++++
tools/perf/util/sysfs.h | 6 +
tools/perf/util/thread_map.c | 128 +++++++++
tools/perf/util/thread_map.h | 4 +
tools/perf/util/top.c | 10 +-
tools/perf/util/top.h | 2 +-
tools/perf/util/usage.c | 6 +-
tools/perf/util/util.c | 4 +-
tools/perf/util/util.h | 6 +-
33 files changed, 571 insertions(+), 392 deletions(-)
create mode 100644 tools/perf/util/python-ext-sources
create mode 100644 tools/perf/util/sysfs.c
create mode 100644 tools/perf/util/sysfs.h
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes
2012-02-14 1:52 Arnaldo Carvalho de Melo
@ 2012-02-14 2:50 ` Namhyung Kim
2012-02-14 3:07 ` Namhyung Kim
0 siblings, 1 reply; 59+ messages in thread
From: Namhyung Kim @ 2012-02-14 2:50 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: Ingo Molnar, linux-kernel, Andi Kleen, Anshuman Khandual,
Arun Sharma, Corey Ashford, David Ahern, Frederic Weisbecker,
Jason Wang, Jiri Olsa, Joerg Roedel, Lin Ming, Namhyung Kim,
Paul Mackerras, Peter Zijlstra, Roberto Agostino Vitillo,
Robert Richter, Stephane Eranian, Thomas Gleixner, Vince Weaver,
arnaldo.melo, Arnaldo Carvalho de Melo
Hello,
2012-02-14 10:52 AM, Arnaldo Carvalho de Melo wrote:
> The following changes since commit c98fdeaa92731308ed80386261fa2589addefa47:
>
> x86/sched/perf/AMD: Set sched_clock_stable (2012-02-07 13:12:08 +0100)
>
> 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 7e1ccd3804281fc0755eb726b654469c40a96d89:
>
> perf tools: cleanup initialization of attr->size (2012-02-13 23:35:04 -0200)
>
> ----------------------------------------------------------------
> perf/core fixes and improvements.
>
> Signed-off-by: Arnaldo Carvalho de Melo<acme@redhat.com>
>
I've got a following error during a simple test:
$ ./perf record -- sleep 1
Error: sys_perf_event_open() syscall returned with 22 (Invalid argument).
/bin/dmesg may provide additional information.
Fatal: No CONFIG_PERF_EVENTS=y kernel support configured?
sleep: Terminated
Any thoughts?
Thanks,
Namhyung
> ----------------------------------------------------------------
> David Ahern (3):
> perf record: No build id option fails
> perf tools: Fix out of tree compiles
> perf tools: Allow multiple threads or processes in record, stat, top
>
> Jiri Olsa (3):
> perf tools: Remove unused functions from debugfs object
> perf tools: Add sysfs mountpoint interface
> perf tools: Add bitmap_or function into bitmap object
>
> Joerg Roedel (2):
> perf top: Don't process samples with no valid machine object
> perf tools: Change perf_guest default back to false
>
> Namhyung Kim (4):
> perf tools: Fix build dependency of perf python extension
> perf tools: Implement islower/isupper macro into util.h
> perf tools: ctype.c only wants util.h
> perf tools: Get rid of ctype.h in symbol.c
>
> Robert Richter (2):
> perf tools: Moving code in header.c
> perf tools: Factor out feature op to process header sections
>
> Stephane Eranian (2):
> perf tools: fix endianness detection in perf.data
> perf tools: cleanup initialization of attr->size
>
> tools/perf/Documentation/perf-record.txt | 4 +-
> tools/perf/Documentation/perf-stat.txt | 4 +-
> tools/perf/Documentation/perf-top.txt | 4 +-
> tools/perf/MANIFEST | 1 +
> tools/perf/Makefile | 7 +-
> tools/perf/builtin-record.c | 14 +-
> tools/perf/builtin-stat.c | 31 ++-
> tools/perf/builtin-test.c | 2 -
> tools/perf/builtin-top.c | 18 +-
> tools/perf/perf.h | 5 +-
> tools/perf/util/bitmap.c | 10 +
> tools/perf/util/ctype.c | 2 +-
> tools/perf/util/debugfs.c | 141 ----------
> tools/perf/util/debugfs.h | 6 -
> tools/perf/util/evlist.c | 10 +-
> tools/perf/util/evlist.h | 4 +-
> tools/perf/util/evsel.c | 2 +-
> tools/perf/util/header.c | 421 +++++++++++++++++-------------
> tools/perf/util/hist.h | 1 +
> tools/perf/util/include/linux/bitmap.h | 11 +
> tools/perf/util/python-ext-sources | 19 ++
> tools/perf/util/session.c | 10 +
> tools/perf/util/setup.py | 8 +-
> tools/perf/util/symbol.c | 2 +-
> tools/perf/util/sysfs.c | 60 +++++
> tools/perf/util/sysfs.h | 6 +
> tools/perf/util/thread_map.c | 128 +++++++++
> tools/perf/util/thread_map.h | 4 +
> tools/perf/util/top.c | 10 +-
> tools/perf/util/top.h | 2 +-
> tools/perf/util/usage.c | 6 +-
> tools/perf/util/util.c | 4 +-
> tools/perf/util/util.h | 6 +-
> 33 files changed, 571 insertions(+), 392 deletions(-)
> create mode 100644 tools/perf/util/python-ext-sources
> create mode 100644 tools/perf/util/sysfs.c
> create mode 100644 tools/perf/util/sysfs.h
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes
2012-02-14 2:50 ` Namhyung Kim
@ 2012-02-14 3:07 ` Namhyung Kim
2012-02-14 5:10 ` Namhyung Kim
0 siblings, 1 reply; 59+ messages in thread
From: Namhyung Kim @ 2012-02-14 3:07 UTC (permalink / raw)
To: linux-kernel
Cc: linux-kernel, Ingo Molnar, Andi Kleen, Anshuman Khandual,
Arun Sharma, Corey Ashford, David Ahern, Frederic Weisbecker,
Jason Wang, Jiri Olsa, Joerg Roedel, Lin Ming, Namhyung Kim,
Paul Mackerras, Peter Zijlstra, Roberto Agostino Vitillo,
Robert Richter, Stephane Eranian, Thomas Gleixner, Vince Weaver,
arnaldo.melo, Arnaldo Carvalho de Melo
2012-02-14 오전 11:50, Namhyung Kim 쓴 글:
> Hello,
>
> 2012-02-14 10:52 AM, Arnaldo Carvalho de Melo wrote:
>> The following changes since commit c98fdeaa92731308ed80386261fa2589addefa47:
>>
>> x86/sched/perf/AMD: Set sched_clock_stable (2012-02-07 13:12:08 +0100)
>>
>> 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 7e1ccd3804281fc0755eb726b654469c40a96d89:
>>
>> perf tools: cleanup initialization of attr->size (2012-02-13 23:35:04 -0200)
>>
>> ----------------------------------------------------------------
>> perf/core fixes and improvements.
>>
>> Signed-off-by: Arnaldo Carvalho de Melo<acme@redhat.com>
>>
>
> I've got a following error during a simple test:
>
> $ ./perf record -- sleep 1
>
> Error: sys_perf_event_open() syscall returned with 22 (Invalid argument).
> /bin/dmesg may provide additional information.
>
> Fatal: No CONFIG_PERF_EVENTS=y kernel support configured?
>
> sleep: Terminated
>
>
> Any thoughts?
>
> Thanks,
> Namhyung
>
git bisect told me:
c4a7dca92bbb9881a5d678720f1d0c2153499749 is the first bad commit
commit c4a7dca92bbb9881a5d678720f1d0c2153499749
Author: Joerg Roedel <joerg.roedel@amd.com>
Date: Fri Feb 10 18:05:05 2012 +0100
perf tools: Change perf_guest default back to false
Setting perf_guest to true by default makes no sense because the perf
subcommands can not setup guest symbol information and thus not process
and guest samples. The only exception is perf-kvm which changes the
perf_guest value on its own. So change the default for perf_guest back
to false.
Cc: David Ahern <dsahern@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Jason Wang <jasowang@redhat.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1328893505-4115-3-git-send-email-joerg.roedel@amd.com
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
:040000 040000 64d65944c9081dfd9ace65dbc19fca655cbdc708 4f0e86ab85314ba68f2295ae1e599f3bb5ab9484 M tools
Thanks,
Namhyung
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes
2012-02-14 3:07 ` Namhyung Kim
@ 2012-02-14 5:10 ` Namhyung Kim
2012-02-14 5:23 ` David Ahern
0 siblings, 1 reply; 59+ messages in thread
From: Namhyung Kim @ 2012-02-14 5:10 UTC (permalink / raw)
To: Namhyung Kim
Cc: linux-kernel, Ingo Molnar, Andi Kleen, Anshuman Khandual,
Arun Sharma, Corey Ashford, David Ahern, Frederic Weisbecker,
Jason Wang, Jiri Olsa, Joerg Roedel, Lin Ming, Paul Mackerras,
Peter Zijlstra, Roberto Agostino Vitillo, Robert Richter,
Stephane Eranian, Thomas Gleixner, Vince Weaver, arnaldo.melo,
Arnaldo Carvalho de Melo
2012-02-14 12:07 PM, Namhyung Kim wrote:
> 2012-02-14 오전 11:50, Namhyung Kim 쓴 글:
>> Hello,
>>
>> 2012-02-14 10:52 AM, Arnaldo Carvalho de Melo wrote:
>>> The following changes since commit c98fdeaa92731308ed80386261fa2589addefa47:
>>>
>>> x86/sched/perf/AMD: Set sched_clock_stable (2012-02-07 13:12:08 +0100)
>>>
>>> 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 7e1ccd3804281fc0755eb726b654469c40a96d89:
>>>
>>> perf tools: cleanup initialization of attr->size (2012-02-13 23:35:04 -0200)
>>>
>>> ----------------------------------------------------------------
>>> perf/core fixes and improvements.
>>>
>>> Signed-off-by: Arnaldo Carvalho de Melo<acme@redhat.com>
>>>
>>
>> I've got a following error during a simple test:
>>
>> $ ./perf record -- sleep 1
>>
>> Error: sys_perf_event_open() syscall returned with 22 (Invalid argument).
>> /bin/dmesg may provide additional information.
>>
>> Fatal: No CONFIG_PERF_EVENTS=y kernel support configured?
>>
>> sleep: Terminated
>>
>>
>> Any thoughts?
>>
>> Thanks,
>> Namhyung
>>
>
> git bisect told me:
>
> c4a7dca92bbb9881a5d678720f1d0c2153499749 is the first bad commit
> commit c4a7dca92bbb9881a5d678720f1d0c2153499749
> Author: Joerg Roedel<joerg.roedel@amd.com>
> Date: Fri Feb 10 18:05:05 2012 +0100
>
> perf tools: Change perf_guest default back to false
>
> Setting perf_guest to true by default makes no sense because the perf
> subcommands can not setup guest symbol information and thus not process
> and guest samples. The only exception is perf-kvm which changes the
> perf_guest value on its own. So change the default for perf_guest back
> to false.
>
> Cc: David Ahern<dsahern@gmail.com>
> Cc: Ingo Molnar<mingo@elte.hu>
> Cc: Jason Wang<jasowang@redhat.com>
> Cc: Paul Mackerras<paulus@samba.org>
> Cc: Peter Zijlstra<a.p.zijlstra@chello.nl>
> Link: http://lkml.kernel.org/r/1328893505-4115-3-git-send-email-joerg.roedel@amd.com
> Signed-off-by: Joerg Roedel<joerg.roedel@amd.com>
> Signed-off-by: Arnaldo Carvalho de Melo<acme@redhat.com>
>
> :040000 040000 64d65944c9081dfd9ace65dbc19fca655cbdc708 4f0e86ab85314ba68f2295ae1e599f3bb5ab9484 M tools
>
>
> Thanks,
> Namhyung
>
It happened because I used old kernel version that isn't aware of the
exclude_guest bit. So the check on attr->__reserved_1 in
core.c::perf_copy_attr() failed and then ended up seeing EINVAL at
perf_evsel__open().
So I think it should be handled in the same way of handling sample_id_all bit
in perf record and top if we want to set perf_guest to false by default. I'll
send patches for them soon.
Thanks,
Namhyung
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes
2012-02-14 5:10 ` Namhyung Kim
@ 2012-02-14 5:23 ` David Ahern
2012-02-14 5:48 ` Namhyung Kim
2012-02-14 10:50 ` Joerg Roedel
0 siblings, 2 replies; 59+ messages in thread
From: David Ahern @ 2012-02-14 5:23 UTC (permalink / raw)
To: Namhyung Kim, Joerg Roedel
Cc: Namhyung Kim, linux-kernel, Ingo Molnar, Andi Kleen,
Anshuman Khandual, Arun Sharma, Corey Ashford,
Frederic Weisbecker, Jason Wang, Jiri Olsa, Lin Ming,
Paul Mackerras, Peter Zijlstra, Roberto Agostino Vitillo,
Robert Richter, Stephane Eranian, Thomas Gleixner, Vince Weaver,
arnaldo.melo, Arnaldo Carvalho de Melo
On 2/13/12 10:10 PM, Namhyung Kim wrote:
>>
>
> It happened because I used old kernel version that isn't aware of the
> exclude_guest bit. So the check on attr->__reserved_1 in
> core.c::perf_copy_attr() failed and then ended up seeing EINVAL at
> perf_evsel__open().
comes back to 1aed2671738785e8f5aea663a6fda91aa7ef59b5 again. See
https://lkml.org/lkml/2012/2/8/234
>
> So I think it should be handled in the same way of handling
> sample_id_all bit in perf record and top if we want to set perf_guest to
> false by default. I'll send patches for them soon.
>
> Thanks,
> Namhyung
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes
2012-02-14 5:23 ` David Ahern
@ 2012-02-14 5:48 ` Namhyung Kim
2012-02-14 5:52 ` David Ahern
2012-02-14 10:50 ` Joerg Roedel
1 sibling, 1 reply; 59+ messages in thread
From: Namhyung Kim @ 2012-02-14 5:48 UTC (permalink / raw)
To: David Ahern
Cc: Joerg Roedel, Namhyung Kim, linux-kernel, Ingo Molnar,
Andi Kleen, Anshuman Khandual, Arun Sharma, Corey Ashford,
Frederic Weisbecker, Jason Wang, Jiri Olsa, Lin Ming,
Paul Mackerras, Peter Zijlstra, Roberto Agostino Vitillo,
Robert Richter, Stephane Eranian, Thomas Gleixner, Vince Weaver,
arnaldo.melo, Arnaldo Carvalho de Melo
Hi,
2012-02-14 2:23 PM, David Ahern wrote:
> On 2/13/12 10:10 PM, Namhyung Kim wrote:
>>>
>>
>> It happened because I used old kernel version that isn't aware of the
>> exclude_guest bit. So the check on attr->__reserved_1 in
>> core.c::perf_copy_attr() failed and then ended up seeing EINVAL at
>> perf_evsel__open().
>
> comes back to 1aed2671738785e8f5aea663a6fda91aa7ef59b5 again. See
>
> https://lkml.org/lkml/2012/2/8/234
>
Thanks for the pointer, then I'll wait until the guys figure out what the
correct fix is :)
Thanks,
Namhyung
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes
2012-02-14 5:48 ` Namhyung Kim
@ 2012-02-14 5:52 ` David Ahern
2012-02-14 5:58 ` Namhyung Kim
0 siblings, 1 reply; 59+ messages in thread
From: David Ahern @ 2012-02-14 5:52 UTC (permalink / raw)
To: Namhyung Kim
Cc: Joerg Roedel, Namhyung Kim, linux-kernel, Ingo Molnar,
Andi Kleen, Anshuman Khandual, Arun Sharma, Corey Ashford,
Frederic Weisbecker, Jason Wang, Jiri Olsa, Lin Ming,
Paul Mackerras, Peter Zijlstra, Roberto Agostino Vitillo,
Robert Richter, Stephane Eranian, Thomas Gleixner, Vince Weaver,
arnaldo.melo, Arnaldo Carvalho de Melo
On 2/13/12 10:48 PM, Namhyung Kim wrote:
> Hi,
>
> 2012-02-14 2:23 PM, David Ahern wrote:
>> On 2/13/12 10:10 PM, Namhyung Kim wrote:
>>>>
>>>
>>> It happened because I used old kernel version that isn't aware of the
>>> exclude_guest bit. So the check on attr->__reserved_1 in
>>> core.c::perf_copy_attr() failed and then ended up seeing EINVAL at
>>> perf_evsel__open().
>>
>> comes back to 1aed2671738785e8f5aea663a6fda91aa7ef59b5 again. See
>>
>> https://lkml.org/lkml/2012/2/8/234
>>
>
> Thanks for the pointer, then I'll wait until the guys figure out what
> the correct fix is :)
>
> Thanks,
> Namhyung
Resetting that default was it. :-)
Does reverting the entire patch fix your problem?
David
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes
2012-02-14 5:52 ` David Ahern
@ 2012-02-14 5:58 ` Namhyung Kim
0 siblings, 0 replies; 59+ messages in thread
From: Namhyung Kim @ 2012-02-14 5:58 UTC (permalink / raw)
To: David Ahern
Cc: Joerg Roedel, Namhyung Kim, linux-kernel, Ingo Molnar,
Andi Kleen, Anshuman Khandual, Arun Sharma, Corey Ashford,
Frederic Weisbecker, Jason Wang, Jiri Olsa, Lin Ming,
Paul Mackerras, Peter Zijlstra, Roberto Agostino Vitillo,
Robert Richter, Stephane Eranian, Thomas Gleixner, Vince Weaver,
arnaldo.melo, Arnaldo Carvalho de Melo
2012-02-14 2:52 PM, David Ahern wrote:
> On 2/13/12 10:48 PM, Namhyung Kim wrote:
>> Hi,
>>
>> 2012-02-14 2:23 PM, David Ahern wrote:
>>> On 2/13/12 10:10 PM, Namhyung Kim wrote:
>>>>>
>>>>
>>>> It happened because I used old kernel version that isn't aware of the
>>>> exclude_guest bit. So the check on attr->__reserved_1 in
>>>> core.c::perf_copy_attr() failed and then ended up seeing EINVAL at
>>>> perf_evsel__open().
>>>
>>> comes back to 1aed2671738785e8f5aea663a6fda91aa7ef59b5 again. See
>>>
>>> https://lkml.org/lkml/2012/2/8/234
>>>
>>
>> Thanks for the pointer, then I'll wait until the guys figure out what
>> the correct fix is :)
>>
>> Thanks,
>> Namhyung
>
> Resetting that default was it. :-)
>
> Does reverting the entire patch fix your problem?
>
> David
Yes, of course.
OK, then I'll start to rework perf target cleanups after reverting it.
Thanks,
Namhyung
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes
2012-02-14 5:23 ` David Ahern
2012-02-14 5:48 ` Namhyung Kim
@ 2012-02-14 10:50 ` Joerg Roedel
2012-02-14 13:10 ` Arnaldo Carvalho de Melo
1 sibling, 1 reply; 59+ messages in thread
From: Joerg Roedel @ 2012-02-14 10:50 UTC (permalink / raw)
To: David Ahern
Cc: Namhyung Kim, Namhyung Kim, linux-kernel, Ingo Molnar,
Andi Kleen, Anshuman Khandual, Arun Sharma, Corey Ashford,
Frederic Weisbecker, Jason Wang, Jiri Olsa, Lin Ming,
Paul Mackerras, Peter Zijlstra, Roberto Agostino Vitillo,
Robert Richter, Stephane Eranian, Thomas Gleixner, Vince Weaver,
arnaldo.melo, Arnaldo Carvalho de Melo
On Mon, Feb 13, 2012 at 10:23:07PM -0700, David Ahern wrote:
> On 2/13/12 10:10 PM, Namhyung Kim wrote:
> >>
> >
> >It happened because I used old kernel version that isn't aware of the
> >exclude_guest bit. So the check on attr->__reserved_1 in
> >core.c::perf_copy_attr() failed and then ended up seeing EINVAL at
> >perf_evsel__open().
>
> comes back to 1aed2671738785e8f5aea663a6fda91aa7ef59b5 again. See
>
> https://lkml.org/lkml/2012/2/8/234
Grr. I totally forgot that issue. Is there some way to detect the perf
kernel-features? Otherwise the only fix seems to be to drop the patch
changing the default. The crashes should be fixed by the other patch
already.
Joerg
--
AMD Operating System Research Center
Advanced Micro Devices GmbH Einsteinring 24 85609 Dornach
General Managers: Alberto Bozzo
Registration: Dornach, Landkr. Muenchen; Registerger. Muenchen, HRB Nr. 43632
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes
2012-02-14 10:50 ` Joerg Roedel
@ 2012-02-14 13:10 ` Arnaldo Carvalho de Melo
2012-02-14 14:38 ` Arnaldo Carvalho de Melo
0 siblings, 1 reply; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2012-02-14 13:10 UTC (permalink / raw)
To: Joerg Roedel
Cc: David Ahern, Namhyung Kim, Namhyung Kim, linux-kernel,
Ingo Molnar, Andi Kleen, Anshuman Khandual, Arun Sharma,
Corey Ashford, Frederic Weisbecker, Jason Wang, Jiri Olsa,
Lin Ming, Paul Mackerras, Peter Zijlstra,
Roberto Agostino Vitillo, Robert Richter, Stephane Eranian,
Thomas Gleixner, Vince Weaver
Em Tue, Feb 14, 2012 at 11:50:18AM +0100, Joerg Roedel escreveu:
> On Mon, Feb 13, 2012 at 10:23:07PM -0700, David Ahern wrote:
> > On 2/13/12 10:10 PM, Namhyung Kim wrote:
> > >It happened because I used old kernel version that isn't aware of the
> > >exclude_guest bit. So the check on attr->__reserved_1 in
> > >core.c::perf_copy_attr() failed and then ended up seeing EINVAL at
> > >perf_evsel__open().
> > comes back to 1aed2671738785e8f5aea663a6fda91aa7ef59b5 again. See
> > https://lkml.org/lkml/2012/2/8/234
> Grr. I totally forgot that issue. Is there some way to detect the perf
> kernel-features? Otherwise the only fix seems to be to drop the patch
> changing the default. The crashes should be fixed by the other patch
> already.
Well, we need to detect it like we do with sample_id_all. In this case
we would try with exclude_guest, if it fails with EINVAL, we realise it
is not available, clean that bit and try again.
- Arnaldo
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes
2012-02-14 13:10 ` Arnaldo Carvalho de Melo
@ 2012-02-14 14:38 ` Arnaldo Carvalho de Melo
2012-02-14 15:10 ` Joerg Roedel
0 siblings, 1 reply; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2012-02-14 14:38 UTC (permalink / raw)
To: Joerg Roedel
Cc: David Ahern, Namhyung Kim, Namhyung Kim, linux-kernel,
Ingo Molnar, Andi Kleen, Anshuman Khandual, Arun Sharma,
Corey Ashford, Frederic Weisbecker, Jason Wang, Jiri Olsa,
Lin Ming, Paul Mackerras, Peter Zijlstra,
Roberto Agostino Vitillo, Robert Richter, Stephane Eranian,
Thomas Gleixner, Vince Weaver
Em Tue, Feb 14, 2012 at 11:10:46AM -0200, Arnaldo Carvalho de Melo escreveu:
> Em Tue, Feb 14, 2012 at 11:50:18AM +0100, Joerg Roedel escreveu:
> > On Mon, Feb 13, 2012 at 10:23:07PM -0700, David Ahern wrote:
> > > On 2/13/12 10:10 PM, Namhyung Kim wrote:
> > > >It happened because I used old kernel version that isn't aware of the
> > > >exclude_guest bit. So the check on attr->__reserved_1 in
> > > >core.c::perf_copy_attr() failed and then ended up seeing EINVAL at
> > > >perf_evsel__open().
>
> > > comes back to 1aed2671738785e8f5aea663a6fda91aa7ef59b5 again. See
>
> > > https://lkml.org/lkml/2012/2/8/234
>
> > Grr. I totally forgot that issue. Is there some way to detect the perf
> > kernel-features? Otherwise the only fix seems to be to drop the patch
> > changing the default. The crashes should be fixed by the other patch
> > already.
>
> Well, we need to detect it like we do with sample_id_all. In this case
> we would try with exclude_guest, if it fails with EINVAL, we realise it
> is not available, clean that bit and try again.
The following patch should fix it, still untested tho, booting a machine
with an < 3.1 kernel to check...
- Arnaldo
diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
index 08ed24b..d6c10e8 100644
--- a/tools/perf/builtin-record.c
+++ b/tools/perf/builtin-record.c
@@ -205,6 +205,9 @@ static void perf_record__open(struct perf_record *rec)
if (opts->group && pos != first)
group_fd = first->fd;
+fallback_missing_features:
+ if (opts->exclude_guest_missing)
+ attr->exclude_guest = attr->exclude_host = 0;
retry_sample_id:
attr->sample_id_all = opts->sample_id_all_avail ? 1 : 0;
try_again:
@@ -218,15 +221,23 @@ try_again:
} else if (err == ENODEV && opts->cpu_list) {
die("No such device - did you specify"
" an out-of-range profile CPU?\n");
- } else if (err == EINVAL && opts->sample_id_all_avail) {
- /*
- * Old kernel, no attr->sample_id_type_all field
- */
- opts->sample_id_all_avail = false;
- if (!opts->sample_time && !opts->raw_samples && !time_needed)
- attr->sample_type &= ~PERF_SAMPLE_TIME;
-
- goto retry_sample_id;
+ } else if (err == EINVAL) {
+ if (!opts->exclude_guest_missing &&
+ (attr->exclude_guest || attr->exclude_host)) {
+ pr_debug("Old kernel, cannot exclude "
+ "guest or host samples.\n");
+ opts->exclude_guest_missing = true;
+ goto fallback_missing_features;
+ } else if (opts->sample_id_all_avail) {
+ /*
+ * Old kernel, no attr->sample_id_type_all field
+ */
+ opts->sample_id_all_avail = false;
+ if (!opts->sample_time && !opts->raw_samples && !time_needed)
+ attr->sample_type &= ~PERF_SAMPLE_TIME;
+
+ goto retry_sample_id;
+ }
}
/*
diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c
index 5a88c0d..02e11ff 100644
--- a/tools/perf/builtin-top.c
+++ b/tools/perf/builtin-top.c
@@ -872,6 +872,9 @@ static void perf_top__start_counters(struct perf_top *top)
attr->mmap = 1;
attr->comm = 1;
attr->inherit = top->inherit;
+fallback_missing_features:
+ if (top->exclude_guest_missing)
+ attr->exclude_guest = attr->exclude_host = 0;
retry_sample_id:
attr->sample_id_all = top->sample_id_all_avail ? 1 : 0;
try_again:
@@ -883,12 +886,20 @@ try_again:
if (err == EPERM || err == EACCES) {
ui__error_paranoid();
goto out_err;
- } else if (err == EINVAL && top->sample_id_all_avail) {
- /*
- * Old kernel, no attr->sample_id_type_all field
- */
- top->sample_id_all_avail = false;
- goto retry_sample_id;
+ } else if (err == EINVAL) {
+ if (!top->exclude_guest_missing &&
+ (attr->exclude_guest || attr->exclude_host)) {
+ pr_debug("Old kernel, cannot exclude "
+ "guest or host samples.\n");
+ top->exclude_guest_missing = true;
+ goto fallback_missing_features;
+ } else if (top->sample_id_all_avail) {
+ /*
+ * Old kernel, no attr->sample_id_type_all field
+ */
+ top->sample_id_all_avail = false;
+ goto retry_sample_id;
+ }
}
/*
* If it's cycles then fall back to hrtimer
diff --git a/tools/perf/perf.h b/tools/perf/perf.h
index 03a0456..8b9c436 100644
--- a/tools/perf/perf.h
+++ b/tools/perf/perf.h
@@ -199,6 +199,7 @@ struct perf_record_opts {
bool sample_address;
bool sample_time;
bool sample_id_all_avail;
+ bool exclude_guest_missing;
bool system_wide;
bool period;
unsigned int freq;
diff --git a/tools/perf/util/top.h b/tools/perf/util/top.h
index 49eb848..7dea891 100644
--- a/tools/perf/util/top.h
+++ b/tools/perf/util/top.h
@@ -35,6 +35,7 @@ struct perf_top {
bool inherit;
bool group;
bool sample_id_all_avail;
+ bool exclude_guest_missing;
bool dump_symtab;
const char *cpu_list;
struct hist_entry *sym_filter_entry;
^ permalink raw reply related [flat|nested] 59+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes
2012-02-14 14:38 ` Arnaldo Carvalho de Melo
@ 2012-02-14 15:10 ` Joerg Roedel
2012-02-14 16:11 ` Arnaldo Carvalho de Melo
0 siblings, 1 reply; 59+ messages in thread
From: Joerg Roedel @ 2012-02-14 15:10 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: David Ahern, Namhyung Kim, Namhyung Kim, linux-kernel,
Ingo Molnar, Andi Kleen, Anshuman Khandual, Arun Sharma,
Corey Ashford, Frederic Weisbecker, Jason Wang, Jiri Olsa,
Lin Ming, Paul Mackerras, Peter Zijlstra,
Roberto Agostino Vitillo, Robert Richter, Stephane Eranian,
Thomas Gleixner, Vince Weaver
On Tue, Feb 14, 2012 at 12:38:53PM -0200, Arnaldo Carvalho de Melo wrote:
> diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
> index 08ed24b..d6c10e8 100644
> --- a/tools/perf/builtin-record.c
> +++ b/tools/perf/builtin-record.c
> @@ -205,6 +205,9 @@ static void perf_record__open(struct perf_record *rec)
>
> if (opts->group && pos != first)
> group_fd = first->fd;
> +fallback_missing_features:
> + if (opts->exclude_guest_missing)
> + attr->exclude_guest = attr->exclude_host = 0;
> retry_sample_id:
> attr->sample_id_all = opts->sample_id_all_avail ? 1 : 0;
> try_again:
> @@ -218,15 +221,23 @@ try_again:
> } else if (err == ENODEV && opts->cpu_list) {
> die("No such device - did you specify"
> " an out-of-range profile CPU?\n");
> - } else if (err == EINVAL && opts->sample_id_all_avail) {
> - /*
> - * Old kernel, no attr->sample_id_type_all field
> - */
> - opts->sample_id_all_avail = false;
> - if (!opts->sample_time && !opts->raw_samples && !time_needed)
> - attr->sample_type &= ~PERF_SAMPLE_TIME;
> -
> - goto retry_sample_id;
> + } else if (err == EINVAL) {
> + if (!opts->exclude_guest_missing &&
> + (attr->exclude_guest || attr->exclude_host)) {
> + pr_debug("Old kernel, cannot exclude "
> + "guest or host samples.\n");
> + opts->exclude_guest_missing = true;
> + goto fallback_missing_features;
> + } else if (opts->sample_id_all_avail) {
> + /*
> + * Old kernel, no attr->sample_id_type_all field
> + */
> + opts->sample_id_all_avail = false;
> + if (!opts->sample_time && !opts->raw_samples && !time_needed)
> + attr->sample_type &= ~PERF_SAMPLE_TIME;
> +
> + goto retry_sample_id;
> + }
> }
>
> /*
> diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c
> index 5a88c0d..02e11ff 100644
> --- a/tools/perf/builtin-top.c
> +++ b/tools/perf/builtin-top.c
> @@ -872,6 +872,9 @@ static void perf_top__start_counters(struct perf_top *top)
> attr->mmap = 1;
> attr->comm = 1;
> attr->inherit = top->inherit;
> +fallback_missing_features:
> + if (top->exclude_guest_missing)
> + attr->exclude_guest = attr->exclude_host = 0;
> retry_sample_id:
> attr->sample_id_all = top->sample_id_all_avail ? 1 : 0;
> try_again:
> @@ -883,12 +886,20 @@ try_again:
> if (err == EPERM || err == EACCES) {
> ui__error_paranoid();
> goto out_err;
> - } else if (err == EINVAL && top->sample_id_all_avail) {
> - /*
> - * Old kernel, no attr->sample_id_type_all field
> - */
> - top->sample_id_all_avail = false;
> - goto retry_sample_id;
> + } else if (err == EINVAL) {
> + if (!top->exclude_guest_missing &&
> + (attr->exclude_guest || attr->exclude_host)) {
> + pr_debug("Old kernel, cannot exclude "
> + "guest or host samples.\n");
> + top->exclude_guest_missing = true;
> + goto fallback_missing_features;
> + } else if (top->sample_id_all_avail) {
> + /*
> + * Old kernel, no attr->sample_id_type_all field
> + */
> + top->sample_id_all_avail = false;
> + goto retry_sample_id;
> + }
> }
> /*
> * If it's cycles then fall back to hrtimer
> diff --git a/tools/perf/perf.h b/tools/perf/perf.h
> index 03a0456..8b9c436 100644
> --- a/tools/perf/perf.h
> +++ b/tools/perf/perf.h
> @@ -199,6 +199,7 @@ struct perf_record_opts {
> bool sample_address;
> bool sample_time;
> bool sample_id_all_avail;
> + bool exclude_guest_missing;
> bool system_wide;
> bool period;
> unsigned int freq;
> diff --git a/tools/perf/util/top.h b/tools/perf/util/top.h
> index 49eb848..7dea891 100644
> --- a/tools/perf/util/top.h
> +++ b/tools/perf/util/top.h
> @@ -35,6 +35,7 @@ struct perf_top {
> bool inherit;
> bool group;
> bool sample_id_all_avail;
> + bool exclude_guest_missing;
> bool dump_symtab;
> const char *cpu_list;
> struct hist_entry *sym_filter_entry;
I was about to prepare a similar patch :) But anyway, this one works
too.
Tested-by: Joerg Roedel <joerg.roedel@amd.com>
(on 2.6.32)
--
AMD Operating System Research Center
Advanced Micro Devices GmbH Einsteinring 24 85609 Dornach
General Managers: Alberto Bozzo
Registration: Dornach, Landkr. Muenchen; Registerger. Muenchen, HRB Nr. 43632
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes
2012-02-14 15:10 ` Joerg Roedel
@ 2012-02-14 16:11 ` Arnaldo Carvalho de Melo
0 siblings, 0 replies; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2012-02-14 16:11 UTC (permalink / raw)
To: Joerg Roedel
Cc: David Ahern, Namhyung Kim, Namhyung Kim, linux-kernel,
Ingo Molnar, Andi Kleen, Anshuman Khandual, Arun Sharma,
Corey Ashford, Frederic Weisbecker, Jason Wang, Jiri Olsa,
Lin Ming, Paul Mackerras, Peter Zijlstra,
Roberto Agostino Vitillo, Robert Richter, Stephane Eranian,
Thomas Gleixner, Vince Weaver
Em Tue, Feb 14, 2012 at 04:10:39PM +0100, Joerg Roedel escreveu:
> On Tue, Feb 14, 2012 at 12:38:53PM -0200, Arnaldo Carvalho de Melo wrote:
> > bool sample_id_all_avail;
> > + bool exclude_guest_missing;
> > bool dump_symtab;
> > const char *cpu_list;
> > struct hist_entry *sym_filter_entry;
>
> I was about to prepare a similar patch :) But anyway, this one works
> too.
>
> Tested-by: Joerg Roedel <joerg.roedel@amd.com>
>
> (on 2.6.32)
thanks, I'm commiting it now after testing it on a 3.0-rt kernel,
- Arnaldo
^ permalink raw reply [flat|nested] 59+ messages in thread
* [GIT PULL 00/16] perf/core improvements and fixes
@ 2011-09-29 22:47 Arnaldo Carvalho de Melo
2011-10-04 7:57 ` Ingo Molnar
0 siblings, 1 reply; 59+ messages in thread
From: Arnaldo Carvalho de Melo @ 2011-09-29 22:47 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Andi Kleen, David Ahern,
Frederic Weisbecker, Jim Cromie, Jiri Olsa, Mike Galbraith,
Neil Horman, Paul Mackerras, Peter Zijlstra, Stephane Eranian,
Thomas Gleixner, arnaldo.melo
Hi Ingo,
Please consider pulling from:
git://github.com/acmel/linux.git perf/core
This was rebased against your perf/core on tesla.
Regards,
- Arnaldo
Andi Kleen (2):
perf tools: Make stat/record print fatal signals of the target program
perf: Support setting the disassembler style
Arnaldo Carvalho de Melo (6):
perf symbols: Stop using 'self' in map_groups__ methods
perf buildid-list: Add option to show the running kernel build id
perf buildid-list: Support showing the build id in an ELF file
perf top browser: Fix up line width calculation
perf top: Improve lost events warning
perf report: Fix stdio event name header printing
Jim Cromie (5):
perf stat: Add --log-fd <N> option to redirect stderr elsewhere
perf stat: Fix +- nan% in --no-aggr runs
perf stat: Suppress printing std-dev when its 0
perf stat: Allow tab as cvs delimiter
perf stat: Fix spelling in comment
Jiri Olsa (2):
perf sched: Fix script command documentation
perf symbols: Treat all memory maps without dso file as loaded
Neil Horman (1):
perf script: Add drop monitor script
tools/perf/Documentation/perf-annotate.txt | 3 +
tools/perf/Documentation/perf-buildid-list.txt | 6 +
tools/perf/Documentation/perf-report.txt | 3 +
tools/perf/Documentation/perf-sched.txt | 6 +-
tools/perf/Documentation/perf-stat.txt | 11 ++-
tools/perf/builtin-annotate.c | 2 +
tools/perf/builtin-buildid-list.c | 52 ++++++++++-
tools/perf/builtin-record.c | 19 ++++-
tools/perf/builtin-report.c | 7 +-
tools/perf/builtin-stat.c | 35 ++++++-
tools/perf/builtin-top.c | 34 ++++----
.../perf/scripts/python/bin/net_dropmonitor-record | 2 +
.../perf/scripts/python/bin/net_dropmonitor-report | 4 +
tools/perf/scripts/python/net_dropmonitor.py | 72 ++++++++++++++
tools/perf/util/annotate.c | 6 +-
tools/perf/util/annotate.h | 2 +
tools/perf/util/map.c | 98 +++++++++++---------
tools/perf/util/map.h | 42 ++++----
tools/perf/util/top.h | 3 +
tools/perf/util/ui/browsers/top.c | 28 +++++-
20 files changed, 333 insertions(+), 102 deletions(-)
create mode 100755 tools/perf/scripts/python/bin/net_dropmonitor-record
create mode 100755 tools/perf/scripts/python/bin/net_dropmonitor-report
create mode 100755 tools/perf/scripts/python/net_dropmonitor.py
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes
2011-09-29 22:47 Arnaldo Carvalho de Melo
@ 2011-10-04 7:57 ` Ingo Molnar
0 siblings, 0 replies; 59+ messages in thread
From: Ingo Molnar @ 2011-10-04 7:57 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Andi Kleen, David Ahern, Frederic Weisbecker,
Jim Cromie, Jiri Olsa, Mike Galbraith, Neil Horman,
Paul Mackerras, Peter Zijlstra, Stephane Eranian,
Thomas Gleixner, arnaldo.melo
* Arnaldo Carvalho de Melo <acme@infradead.org> wrote:
> Hi Ingo,
>
> Please consider pulling from:
>
> git://github.com/acmel/linux.git perf/core
>
> This was rebased against your perf/core on tesla.
>
> Regards,
>
> - Arnaldo
>
> Andi Kleen (2):
> perf tools: Make stat/record print fatal signals of the target program
> perf: Support setting the disassembler style
>
> Arnaldo Carvalho de Melo (6):
> perf symbols: Stop using 'self' in map_groups__ methods
> perf buildid-list: Add option to show the running kernel build id
> perf buildid-list: Support showing the build id in an ELF file
> perf top browser: Fix up line width calculation
> perf top: Improve lost events warning
> perf report: Fix stdio event name header printing
>
> Jim Cromie (5):
> perf stat: Add --log-fd <N> option to redirect stderr elsewhere
> perf stat: Fix +- nan% in --no-aggr runs
> perf stat: Suppress printing std-dev when its 0
> perf stat: Allow tab as cvs delimiter
> perf stat: Fix spelling in comment
>
> Jiri Olsa (2):
> perf sched: Fix script command documentation
> perf symbols: Treat all memory maps without dso file as loaded
>
> Neil Horman (1):
> perf script: Add drop monitor script
>
> tools/perf/Documentation/perf-annotate.txt | 3 +
> tools/perf/Documentation/perf-buildid-list.txt | 6 +
> tools/perf/Documentation/perf-report.txt | 3 +
> tools/perf/Documentation/perf-sched.txt | 6 +-
> tools/perf/Documentation/perf-stat.txt | 11 ++-
> tools/perf/builtin-annotate.c | 2 +
> tools/perf/builtin-buildid-list.c | 52 ++++++++++-
> tools/perf/builtin-record.c | 19 ++++-
> tools/perf/builtin-report.c | 7 +-
> tools/perf/builtin-stat.c | 35 ++++++-
> tools/perf/builtin-top.c | 34 ++++----
> .../perf/scripts/python/bin/net_dropmonitor-record | 2 +
> .../perf/scripts/python/bin/net_dropmonitor-report | 4 +
> tools/perf/scripts/python/net_dropmonitor.py | 72 ++++++++++++++
> tools/perf/util/annotate.c | 6 +-
> tools/perf/util/annotate.h | 2 +
> tools/perf/util/map.c | 98 +++++++++++---------
> tools/perf/util/map.h | 42 ++++----
> tools/perf/util/top.h | 3 +
> tools/perf/util/ui/browsers/top.c | 28 +++++-
> 20 files changed, 333 insertions(+), 102 deletions(-)
> create mode 100755 tools/perf/scripts/python/bin/net_dropmonitor-record
> create mode 100755 tools/perf/scripts/python/bin/net_dropmonitor-report
> create mode 100755 tools/perf/scripts/python/net_dropmonitor.py
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 59+ messages in thread
end of thread, other threads:[~2019-01-08 15:32 UTC | newest]
Thread overview: 59+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-09-30 21:54 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo
2015-09-30 21:54 ` [PATCH 01/16] tools: Fix shadowed declaration in err.h Arnaldo Carvalho de Melo
2015-09-30 21:54 ` [PATCH 02/16] perf tools: Fix shadowed declaration in parse-events.c Arnaldo Carvalho de Melo
2015-09-30 21:54 ` [PATCH 03/16] perf maps: Introduce maps__find_symbol_by_name() Arnaldo Carvalho de Melo
2015-09-30 21:54 ` [PATCH 04/16] perf report: Amend documentation about max_stack and synthesized callchains Arnaldo Carvalho de Melo
2015-09-30 21:55 ` [PATCH 05/16] perf tools: Fix build break on powerpc due to sample_reg_masks Arnaldo Carvalho de Melo
2015-09-30 21:55 ` [PATCH 06/16] perf machine: Use machine__kernel_map() thoroughly Arnaldo Carvalho de Melo
2015-09-30 21:55 ` [PATCH 07/16] perf machine: Add method for common kernel_map(FUNCTION) operation Arnaldo Carvalho de Melo
2015-09-30 21:55 ` [PATCH 08/16] tools lib symbol: Rename kallsyms2elf_type to kallsyms2elf_binding Arnaldo Carvalho de Melo
2015-09-30 21:55 ` [PATCH 09/16] tools lib symbol: Introduce kallsyms2elf_type Arnaldo Carvalho de Melo
2015-09-30 21:55 ` [PATCH 10/16] perf probe: Fix to remove dot suffix from second or latter events Arnaldo Carvalho de Melo
2015-09-30 21:55 ` [PATCH 11/16] perf probe: Begin and end libdwfl report session correctly Arnaldo Carvalho de Melo
2015-09-30 21:55 ` [PATCH 12/16] perf probe: Show correct source lines of probes on kmodules Arnaldo Carvalho de Melo
2015-09-30 21:55 ` [PATCH 13/16] perf probe: Fix a segfault bug in debuginfo_cache Arnaldo Carvalho de Melo
2015-09-30 21:55 ` [PATCH 14/16] perf probe: Improve error message when %return is on inlined function Arnaldo Carvalho de Melo
2015-09-30 21:55 ` [PATCH 15/16] perf list: Remove blank lines, headers when piping output Arnaldo Carvalho de Melo
2015-09-30 21:55 ` [PATCH 16/16] perf tools: By default use the most precise "cycles" hw counter available Arnaldo Carvalho de Melo
2015-10-01 7:05 ` [GIT PULL 00/16] perf/core improvements and fixes Ingo Molnar
-- strict thread matches above, loose matches on Subject: below --
2019-01-04 18:33 Arnaldo Carvalho de Melo
2019-01-08 15:32 ` Ingo Molnar
2016-07-05 0:38 Arnaldo Carvalho de Melo
2016-07-05 10:14 ` Ingo Molnar
2016-01-29 21:17 Arnaldo Carvalho de Melo
2016-01-29 21:17 ` Arnaldo Carvalho de Melo
2016-02-03 10:02 ` Ingo Molnar
2016-02-03 10:02 ` Ingo Molnar
2015-12-14 17:44 Arnaldo Carvalho de Melo
2015-10-05 21:03 Arnaldo Carvalho de Melo
2015-10-06 7:09 ` Ingo Molnar
2015-08-25 16:14 Arnaldo Carvalho de Melo
2015-08-26 13:39 ` Arnaldo Carvalho de Melo
2015-04-07 16:40 Arnaldo Carvalho de Melo
2015-04-07 16:40 ` Arnaldo Carvalho de Melo
2014-11-19 16:03 Arnaldo Carvalho de Melo
2014-11-20 7:33 ` Ingo Molnar
2014-08-22 16:29 Arnaldo Carvalho de Melo
2014-08-24 10:11 ` Ingo Molnar
2014-08-24 11:16 ` Arnaldo Carvalho de Melo
2014-08-24 14:47 ` Ingo Molnar
2014-03-14 21:29 Arnaldo Carvalho de Melo
2014-03-18 8:24 ` Ingo Molnar
2013-11-18 20:27 Arnaldo Carvalho de Melo
2013-10-23 20:57 Arnaldo Carvalho de Melo
2013-10-24 6:52 ` Ingo Molnar
2012-02-14 1:52 Arnaldo Carvalho de Melo
2012-02-14 2:50 ` Namhyung Kim
2012-02-14 3:07 ` Namhyung Kim
2012-02-14 5:10 ` Namhyung Kim
2012-02-14 5:23 ` David Ahern
2012-02-14 5:48 ` Namhyung Kim
2012-02-14 5:52 ` David Ahern
2012-02-14 5:58 ` Namhyung Kim
2012-02-14 10:50 ` Joerg Roedel
2012-02-14 13:10 ` Arnaldo Carvalho de Melo
2012-02-14 14:38 ` Arnaldo Carvalho de Melo
2012-02-14 15:10 ` Joerg Roedel
2012-02-14 16:11 ` Arnaldo Carvalho de Melo
2011-09-29 22:47 Arnaldo Carvalho de Melo
2011-10-04 7:57 ` Ingo Molnar
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.