* [GIT PULL 00/16] perf/core improvements and fixes
@ 2011-09-29 22:47 Arnaldo Carvalho de Melo
2011-09-29 22:47 ` [PATCH 01/16] perf symbols: Stop using 'self' in map_groups__ methods Arnaldo Carvalho de Melo
` (16 more replies)
0 siblings, 17 replies; 63+ 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] 63+ messages in thread
* [PATCH 01/16] perf symbols: Stop using 'self' in map_groups__ methods
2011-09-29 22:47 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo
@ 2011-09-29 22:47 ` Arnaldo Carvalho de Melo
2011-09-29 22:47 ` [PATCH 02/16] perf script: Add drop monitor script Arnaldo Carvalho de Melo
` (15 subsequent siblings)
16 siblings, 0 replies; 63+ 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, David Ahern,
Frederic Weisbecker, Mike Galbraith, Paul Mackerras,
Peter Zijlstra, Stephane Eranian
From: Arnaldo Carvalho de Melo <acme@redhat.com>
Stop using this python/OOP convention, doesn't really helps. Will do
more from time to time till we get it cleaned up in all of /perf.
Suggested-by: Thomas Gleixner <tglx@linutronix.de>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/n/tip-rl9e690y60vnuyng05yp1zd3@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/map.c | 74 ++++++++++++++++++++++++------------------------
tools/perf/util/map.h | 42 ++++++++++++++--------------
2 files changed, 58 insertions(+), 58 deletions(-)
diff --git a/tools/perf/util/map.c b/tools/perf/util/map.c
index a16ecab..aa2f9fd 100644
--- a/tools/perf/util/map.c
+++ b/tools/perf/util/map.c
@@ -220,55 +220,55 @@ u64 map__objdump_2ip(struct map *map, u64 addr)
return ip;
}
-void map_groups__init(struct map_groups *self)
+void map_groups__init(struct map_groups *mg)
{
int i;
for (i = 0; i < MAP__NR_TYPES; ++i) {
- self->maps[i] = RB_ROOT;
- INIT_LIST_HEAD(&self->removed_maps[i]);
+ mg->maps[i] = RB_ROOT;
+ INIT_LIST_HEAD(&mg->removed_maps[i]);
}
- self->machine = NULL;
+ mg->machine = NULL;
}
-static void maps__delete(struct rb_root *self)
+static void maps__delete(struct rb_root *maps)
{
- struct rb_node *next = rb_first(self);
+ struct rb_node *next = rb_first(maps);
while (next) {
struct map *pos = rb_entry(next, struct map, rb_node);
next = rb_next(&pos->rb_node);
- rb_erase(&pos->rb_node, self);
+ rb_erase(&pos->rb_node, maps);
map__delete(pos);
}
}
-static void maps__delete_removed(struct list_head *self)
+static void maps__delete_removed(struct list_head *maps)
{
struct map *pos, *n;
- list_for_each_entry_safe(pos, n, self, node) {
+ list_for_each_entry_safe(pos, n, maps, node) {
list_del(&pos->node);
map__delete(pos);
}
}
-void map_groups__exit(struct map_groups *self)
+void map_groups__exit(struct map_groups *mg)
{
int i;
for (i = 0; i < MAP__NR_TYPES; ++i) {
- maps__delete(&self->maps[i]);
- maps__delete_removed(&self->removed_maps[i]);
+ maps__delete(&mg->maps[i]);
+ maps__delete_removed(&mg->removed_maps[i]);
}
}
-void map_groups__flush(struct map_groups *self)
+void map_groups__flush(struct map_groups *mg)
{
int type;
for (type = 0; type < MAP__NR_TYPES; type++) {
- struct rb_root *root = &self->maps[type];
+ struct rb_root *root = &mg->maps[type];
struct rb_node *next = rb_first(root);
while (next) {
@@ -280,17 +280,17 @@ void map_groups__flush(struct map_groups *self)
* instance in some hist_entry instances, so
* just move them to a separate list.
*/
- list_add_tail(&pos->node, &self->removed_maps[pos->type]);
+ list_add_tail(&pos->node, &mg->removed_maps[pos->type]);
}
}
}
-struct symbol *map_groups__find_symbol(struct map_groups *self,
+struct symbol *map_groups__find_symbol(struct map_groups *mg,
enum map_type type, u64 addr,
struct map **mapp,
symbol_filter_t filter)
{
- struct map *map = map_groups__find(self, type, addr);
+ struct map *map = map_groups__find(mg, type, addr);
if (map != NULL) {
if (mapp != NULL)
@@ -301,7 +301,7 @@ struct symbol *map_groups__find_symbol(struct map_groups *self,
return NULL;
}
-struct symbol *map_groups__find_symbol_by_name(struct map_groups *self,
+struct symbol *map_groups__find_symbol_by_name(struct map_groups *mg,
enum map_type type,
const char *name,
struct map **mapp,
@@ -309,7 +309,7 @@ struct symbol *map_groups__find_symbol_by_name(struct map_groups *self,
{
struct rb_node *nd;
- for (nd = rb_first(&self->maps[type]); nd; nd = rb_next(nd)) {
+ for (nd = rb_first(&mg->maps[type]); nd; nd = rb_next(nd)) {
struct map *pos = rb_entry(nd, struct map, rb_node);
struct symbol *sym = map__find_symbol_by_name(pos, name, filter);
@@ -323,13 +323,13 @@ struct symbol *map_groups__find_symbol_by_name(struct map_groups *self,
return NULL;
}
-size_t __map_groups__fprintf_maps(struct map_groups *self,
+size_t __map_groups__fprintf_maps(struct map_groups *mg,
enum map_type type, int verbose, FILE *fp)
{
size_t printed = fprintf(fp, "%s:\n", map_type__name[type]);
struct rb_node *nd;
- for (nd = rb_first(&self->maps[type]); nd; nd = rb_next(nd)) {
+ for (nd = rb_first(&mg->maps[type]); nd; nd = rb_next(nd)) {
struct map *pos = rb_entry(nd, struct map, rb_node);
printed += fprintf(fp, "Map:");
printed += map__fprintf(pos, fp);
@@ -342,22 +342,22 @@ size_t __map_groups__fprintf_maps(struct map_groups *self,
return printed;
}
-size_t map_groups__fprintf_maps(struct map_groups *self, int verbose, FILE *fp)
+size_t map_groups__fprintf_maps(struct map_groups *mg, int verbose, FILE *fp)
{
size_t printed = 0, i;
for (i = 0; i < MAP__NR_TYPES; ++i)
- printed += __map_groups__fprintf_maps(self, i, verbose, fp);
+ printed += __map_groups__fprintf_maps(mg, i, verbose, fp);
return printed;
}
-static size_t __map_groups__fprintf_removed_maps(struct map_groups *self,
+static size_t __map_groups__fprintf_removed_maps(struct map_groups *mg,
enum map_type type,
int verbose, FILE *fp)
{
struct map *pos;
size_t printed = 0;
- list_for_each_entry(pos, &self->removed_maps[type], node) {
+ list_for_each_entry(pos, &mg->removed_maps[type], node) {
printed += fprintf(fp, "Map:");
printed += map__fprintf(pos, fp);
if (verbose > 1) {
@@ -368,26 +368,26 @@ static size_t __map_groups__fprintf_removed_maps(struct map_groups *self,
return printed;
}
-static size_t map_groups__fprintf_removed_maps(struct map_groups *self,
+static size_t map_groups__fprintf_removed_maps(struct map_groups *mg,
int verbose, FILE *fp)
{
size_t printed = 0, i;
for (i = 0; i < MAP__NR_TYPES; ++i)
- printed += __map_groups__fprintf_removed_maps(self, i, verbose, fp);
+ printed += __map_groups__fprintf_removed_maps(mg, i, verbose, fp);
return printed;
}
-size_t map_groups__fprintf(struct map_groups *self, int verbose, FILE *fp)
+size_t map_groups__fprintf(struct map_groups *mg, int verbose, FILE *fp)
{
- size_t printed = map_groups__fprintf_maps(self, verbose, fp);
+ size_t printed = map_groups__fprintf_maps(mg, verbose, fp);
printed += fprintf(fp, "Removed maps:\n");
- return printed + map_groups__fprintf_removed_maps(self, verbose, fp);
+ return printed + map_groups__fprintf_removed_maps(mg, verbose, fp);
}
-int map_groups__fixup_overlappings(struct map_groups *self, struct map *map,
+int map_groups__fixup_overlappings(struct map_groups *mg, struct map *map,
int verbose, FILE *fp)
{
- struct rb_root *root = &self->maps[map->type];
+ struct rb_root *root = &mg->maps[map->type];
struct rb_node *next = rb_first(root);
int err = 0;
@@ -418,7 +418,7 @@ int map_groups__fixup_overlappings(struct map_groups *self, struct map *map,
}
before->end = map->start - 1;
- map_groups__insert(self, before);
+ map_groups__insert(mg, before);
if (verbose >= 2)
map__fprintf(before, fp);
}
@@ -432,7 +432,7 @@ int map_groups__fixup_overlappings(struct map_groups *self, struct map *map,
}
after->start = map->end + 1;
- map_groups__insert(self, after);
+ map_groups__insert(mg, after);
if (verbose >= 2)
map__fprintf(after, fp);
}
@@ -441,7 +441,7 @@ move_map:
* If we have references, just move them to a separate list.
*/
if (pos->referenced)
- list_add_tail(&pos->node, &self->removed_maps[map->type]);
+ list_add_tail(&pos->node, &mg->removed_maps[map->type]);
else
map__delete(pos);
@@ -455,7 +455,7 @@ move_map:
/*
* XXX This should not really _copy_ te maps, but refcount them.
*/
-int map_groups__clone(struct map_groups *self,
+int map_groups__clone(struct map_groups *mg,
struct map_groups *parent, enum map_type type)
{
struct rb_node *nd;
@@ -464,7 +464,7 @@ int map_groups__clone(struct map_groups *self,
struct map *new = map__clone(map);
if (new == NULL)
return -ENOMEM;
- map_groups__insert(self, new);
+ map_groups__insert(mg, new);
}
return 0;
}
diff --git a/tools/perf/util/map.h b/tools/perf/util/map.h
index b397c03..890d855 100644
--- a/tools/perf/util/map.h
+++ b/tools/perf/util/map.h
@@ -123,17 +123,17 @@ void map__fixup_end(struct map *self);
void map__reloc_vmlinux(struct map *self);
-size_t __map_groups__fprintf_maps(struct map_groups *self,
+size_t __map_groups__fprintf_maps(struct map_groups *mg,
enum map_type type, int verbose, FILE *fp);
void maps__insert(struct rb_root *maps, struct map *map);
-void maps__remove(struct rb_root *self, struct map *map);
+void maps__remove(struct rb_root *maps, struct map *map);
struct map *maps__find(struct rb_root *maps, u64 addr);
-void map_groups__init(struct map_groups *self);
-void map_groups__exit(struct map_groups *self);
-int map_groups__clone(struct map_groups *self,
+void map_groups__init(struct map_groups *mg);
+void map_groups__exit(struct map_groups *mg);
+int map_groups__clone(struct map_groups *mg,
struct map_groups *parent, enum map_type type);
-size_t map_groups__fprintf(struct map_groups *self, int verbose, FILE *fp);
-size_t map_groups__fprintf_maps(struct map_groups *self, int verbose, FILE *fp);
+size_t map_groups__fprintf(struct map_groups *mg, int verbose, FILE *fp);
+size_t map_groups__fprintf_maps(struct map_groups *mg, int verbose, FILE *fp);
typedef void (*machine__process_t)(struct machine *self, void *data);
@@ -162,29 +162,29 @@ static inline bool machine__is_host(struct machine *self)
return self ? self->pid == HOST_KERNEL_ID : false;
}
-static inline void map_groups__insert(struct map_groups *self, struct map *map)
+static inline void map_groups__insert(struct map_groups *mg, struct map *map)
{
- maps__insert(&self->maps[map->type], map);
- map->groups = self;
+ maps__insert(&mg->maps[map->type], map);
+ map->groups = mg;
}
-static inline void map_groups__remove(struct map_groups *self, struct map *map)
+static inline void map_groups__remove(struct map_groups *mg, struct map *map)
{
- maps__remove(&self->maps[map->type], map);
+ maps__remove(&mg->maps[map->type], map);
}
-static inline struct map *map_groups__find(struct map_groups *self,
+static inline struct map *map_groups__find(struct map_groups *mg,
enum map_type type, u64 addr)
{
- return maps__find(&self->maps[type], addr);
+ return maps__find(&mg->maps[type], addr);
}
-struct symbol *map_groups__find_symbol(struct map_groups *self,
+struct symbol *map_groups__find_symbol(struct map_groups *mg,
enum map_type type, u64 addr,
struct map **mapp,
symbol_filter_t filter);
-struct symbol *map_groups__find_symbol_by_name(struct map_groups *self,
+struct symbol *map_groups__find_symbol_by_name(struct map_groups *mg,
enum map_type type,
const char *name,
struct map **mapp,
@@ -208,11 +208,11 @@ struct symbol *machine__find_kernel_function(struct machine *self, u64 addr,
}
static inline
-struct symbol *map_groups__find_function_by_name(struct map_groups *self,
+struct symbol *map_groups__find_function_by_name(struct map_groups *mg,
const char *name, struct map **mapp,
symbol_filter_t filter)
{
- return map_groups__find_symbol_by_name(self, MAP__FUNCTION, name, mapp, filter);
+ return map_groups__find_symbol_by_name(mg, MAP__FUNCTION, name, mapp, filter);
}
static inline
@@ -225,13 +225,13 @@ struct symbol *machine__find_kernel_function_by_name(struct machine *self,
filter);
}
-int map_groups__fixup_overlappings(struct map_groups *self, struct map *map,
+int map_groups__fixup_overlappings(struct map_groups *mg, struct map *map,
int verbose, FILE *fp);
-struct map *map_groups__find_by_name(struct map_groups *self,
+struct map *map_groups__find_by_name(struct map_groups *mg,
enum map_type type, const char *name);
struct map *machine__new_module(struct machine *self, u64 start, const char *filename);
-void map_groups__flush(struct map_groups *self);
+void map_groups__flush(struct map_groups *mg);
#endif /* __PERF_MAP_H */
--
1.6.2.5
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PATCH 02/16] perf script: Add drop monitor script
2011-09-29 22:47 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo
2011-09-29 22:47 ` [PATCH 01/16] perf symbols: Stop using 'self' in map_groups__ methods Arnaldo Carvalho de Melo
@ 2011-09-29 22:47 ` Arnaldo Carvalho de Melo
2011-09-29 22:47 ` [PATCH 03/16] perf buildid-list: Add option to show the running kernel build id Arnaldo Carvalho de Melo
` (14 subsequent siblings)
16 siblings, 0 replies; 63+ messages in thread
From: Arnaldo Carvalho de Melo @ 2011-09-29 22:47 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Neil Horman, Ingo Molnar, Paul Mackerras,
Peter Zijlstra, Arnaldo Carvalho de Melo
From: Neil Horman <nhorman@tuxdriver.com>
A while back I created the dropmonitor protocol, which allowed users to get
reports of dropped frames communicated to them via a netlink socket.
While useful, several people have now asked that I integrate the ability
to do drop monitoring with perf, so they don't have to run additional
tools.
This patch adds a drop monitor script to the perf suite, and provides
the same output that the netlink socket does.
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1309801217-22450-1-git-send-email-nhorman@tuxdriver.com
Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
.../perf/scripts/python/bin/net_dropmonitor-record | 2 +
.../perf/scripts/python/bin/net_dropmonitor-report | 4 +
tools/perf/scripts/python/net_dropmonitor.py | 72 ++++++++++++++++++++
3 files changed, 78 insertions(+), 0 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
diff --git a/tools/perf/scripts/python/bin/net_dropmonitor-record b/tools/perf/scripts/python/bin/net_dropmonitor-record
new file mode 100755
index 0000000..423fb81
--- /dev/null
+++ b/tools/perf/scripts/python/bin/net_dropmonitor-record
@@ -0,0 +1,2 @@
+#!/bin/bash
+perf record -e skb:kfree_skb $@
diff --git a/tools/perf/scripts/python/bin/net_dropmonitor-report b/tools/perf/scripts/python/bin/net_dropmonitor-report
new file mode 100755
index 0000000..8d698f5
--- /dev/null
+++ b/tools/perf/scripts/python/bin/net_dropmonitor-report
@@ -0,0 +1,4 @@
+#!/bin/bash
+# description: display a table of dropped frames
+
+perf script -s "$PERF_EXEC_PATH"/scripts/python/net_dropmonitor.py $@
diff --git a/tools/perf/scripts/python/net_dropmonitor.py b/tools/perf/scripts/python/net_dropmonitor.py
new file mode 100755
index 0000000..a4ffc95
--- /dev/null
+++ b/tools/perf/scripts/python/net_dropmonitor.py
@@ -0,0 +1,72 @@
+# Monitor the system for dropped packets and proudce a report of drop locations and counts
+
+import os
+import sys
+
+sys.path.append(os.environ['PERF_EXEC_PATH'] + \
+ '/scripts/python/Perf-Trace-Util/lib/Perf/Trace')
+
+from perf_trace_context import *
+from Core import *
+from Util import *
+
+drop_log = {}
+kallsyms = []
+
+def get_kallsyms_table():
+ global kallsyms
+ try:
+ f = open("/proc/kallsyms", "r")
+ linecount = 0
+ for line in f:
+ linecount = linecount+1
+ f.seek(0)
+ except:
+ return
+
+
+ j = 0
+ for line in f:
+ loc = int(line.split()[0], 16)
+ name = line.split()[2]
+ j = j +1
+ if ((j % 100) == 0):
+ print "\r" + str(j) + "/" + str(linecount),
+ kallsyms.append({ 'loc': loc, 'name' : name})
+
+ print "\r" + str(j) + "/" + str(linecount)
+ kallsyms.sort()
+ return
+
+def get_sym(sloc):
+ loc = int(sloc)
+ for i in kallsyms:
+ if (i['loc'] >= loc):
+ return (i['name'], i['loc']-loc)
+ return (None, 0)
+
+def print_drop_table():
+ print "%25s %25s %25s" % ("LOCATION", "OFFSET", "COUNT")
+ for i in drop_log.keys():
+ (sym, off) = get_sym(i)
+ if sym == None:
+ sym = i
+ print "%25s %25s %25s" % (sym, off, drop_log[i])
+
+
+def trace_begin():
+ print "Starting trace (Ctrl-C to dump results)"
+
+def trace_end():
+ print "Gathering kallsyms data"
+ get_kallsyms_table()
+ print_drop_table()
+
+# called from perf, when it finds a correspoinding event
+def skb__kfree_skb(name, context, cpu, sec, nsec, pid, comm,
+ skbaddr, protocol, location):
+ slocation = str(location)
+ try:
+ drop_log[slocation] = drop_log[slocation] + 1
+ except:
+ drop_log[slocation] = 1
--
1.6.2.5
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PATCH 03/16] perf buildid-list: Add option to show the running kernel build id
2011-09-29 22:47 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo
2011-09-29 22:47 ` [PATCH 01/16] perf symbols: Stop using 'self' in map_groups__ methods Arnaldo Carvalho de Melo
2011-09-29 22:47 ` [PATCH 02/16] perf script: Add drop monitor script Arnaldo Carvalho de Melo
@ 2011-09-29 22:47 ` Arnaldo Carvalho de Melo
2011-09-29 22:47 ` [PATCH 04/16] perf buildid-list: Support showing the build id in an ELF file Arnaldo Carvalho de Melo
` (13 subsequent siblings)
16 siblings, 0 replies; 63+ 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, David Ahern,
Frederic Weisbecker, Mike Galbraith, Paul Mackerras,
Peter Zijlstra, Stephane Eranian
From: Arnaldo Carvalho de Melo <acme@redhat.com>
[root@emilia ~]# perf buildid-list -k
07b0c016a2b30004e86132d0239945b1e88f5d75
Useful when diagnosing build id problems in debuginfo packages, etc.
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/n/tip-po1bl7acn6e1hhne90opmvtl@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/Documentation/perf-buildid-list.txt | 5 ++++
tools/perf/builtin-buildid-list.c | 31 ++++++++++++++++++++++-
2 files changed, 34 insertions(+), 2 deletions(-)
diff --git a/tools/perf/Documentation/perf-buildid-list.txt b/tools/perf/Documentation/perf-buildid-list.txt
index 5eaac6f..770a7f3 100644
--- a/tools/perf/Documentation/perf-buildid-list.txt
+++ b/tools/perf/Documentation/perf-buildid-list.txt
@@ -16,6 +16,8 @@ This command displays the buildids found in a perf.data file, so that other
tools can be used to fetch packages with matching symbol tables for use by
perf report.
+It can also be used to show the build id of the running kernel.
+
OPTIONS
-------
-H::
@@ -27,6 +29,9 @@ OPTIONS
-f::
--force::
Don't do ownership validation.
+-k::
+--kernel::
+ Show running kernel build id.
-v::
--verbose::
Be more verbose.
diff --git a/tools/perf/builtin-buildid-list.c b/tools/perf/builtin-buildid-list.c
index 5af32ae..4102ead 100644
--- a/tools/perf/builtin-buildid-list.c
+++ b/tools/perf/builtin-buildid-list.c
@@ -1,7 +1,8 @@
/*
* builtin-buildid-list.c
*
- * Builtin buildid-list command: list buildids in perf.data
+ * Builtin buildid-list command: list buildids in perf.data or in the running
+ * kernel.
*
* Copyright (C) 2009, Red Hat Inc.
* Copyright (C) 2009, Arnaldo Carvalho de Melo <acme@redhat.com>
@@ -17,6 +18,7 @@
static char const *input_name = "perf.data";
static bool force;
+static bool show_kernel;
static bool with_hits;
static const char * const buildid_list_usage[] = {
@@ -29,12 +31,13 @@ static const struct option options[] = {
OPT_STRING('i', "input", &input_name, "file",
"input file name"),
OPT_BOOLEAN('f', "force", &force, "don't complain, do it"),
+ OPT_BOOLEAN('k', "kernel", &show_kernel, "Show current kernel build id"),
OPT_INCR('v', "verbose", &verbose,
"be more verbose"),
OPT_END()
};
-static int __cmd_buildid_list(void)
+static int perf_session__list_build_ids(void)
{
struct perf_session *session;
@@ -52,6 +55,30 @@ static int __cmd_buildid_list(void)
return 0;
}
+static int sysfs__fprintf_build_id(FILE *fp)
+{
+ u8 kallsyms_build_id[BUILD_ID_SIZE];
+ char sbuild_id[BUILD_ID_SIZE * 2 + 1];
+
+ if (sysfs__read_build_id("/sys/kernel/notes", kallsyms_build_id,
+ sizeof(kallsyms_build_id)) != 0)
+ return -1;
+
+ build_id__sprintf(kallsyms_build_id, sizeof(kallsyms_build_id),
+ sbuild_id);
+ fprintf(fp, "%s\n", sbuild_id);
+ return 0;
+}
+
+static int __cmd_buildid_list(void)
+{
+
+ if (show_kernel)
+ return sysfs__fprintf_build_id(stdout);
+
+ return perf_session__list_build_ids();
+}
+
int cmd_buildid_list(int argc, const char **argv, const char *prefix __used)
{
argc = parse_options(argc, argv, options, buildid_list_usage, 0);
--
1.6.2.5
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PATCH 04/16] perf buildid-list: Support showing the build id in an ELF file
2011-09-29 22:47 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (2 preceding siblings ...)
2011-09-29 22:47 ` [PATCH 03/16] perf buildid-list: Add option to show the running kernel build id Arnaldo Carvalho de Melo
@ 2011-09-29 22:47 ` Arnaldo Carvalho de Melo
2011-09-29 22:47 ` [PATCH 05/16] perf top browser: Fix up line width calculation Arnaldo Carvalho de Melo
` (12 subsequent siblings)
16 siblings, 0 replies; 63+ 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, David Ahern,
Frederic Weisbecker, Mike Galbraith, Paul Mackerras,
Peter Zijlstra, Stephane Eranian
From: Arnaldo Carvalho de Melo <acme@redhat.com>
Try first reading the build id, validating that it is an ELF file, etc.
Cheap as libelf will bail out as soon as the magic number check fails.
Useful when investigating debuginfo packaging problems like this one:
[root@emilia ~]# perf buildid-list -i /usr/lib/debug/lib/modules/`uname -r`/vmlinux
77bb4ea591a602d455ace759a377c9adfff1aba3
[root@emilia ~]# perf buildid-list -k
07b0c016a2b30004e86132d0239945b1e88f5d75
[root@emilia ~]#
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/n/tip-4elot9oxwa0rr0d90dshca3a@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/Documentation/perf-buildid-list.txt | 3 +-
tools/perf/builtin-buildid-list.c | 27 +++++++++++++++++++++--
2 files changed, 26 insertions(+), 4 deletions(-)
diff --git a/tools/perf/Documentation/perf-buildid-list.txt b/tools/perf/Documentation/perf-buildid-list.txt
index 770a7f3..cc22325 100644
--- a/tools/perf/Documentation/perf-buildid-list.txt
+++ b/tools/perf/Documentation/perf-buildid-list.txt
@@ -16,7 +16,8 @@ This command displays the buildids found in a perf.data file, so that other
tools can be used to fetch packages with matching symbol tables for use by
perf report.
-It can also be used to show the build id of the running kernel.
+It can also be used to show the build id of the running kernel or in an ELF
+file using -i/--input.
OPTIONS
-------
diff --git a/tools/perf/builtin-buildid-list.c b/tools/perf/builtin-buildid-list.c
index 4102ead..cb690a6 100644
--- a/tools/perf/builtin-buildid-list.c
+++ b/tools/perf/builtin-buildid-list.c
@@ -1,8 +1,8 @@
/*
* builtin-buildid-list.c
*
- * Builtin buildid-list command: list buildids in perf.data or in the running
- * kernel.
+ * Builtin buildid-list command: list buildids in perf.data, in the running
+ * kernel and in ELF files.
*
* Copyright (C) 2009, Red Hat Inc.
* Copyright (C) 2009, Arnaldo Carvalho de Melo <acme@redhat.com>
@@ -16,6 +16,8 @@
#include "util/session.h"
#include "util/symbol.h"
+#include <libelf.h>
+
static char const *input_name = "perf.data";
static bool force;
static bool show_kernel;
@@ -70,12 +72,31 @@ static int sysfs__fprintf_build_id(FILE *fp)
return 0;
}
-static int __cmd_buildid_list(void)
+static int filename__fprintf_build_id(const char *name, FILE *fp)
{
+ u8 build_id[BUILD_ID_SIZE];
+ char sbuild_id[BUILD_ID_SIZE * 2 + 1];
+ if (filename__read_build_id(name, build_id,
+ sizeof(build_id)) != sizeof(build_id))
+ return 0;
+
+ build_id__sprintf(build_id, sizeof(build_id), sbuild_id);
+ return fprintf(fp, "%s\n", sbuild_id);
+}
+
+static int __cmd_buildid_list(void)
+{
if (show_kernel)
return sysfs__fprintf_build_id(stdout);
+ elf_version(EV_CURRENT);
+ /*
+ * See if this is an ELF file first:
+ */
+ if (filename__fprintf_build_id(input_name, stdout))
+ return 0;
+
return perf_session__list_build_ids();
}
--
1.6.2.5
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PATCH 05/16] perf top browser: Fix up line width calculation
2011-09-29 22:47 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (3 preceding siblings ...)
2011-09-29 22:47 ` [PATCH 04/16] perf buildid-list: Support showing the build id in an ELF file Arnaldo Carvalho de Melo
@ 2011-09-29 22:47 ` Arnaldo Carvalho de Melo
2011-09-29 22:48 ` [PATCH 06/16] perf top: Improve lost events warning Arnaldo Carvalho de Melo
` (11 subsequent siblings)
16 siblings, 0 replies; 63+ 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, David Ahern,
Frederic Weisbecker, Mike Galbraith, Paul Mackerras,
Peter Zijlstra, Stephane Eranian
From: Arnaldo Carvalho de Melo <acme@redhat.com>
Fixing an artifact where the last 3 chars of a long DSO name would
remain on the screen sometimes.
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/n/tip-dkiakcl3z69dh1bt9uegaktv@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/ui/browsers/top.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/perf/util/ui/browsers/top.c b/tools/perf/util/ui/browsers/top.c
index 88403cf..9d93810 100644
--- a/tools/perf/util/ui/browsers/top.c
+++ b/tools/perf/util/ui/browsers/top.c
@@ -43,10 +43,10 @@ static void perf_top_browser__write(struct ui_browser *browser, void *entry, int
if (top->evlist->nr_entries == 1 || !top->display_weighted) {
slsmg_printf("%20.2f ", syme->weight);
- width -= 24;
+ width -= 21;
} else {
slsmg_printf("%9.1f %10ld ", syme->weight, syme->snap_count);
- width -= 23;
+ width -= 20;
}
slsmg_printf("%4.1f%%", pcnt);
--
1.6.2.5
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PATCH 06/16] perf top: Improve lost events warning
2011-09-29 22:47 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (4 preceding siblings ...)
2011-09-29 22:47 ` [PATCH 05/16] perf top browser: Fix up line width calculation Arnaldo Carvalho de Melo
@ 2011-09-29 22:48 ` Arnaldo Carvalho de Melo
2011-09-29 22:48 ` [PATCH 07/16] perf stat: Add --log-fd <N> option to redirect stderr elsewhere Arnaldo Carvalho de Melo
` (10 subsequent siblings)
16 siblings, 0 replies; 63+ messages in thread
From: Arnaldo Carvalho de Melo @ 2011-09-29 22:48 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, David Ahern,
Frederic Weisbecker, Mike Galbraith, Paul Mackerras,
Peter Zijlstra, Stephane Eranian
From: Arnaldo Carvalho de Melo <acme@redhat.com>
Now it warns everytime that new events are lost.
And the TUI also warns now.
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/n/tip-w1n168yrvrppnq6887s4u0wx@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/builtin-top.c | 34 +++++++++++++++++-----------------
tools/perf/util/top.h | 3 +++
tools/perf/util/ui/browsers/top.c | 24 ++++++++++++++++++++++++
3 files changed, 44 insertions(+), 17 deletions(-)
diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c
index a43433f..23c4f71 100644
--- a/tools/perf/builtin-top.c
+++ b/tools/perf/builtin-top.c
@@ -250,7 +250,7 @@ static void __list_insert_active_sym(struct sym_entry *syme)
list_add(&syme->node, &top.active_symbols);
}
-static void print_sym_table(struct perf_session *session)
+static void print_sym_table(void)
{
char bf[160];
int printed = 0;
@@ -270,10 +270,11 @@ static void print_sym_table(struct perf_session *session)
printf("%-*.*s\n", win_width, win_width, graph_dotted_line);
- if (session->hists.stats.total_lost != 0) {
+ if (top.total_lost_warned != top.session->hists.stats.total_lost) {
+ top.total_lost_warned = top.session->hists.stats.total_lost;
color_fprintf(stdout, PERF_COLOR_RED, "WARNING:");
printf(" LOST %" PRIu64 " events, Check IO/CPU overload\n",
- session->hists.stats.total_lost);
+ top.total_lost_warned);
}
if (top.sym_filter_entry) {
@@ -474,7 +475,7 @@ static int key_mapped(int c)
return 0;
}
-static void handle_keypress(struct perf_session *session, int c)
+static void handle_keypress(int c)
{
if (!key_mapped(c)) {
struct pollfd stdin_poll = { .fd = 0, .events = POLLIN };
@@ -550,7 +551,7 @@ static void handle_keypress(struct perf_session *session, int c)
case 'Q':
printf("exiting.\n");
if (dump_symtab)
- perf_session__fprintf_dsos(session, stderr);
+ perf_session__fprintf_dsos(top.session, stderr);
exit(0);
case 's':
prompt_symbol(&top.sym_filter_entry, "Enter details symbol");
@@ -602,7 +603,6 @@ static void *display_thread(void *arg __used)
struct pollfd stdin_poll = { .fd = 0, .events = POLLIN };
struct termios tc, save;
int delay_msecs, c;
- struct perf_session *session = (struct perf_session *) arg;
tcgetattr(0, &save);
tc = save;
@@ -617,13 +617,13 @@ repeat:
getc(stdin);
do {
- print_sym_table(session);
+ print_sym_table();
} while (!poll(&stdin_poll, 1, delay_msecs) == 1);
c = getc(stdin);
tcsetattr(0, TCSAFLUSH, &save);
- handle_keypress(session, c);
+ handle_keypress(c);
goto repeat;
return NULL;
@@ -935,27 +935,27 @@ static int __cmd_top(void)
* FIXME: perf_session__new should allow passing a O_MMAP, so that all this
* mmap reading, etc is encapsulated in it. Use O_WRONLY for now.
*/
- struct perf_session *session = perf_session__new(NULL, O_WRONLY, false, false, NULL);
- if (session == NULL)
+ top.session = perf_session__new(NULL, O_WRONLY, false, false, NULL);
+ if (top.session == NULL)
return -ENOMEM;
if (top.target_tid != -1)
perf_event__synthesize_thread_map(top.evlist->threads,
- perf_event__process, session);
+ perf_event__process, top.session);
else
- perf_event__synthesize_threads(perf_event__process, session);
+ perf_event__synthesize_threads(perf_event__process, top.session);
start_counters(top.evlist);
- session->evlist = top.evlist;
- perf_session__update_sample_type(session);
+ top.session->evlist = top.evlist;
+ perf_session__update_sample_type(top.session);
/* Wait for a minimal set of events before starting the snapshot */
poll(top.evlist->pollfd, top.evlist->nr_fds, 100);
- perf_session__mmap_read(session);
+ perf_session__mmap_read(top.session);
if (pthread_create(&thread, NULL, (use_browser > 0 ? display_thread_tui :
- display_thread), session)) {
+ display_thread), NULL)) {
printf("Could not create display thread.\n");
exit(-1);
}
@@ -973,7 +973,7 @@ static int __cmd_top(void)
while (1) {
u64 hits = top.samples;
- perf_session__mmap_read(session);
+ perf_session__mmap_read(top.session);
if (hits == top.samples)
ret = poll(top.evlist->pollfd, top.evlist->nr_fds, 100);
diff --git a/tools/perf/util/top.h b/tools/perf/util/top.h
index bfbf95b..b07b041 100644
--- a/tools/perf/util/top.h
+++ b/tools/perf/util/top.h
@@ -10,6 +10,7 @@
struct perf_evlist;
struct perf_evsel;
+struct perf_session;
struct sym_entry {
struct rb_node rb_node;
@@ -38,6 +39,7 @@ struct perf_top {
u64 kernel_samples, us_samples;
u64 exact_samples;
u64 guest_us_samples, guest_kernel_samples;
+ u64 total_lost_warned;
int print_entries, count_filter, delay_secs;
int display_weighted, freq, rb_entries;
pid_t target_pid, target_tid;
@@ -45,6 +47,7 @@ struct perf_top {
const char *cpu_list;
struct sym_entry *sym_filter_entry;
struct perf_evsel *sym_evsel;
+ struct perf_session *session;
};
size_t perf_top__header_snprintf(struct perf_top *top, char *bf, size_t size);
diff --git a/tools/perf/util/ui/browsers/top.c b/tools/perf/util/ui/browsers/top.c
index 9d93810..9b6b43b 100644
--- a/tools/perf/util/ui/browsers/top.c
+++ b/tools/perf/util/ui/browsers/top.c
@@ -11,10 +11,12 @@
#include "../helpline.h"
#include "../libslang.h"
#include "../util.h"
+#include "../ui.h"
#include "../../evlist.h"
#include "../../hist.h"
#include "../../sort.h"
#include "../../symbol.h"
+#include "../../session.h"
#include "../../top.h"
struct perf_top_browser {
@@ -143,6 +145,25 @@ do_annotation:
symbol__tui_annotate(sym, syme->map, 0, top->delay_secs * 1000);
}
+static void perf_top_browser__warn_lost(struct perf_top_browser *browser)
+{
+ struct perf_top *top = browser->b.priv;
+ char msg[128];
+ int len;
+
+ top->total_lost_warned = top->session->hists.stats.total_lost;
+ pthread_mutex_lock(&ui__lock);
+ ui_browser__set_color(&browser->b, HE_COLORSET_TOP);
+ len = snprintf(msg, sizeof(msg),
+ " WARNING: LOST %" PRIu64 " events, Check IO/CPU overload",
+ top->total_lost_warned);
+ if (len > browser->b.width)
+ len = browser->b.width;
+ SLsmg_gotorc(0, browser->b.width - len);
+ slsmg_write_nstring(msg, len);
+ pthread_mutex_unlock(&ui__lock);
+}
+
static int perf_top_browser__run(struct perf_top_browser *browser)
{
int key;
@@ -174,6 +195,9 @@ static int perf_top_browser__run(struct perf_top_browser *browser)
ui_browser__set_color(&browser->b, NEWT_COLORSET_ROOT);
SLsmg_gotorc(0, 0);
slsmg_write_nstring(title, browser->b.width);
+
+ if (top->total_lost_warned != top->session->hists.stats.total_lost)
+ perf_top_browser__warn_lost(browser);
break;
case 'a':
case NEWT_KEY_RIGHT:
--
1.6.2.5
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PATCH 07/16] perf stat: Add --log-fd <N> option to redirect stderr elsewhere
2011-09-29 22:47 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (5 preceding siblings ...)
2011-09-29 22:48 ` [PATCH 06/16] perf top: Improve lost events warning Arnaldo Carvalho de Melo
@ 2011-09-29 22:48 ` Arnaldo Carvalho de Melo
2012-06-18 14:51 ` [PATCH] perf stat: Fix default logfd to use stderr Robert Richter
2011-09-29 22:48 ` [PATCH 08/16] perf stat: Fix +- nan% in --no-aggr runs Arnaldo Carvalho de Melo
` (9 subsequent siblings)
16 siblings, 1 reply; 63+ messages in thread
From: Arnaldo Carvalho de Melo @ 2011-09-29 22:48 UTC (permalink / raw)
To: Ingo Molnar; +Cc: linux-kernel, Jim Cromie, Arnaldo Carvalho de Melo
From: Jim Cromie <jim.cromie@gmail.com>
This perf stat option emulates valgrind's --log-fd option, allowing the
user to send perf results elsewhere, and leaving stderr for use by the
program under test. This complements --output file option, and is
mutually exclusive with it.
3>results perf stat --log-fd 3 -- $cmd
3>>results perf stat --log-fd 3 --append -- $cmd
The perl distro's make test.valgrind target uses valgrind's --log-fd
option, I've adapted it to invoke perf also, and tested this patch
there.
Link: http://lkml.kernel.org/r/1315437244-3788-2-git-send-email-jim.cromie@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Jim Cromie <jim.cromie@gmail.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/Documentation/perf-stat.txt | 11 ++++++++++-
tools/perf/builtin-stat.c | 14 ++++++++++++++
2 files changed, 24 insertions(+), 1 deletions(-)
diff --git a/tools/perf/Documentation/perf-stat.txt b/tools/perf/Documentation/perf-stat.txt
index 08394c4..8966b9a 100644
--- a/tools/perf/Documentation/perf-stat.txt
+++ b/tools/perf/Documentation/perf-stat.txt
@@ -95,12 +95,21 @@ corresponding events, i.e., they always refer to events defined earlier on the c
line.
-o file::
--output file::
+--output file::
Print the output into the designated file.
--append::
Append to the output file designated with the -o option. Ignored if -o is not specified.
+--log-fd::
+
+Log output to fd, instead of stderr. Complementary to --output, and mutually exclusive
+with it. --append may be used here. Examples:
+ 3>results perf stat --log-fd 3 -- $cmd
+ 3>>results perf stat --log-fd 3 --append -- $cmd
+
+
+
EXAMPLES
--------
diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index bec64a9..a43c680 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -196,6 +196,7 @@ static bool csv_output = false;
static bool group = false;
static const char *output_name = NULL;
static FILE *output = NULL;
+static int output_fd;
static volatile int done = 0;
@@ -1080,6 +1081,8 @@ static const struct option options[] = {
OPT_STRING('o', "output", &output_name, "file",
"output file name"),
OPT_BOOLEAN(0, "append", &append_file, "append to the output file"),
+ OPT_INTEGER(0, "log-fd", &output_fd,
+ "log output to fd, instead of stderr"),
OPT_END()
};
@@ -1166,6 +1169,10 @@ int cmd_stat(int argc, const char **argv, const char *prefix __used)
if (output_name && strcmp(output_name, "-"))
output = NULL;
+ if (output_name && output_fd) {
+ fprintf(stderr, "cannot use both --output and --log-fd\n");
+ usage_with_options(stat_usage, options);
+ }
if (!output) {
struct timespec tm;
mode = append_file ? "a" : "w";
@@ -1177,6 +1184,13 @@ int cmd_stat(int argc, const char **argv, const char *prefix __used)
}
clock_gettime(CLOCK_REALTIME, &tm);
fprintf(output, "# started on %s\n", ctime(&tm.tv_sec));
+ } else if (output_fd != 2) {
+ mode = append_file ? "a" : "w";
+ output = fdopen(output_fd, mode);
+ if (!output) {
+ perror("Failed opening logfd");
+ return -errno;
+ }
}
if (csv_sep)
--
1.6.2.5
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PATCH] perf stat: Fix default logfd to use stderr
2011-09-29 22:48 ` [PATCH 07/16] perf stat: Add --log-fd <N> option to redirect stderr elsewhere Arnaldo Carvalho de Melo
@ 2012-06-18 14:51 ` Robert Richter
2012-06-19 2:13 ` Namhyung Kim
0 siblings, 1 reply; 63+ messages in thread
From: Robert Richter @ 2012-06-18 14:51 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: Ingo Molnar, linux-kernel, Jim Cromie, Arnaldo Carvalho de Melo, stable
On 29.09.11 18:48:01, Arnaldo Carvalho de Melo wrote:
> From: Jim Cromie <jim.cromie@gmail.com>
>
> This perf stat option emulates valgrind's --log-fd option, allowing the
> user to send perf results elsewhere, and leaving stderr for use by the
> program under test. This complements --output file option, and is
> mutually exclusive with it.
>
> 3>results perf stat --log-fd 3 -- $cmd
> 3>>results perf stat --log-fd 3 --append -- $cmd
>
> The perl distro's make test.valgrind target uses valgrind's --log-fd
> option, I've adapted it to invoke perf also, and tested this patch
> there.
>
> Link: http://lkml.kernel.org/r/1315437244-3788-2-git-send-email-jim.cromie@gmail.com
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> Signed-off-by: Jim Cromie <jim.cromie@gmail.com>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
With certain shell redirections this (56f3bae) fails with a log fd
setup failure. Fix below.
-Robert
>From fd83259163c8022f9264a119d5ef7df594702f3a Mon Sep 17 00:00:00 2001
From: Robert Richter <robert.richter@amd.com>
Date: Thu, 7 Jun 2012 17:41:52 +0200
Subject: [PATCH] perf stat: Fix default logfd to use stderr
When running perf-stat in certain shell environments with stdout
redirection there is a logging file descriptor setup failure:
Failed opening logfd: Invalid argument
Fixing this by setting the default fd to the correct value of 2.
Cc: Jim Cromie <jim.cromie@gmail.com>
Cc: <stable@vger.kernel.org> # 3.2+
Signed-off-by: Robert Richter <robert.richter@amd.com>
---
tools/perf/builtin-stat.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index 2625899..c47e7d3 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -195,7 +195,7 @@ static bool csv_output = false;
static bool group = false;
static const char *output_name = NULL;
static FILE *output = NULL;
-static int output_fd;
+static int output_fd = 2;
static volatile int done = 0;
--
1.7.8.4
--
Advanced Micro Devices, Inc.
Operating System Research Center
^ permalink raw reply related [flat|nested] 63+ messages in thread
* Re: [PATCH] perf stat: Fix default logfd to use stderr
2012-06-18 14:51 ` [PATCH] perf stat: Fix default logfd to use stderr Robert Richter
@ 2012-06-19 2:13 ` Namhyung Kim
2012-06-19 6:09 ` Stephane Eranian
0 siblings, 1 reply; 63+ messages in thread
From: Namhyung Kim @ 2012-06-19 2:13 UTC (permalink / raw)
To: Robert Richter
Cc: Arnaldo Carvalho de Melo, Ingo Molnar, linux-kernel, Jim Cromie,
Arnaldo Carvalho de Melo, stable, Stephane Eranian
Hi, Robert
On Mon, 18 Jun 2012 16:51:08 +0200, Robert Richter wrote:
> On 29.09.11 18:48:01, Arnaldo Carvalho de Melo wrote:
>> From: Jim Cromie <jim.cromie@gmail.com>
>>
>> This perf stat option emulates valgrind's --log-fd option, allowing the
>> user to send perf results elsewhere, and leaving stderr for use by the
>> program under test. This complements --output file option, and is
>> mutually exclusive with it.
>>
>> 3>results perf stat --log-fd 3 -- $cmd
>> 3>>results perf stat --log-fd 3 --append -- $cmd
>>
>> The perl distro's make test.valgrind target uses valgrind's --log-fd
>> option, I've adapted it to invoke perf also, and tested this patch
>> there.
>>
>> Link: http://lkml.kernel.org/r/1315437244-3788-2-git-send-email-jim.cromie@gmail.com
>> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>> Signed-off-by: Jim Cromie <jim.cromie@gmail.com>
>> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> With certain shell redirections this (56f3bae) fails with a log fd
> setup failure. Fix below.
>
It looks somewhat related to Stephane's patch. Can you we check it too?
http://lkml.indiana.edu/hypermail/linux/kernel/1205.1/04232.html
Thanks,
Namhyung
^ permalink raw reply [flat|nested] 63+ messages in thread
* Re: [PATCH] perf stat: Fix default logfd to use stderr
2012-06-19 2:13 ` Namhyung Kim
@ 2012-06-19 6:09 ` Stephane Eranian
2012-06-19 11:31 ` Robert Richter
2012-06-19 11:34 ` Arnaldo Carvalho de Melo
0 siblings, 2 replies; 63+ messages in thread
From: Stephane Eranian @ 2012-06-19 6:09 UTC (permalink / raw)
To: Namhyung Kim
Cc: Robert Richter, Arnaldo Carvalho de Melo, Ingo Molnar,
linux-kernel, Jim Cromie, Arnaldo Carvalho de Melo, stable
On Tue, Jun 19, 2012 at 4:13 AM, Namhyung Kim <namhyung@kernel.org> wrote:
> Hi, Robert
>
> On Mon, 18 Jun 2012 16:51:08 +0200, Robert Richter wrote:
>> On 29.09.11 18:48:01, Arnaldo Carvalho de Melo wrote:
>>> From: Jim Cromie <jim.cromie@gmail.com>
>>>
>>> This perf stat option emulates valgrind's --log-fd option, allowing the
>>> user to send perf results elsewhere, and leaving stderr for use by the
>>> program under test. This complements --output file option, and is
>>> mutually exclusive with it.
>>>
>>> 3>results perf stat --log-fd 3 -- $cmd
>>> 3>>results perf stat --log-fd 3 --append -- $cmd
>>>
>>> The perl distro's make test.valgrind target uses valgrind's --log-fd
>>> option, I've adapted it to invoke perf also, and tested this patch
>>> there.
>>>
>>> Link: http://lkml.kernel.org/r/1315437244-3788-2-git-send-email-jim.cromie@gmail.com
>>> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>>> Signed-off-by: Jim Cromie <jim.cromie@gmail.com>
>>> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>>
>> With certain shell redirections this (56f3bae) fails with a log fd
>> setup failure. Fix below.
>>
>
> It looks somewhat related to Stephane's patch. Can you we check it too?
>
> http://lkml.indiana.edu/hypermail/linux/kernel/1205.1/04232.html
>
Yes, my patch is needed and it was posted over a month ago now.....
Arnaldo, please apply my patch.
> Thanks,
> Namhyung
^ permalink raw reply [flat|nested] 63+ messages in thread
* Re: [PATCH] perf stat: Fix default logfd to use stderr
2012-06-19 6:09 ` Stephane Eranian
@ 2012-06-19 11:31 ` Robert Richter
2012-06-19 11:34 ` Arnaldo Carvalho de Melo
1 sibling, 0 replies; 63+ messages in thread
From: Robert Richter @ 2012-06-19 11:31 UTC (permalink / raw)
To: Stephane Eranian
Cc: Namhyung Kim, Arnaldo Carvalho de Melo, Ingo Molnar,
linux-kernel, Jim Cromie, Arnaldo Carvalho de Melo, stable
On 19.06.12 08:09:31, Stephane Eranian wrote:
> On Tue, Jun 19, 2012 at 4:13 AM, Namhyung Kim <namhyung@kernel.org> wrote:
> > Hi, Robert
> >
> > On Mon, 18 Jun 2012 16:51:08 +0200, Robert Richter wrote:
> >> On 29.09.11 18:48:01, Arnaldo Carvalho de Melo wrote:
> >>> From: Jim Cromie <jim.cromie@gmail.com>
> >>>
> >>> This perf stat option emulates valgrind's --log-fd option, allowing the
> >>> user to send perf results elsewhere, and leaving stderr for use by the
> >>> program under test. This complements --output file option, and is
> >>> mutually exclusive with it.
> >>>
> >>> 3>results perf stat --log-fd 3 -- $cmd
> >>> 3>>results perf stat --log-fd 3 --append -- $cmd
> >>>
> >>> The perl distro's make test.valgrind target uses valgrind's --log-fd
> >>> option, I've adapted it to invoke perf also, and tested this patch
> >>> there.
> >>>
> >>> Link: http://lkml.kernel.org/r/1315437244-3788-2-git-send-email-jim.cromie@gmail.com
> >>> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> >>> Signed-off-by: Jim Cromie <jim.cromie@gmail.com>
> >>> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> >>
> >> With certain shell redirections this (56f3bae) fails with a log fd
> >> setup failure. Fix below.
> >>
> >
> > It looks somewhat related to Stephane's patch. Can you we check it too?
> >
> > http://lkml.indiana.edu/hypermail/linux/kernel/1205.1/04232.html
I applied the patch to my tree and this works too. Both patches
basically avoid fdopen() if a log-fd option is not given.
After reviewing the code again I noticed my code breaks the -o option.
So Stephane's patch is fine for me too, except for the fact that
--log-fd 0 is ignored. Maybe we change this by initializing output_fd
with -1 and modify the checks of output_fd?
> Yes, my patch is needed and it was posted over a month ago now.....
> Arnaldo, please apply my patch.
It is in the pull request for Ingo.
-Robert
--
Advanced Micro Devices, Inc.
Operating System Research Center
^ permalink raw reply [flat|nested] 63+ messages in thread
* Re: [PATCH] perf stat: Fix default logfd to use stderr
2012-06-19 6:09 ` Stephane Eranian
2012-06-19 11:31 ` Robert Richter
@ 2012-06-19 11:34 ` Arnaldo Carvalho de Melo
2012-06-20 12:23 ` Stephane Eranian
1 sibling, 1 reply; 63+ messages in thread
From: Arnaldo Carvalho de Melo @ 2012-06-19 11:34 UTC (permalink / raw)
To: Stephane Eranian
Cc: Namhyung Kim, Robert Richter, Ingo Molnar, linux-kernel,
Jim Cromie, stable
Em Tue, Jun 19, 2012 at 08:09:31AM +0200, Stephane Eranian escreveu:
> On Tue, Jun 19, 2012 at 4:13 AM, Namhyung Kim <namhyung@kernel.org> wrote:
> > On Mon, 18 Jun 2012 16:51:08 +0200, Robert Richter wrote:
> >> With certain shell redirections this (56f3bae) fails with a log fd
> >> setup failure. Fix below.
> > It looks somewhat related to Stephane's patch. Can you we check it too?
> > http://lkml.indiana.edu/hypermail/linux/kernel/1205.1/04232.html
> Yes, my patch is needed and it was posted over a month ago now.....
> Arnaldo, please apply my patch.
It was applied a week ago, was merged already by Ingo, should go to
Linus soon:
http://git.kernel.org/?p=linux/kernel/git/tip/tip.git;a=commit;h=fc3e4d077d5c7a7bc1ad5bc143895b4e070e5a8b
- Arnaldo
^ permalink raw reply [flat|nested] 63+ messages in thread
* Re: [PATCH] perf stat: Fix default logfd to use stderr
2012-06-19 11:34 ` Arnaldo Carvalho de Melo
@ 2012-06-20 12:23 ` Stephane Eranian
0 siblings, 0 replies; 63+ messages in thread
From: Stephane Eranian @ 2012-06-20 12:23 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: Namhyung Kim, Robert Richter, Ingo Molnar, linux-kernel,
Jim Cromie, stable
Ok, I see it now.
thanks.
the only one left at this point is the pipe mode meta-data patch
to add header in pipe mode.
On Tue, Jun 19, 2012 at 1:34 PM, Arnaldo Carvalho de Melo
<acme@infradead.org> wrote:
> Em Tue, Jun 19, 2012 at 08:09:31AM +0200, Stephane Eranian escreveu:
>> On Tue, Jun 19, 2012 at 4:13 AM, Namhyung Kim <namhyung@kernel.org> wrote:
>> > On Mon, 18 Jun 2012 16:51:08 +0200, Robert Richter wrote:
>> >> With certain shell redirections this (56f3bae) fails with a log fd
>> >> setup failure. Fix below.
>
>> > It looks somewhat related to Stephane's patch. Can you we check it too?
>
>> > http://lkml.indiana.edu/hypermail/linux/kernel/1205.1/04232.html
>
>> Yes, my patch is needed and it was posted over a month ago now.....
>> Arnaldo, please apply my patch.
>
> It was applied a week ago, was merged already by Ingo, should go to
> Linus soon:
>
> http://git.kernel.org/?p=linux/kernel/git/tip/tip.git;a=commit;h=fc3e4d077d5c7a7bc1ad5bc143895b4e070e5a8b
>
> - Arnaldo
^ permalink raw reply [flat|nested] 63+ messages in thread
* [PATCH 08/16] perf stat: Fix +- nan% in --no-aggr runs
2011-09-29 22:47 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (6 preceding siblings ...)
2011-09-29 22:48 ` [PATCH 07/16] perf stat: Add --log-fd <N> option to redirect stderr elsewhere Arnaldo Carvalho de Melo
@ 2011-09-29 22:48 ` Arnaldo Carvalho de Melo
2011-09-29 22:48 ` [PATCH 09/16] perf stat: Suppress printing std-dev when its 0 Arnaldo Carvalho de Melo
` (8 subsequent siblings)
16 siblings, 0 replies; 63+ messages in thread
From: Arnaldo Carvalho de Melo @ 2011-09-29 22:48 UTC (permalink / raw)
To: Ingo Molnar; +Cc: linux-kernel, Jim Cromie, Arnaldo Carvalho de Melo
From: Jim Cromie <jim.cromie@gmail.com>
Without this patch, running:
$ sudo ./perf stat -r20 --no-aggr -a perl -e '$i++ for 1..100000'
I get computations like this:
CPU0 12.488247 task-clock # 1.224 CPUs utilized ( +- -nan% )
CPU1 12.488909 task-clock # 1.225 CPUs utilized ( +- -nan% )
CPU2 12.500221 task-clock # 1.226 CPUs utilized ( +- -nan% )
CPU3 12.481713 task-clock # 1.224 CPUs utilized ( +- -nan% )
but with patch, I get:
CPU0 8.233682 task-clock # 0.754 CPUs utilized ( +- 0.00% )
CPU1 8.226318 task-clock # 0.754 CPUs utilized ( +- 0.00% )
CPU2 8.210737 task-clock # 0.752 CPUs utilized ( +- 0.00% )
CPU3 8.201691 task-clock # 0.751 CPUs utilized ( +- 0.00% )
Note that without --no-aggr, I get non-0 statistics both before and after patch:
231.986022 task-clock # 4.030 CPUs utilized ( +- 0.97% )
212 context-switches # 0.001 M/sec ( +- 12.07% )
9 CPU-migrations # 0.000 M/sec ( +- 25.80% )
466 page-faults # 0.002 M/sec ( +- 3.23% )
174,318,593 cycles # 0.751 GHz ( +- 1.06% )
I couldnt see anything wrong in the caller, so fixed it in
stddev_stats(). ISTM that 0.00 is better than nan, since perf stat was
passed -A (--no-aggr) so no standard deviation should be expected, and
nan is suggestive of a deeper error.
When running with --no-aggr, perhaps we should suppress the statistics
printing entirely, or do so when they are 0.00.
Link: http://lkml.kernel.org/r/1315437244-3788-3-git-send-email-jim.cromie@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Jim Cromie <jim.cromie@gmail.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/builtin-stat.c | 9 +++++++--
1 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index a43c680..af0d65b 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -254,8 +254,13 @@ static double avg_stats(struct stats *stats)
*/
static double stddev_stats(struct stats *stats)
{
- double variance = stats->M2 / (stats->n - 1);
- double variance_mean = variance / stats->n;
+ double variance, variance_mean;
+
+ if (!stats->n)
+ return 0.0;
+
+ variance = stats->M2 / (stats->n - 1);
+ variance_mean = variance / stats->n;
return sqrt(variance_mean);
}
--
1.6.2.5
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PATCH 09/16] perf stat: Suppress printing std-dev when its 0
2011-09-29 22:47 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (7 preceding siblings ...)
2011-09-29 22:48 ` [PATCH 08/16] perf stat: Fix +- nan% in --no-aggr runs Arnaldo Carvalho de Melo
@ 2011-09-29 22:48 ` Arnaldo Carvalho de Melo
2011-09-29 22:48 ` [PATCH 10/16] perf stat: Allow tab as cvs delimiter Arnaldo Carvalho de Melo
` (7 subsequent siblings)
16 siblings, 0 replies; 63+ messages in thread
From: Arnaldo Carvalho de Melo @ 2011-09-29 22:48 UTC (permalink / raw)
To: Ingo Molnar; +Cc: linux-kernel, Jim Cromie, Arnaldo Carvalho de Melo
From: Jim Cromie <jim.cromie@gmail.com>
For pretty output only (preserve column for cvs output), dont print
std-deviation when its 0.00. Do this based upon value, instead of
checking for --no-aggr, since the stats could conceivably be computed
over the runs on each CPU, and theres no reason to preclude that.
Link: http://lkml.kernel.org/r/1315437244-3788-4-git-send-email-jim.cromie@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Jim Cromie <jim.cromie@gmail.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/builtin-stat.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index af0d65b..076eda5 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -528,7 +528,7 @@ static void print_noise_pct(double total, double avg)
if (csv_output)
fprintf(output, "%s%.2f%%", csv_sep, pct);
- else
+ else if (pct)
fprintf(output, " ( +-%6.2f%% )", pct);
}
--
1.6.2.5
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PATCH 10/16] perf stat: Allow tab as cvs delimiter
2011-09-29 22:47 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (8 preceding siblings ...)
2011-09-29 22:48 ` [PATCH 09/16] perf stat: Suppress printing std-dev when its 0 Arnaldo Carvalho de Melo
@ 2011-09-29 22:48 ` Arnaldo Carvalho de Melo
2011-10-09 20:58 ` Paul Bolle
2011-09-29 22:48 ` [PATCH 11/16] perf stat: Fix spelling in comment Arnaldo Carvalho de Melo
` (6 subsequent siblings)
16 siblings, 1 reply; 63+ messages in thread
From: Arnaldo Carvalho de Melo @ 2011-09-29 22:48 UTC (permalink / raw)
To: Ingo Molnar; +Cc: linux-kernel, Jim Cromie, Arnaldo Carvalho de Melo
From: Jim Cromie <jim.cromie@gmail.com>
If option -x '\t' is given, convert '\t' to "\t". This makes cvs
printing more flexible.
Link: http://lkml.kernel.org/r/1315437244-3788-5-git-send-email-jim.cromie@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Jim Cromie <jim.cromie@gmail.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/builtin-stat.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index 076eda5..0ffbd97 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -1198,9 +1198,11 @@ int cmd_stat(int argc, const char **argv, const char *prefix __used)
}
}
- if (csv_sep)
+ if (csv_sep) {
csv_output = true;
- else
+ if (!strcmp(csv_sep, "\\t"))
+ csv_sep = "\t";
+ } else
csv_sep = DEFAULT_SEPARATOR;
/*
--
1.6.2.5
^ permalink raw reply related [flat|nested] 63+ messages in thread
* Re: [PATCH 10/16] perf stat: Allow tab as cvs delimiter
2011-09-29 22:48 ` [PATCH 10/16] perf stat: Allow tab as cvs delimiter Arnaldo Carvalho de Melo
@ 2011-10-09 20:58 ` Paul Bolle
0 siblings, 0 replies; 63+ messages in thread
From: Paul Bolle @ 2011-10-09 20:58 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: Ingo Molnar, linux-kernel, Jim Cromie, Arnaldo Carvalho de Melo
On Thu, 2011-09-29 at 19:48 -0300, Arnaldo Carvalho de Melo wrote:
> From: Jim Cromie <jim.cromie@gmail.com>
>
> If option -x '\t' is given, convert '\t' to "\t". This makes cvs
> printing more flexible.
I found this message when I searched my mail for occurences of 'cvs'. Is
it still possible to change 'cvs' to 'csv' in the commit summary and
message? That would keep the result for grepping of either term (in
commit summaries or messages) correct.
Paul Bolle
^ permalink raw reply [flat|nested] 63+ messages in thread
* [PATCH 11/16] perf stat: Fix spelling in comment
2011-09-29 22:47 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (9 preceding siblings ...)
2011-09-29 22:48 ` [PATCH 10/16] perf stat: Allow tab as cvs delimiter Arnaldo Carvalho de Melo
@ 2011-09-29 22:48 ` Arnaldo Carvalho de Melo
2011-09-29 22:48 ` [PATCH 12/16] perf tools: Make stat/record print fatal signals of the target program Arnaldo Carvalho de Melo
` (5 subsequent siblings)
16 siblings, 0 replies; 63+ messages in thread
From: Arnaldo Carvalho de Melo @ 2011-09-29 22:48 UTC (permalink / raw)
To: Ingo Molnar; +Cc: linux-kernel, Jim Cromie, Arnaldo Carvalho de Melo
From: Jim Cromie <jim.cromie@gmail.com>
Link: http://lkml.kernel.org/r/1315437244-3788-6-git-send-email-jim.cromie@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Jim Cromie <jim.cromie@gmail.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/builtin-stat.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index 0ffbd97..b567319 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -1209,7 +1209,7 @@ int cmd_stat(int argc, const char **argv, const char *prefix __used)
* let the spreadsheet do the pretty-printing
*/
if (csv_output) {
- /* User explicitely passed -B? */
+ /* User explicitly passed -B? */
if (big_num_opt == 1) {
fprintf(stderr, "-B option not supported with -x\n");
usage_with_options(stat_usage, options);
--
1.6.2.5
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PATCH 12/16] perf tools: Make stat/record print fatal signals of the target program
2011-09-29 22:47 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (10 preceding siblings ...)
2011-09-29 22:48 ` [PATCH 11/16] perf stat: Fix spelling in comment Arnaldo Carvalho de Melo
@ 2011-09-29 22:48 ` Arnaldo Carvalho de Melo
2011-09-29 22:48 ` [PATCH 13/16] perf: Support setting the disassembler style Arnaldo Carvalho de Melo
` (4 subsequent siblings)
16 siblings, 0 replies; 63+ messages in thread
From: Arnaldo Carvalho de Melo @ 2011-09-29 22:48 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Andi Kleen, Frederic Weisbecker, Stephane Eranian,
Arnaldo Carvalho de Melo
From: Andi Kleen <ak@linux.intel.com>
When a program crashes under perf there is no message about it, unlike
when running it from bash. This can be confusing and lead to wrong
actions during debugging.
Print fatal signals in perf stat/record.
Thanks to Furat Afram for finding the problem originally
Link: http://lkml.kernel.org/r/1316122302-24306-1-git-send-email-andi@firstfloor.org
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Stephane Eranian <eranian@google.com>
Signed-off-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/builtin-record.c | 19 +++++++++++++++++--
tools/perf/builtin-stat.c | 2 ++
2 files changed, 19 insertions(+), 2 deletions(-)
diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
index 6b0519f..042117f 100644
--- a/tools/perf/builtin-record.c
+++ b/tools/perf/builtin-record.c
@@ -73,6 +73,7 @@ static off_t post_processing_offset;
static struct perf_session *session;
static const char *cpu_list;
+static const char *progname;
static void advance_output(size_t size)
{
@@ -137,17 +138,29 @@ static void mmap_read(struct perf_mmap *md)
static volatile int done = 0;
static volatile int signr = -1;
+static volatile int child_finished = 0;
static void sig_handler(int sig)
{
+ if (sig == SIGCHLD)
+ child_finished = 1;
+
done = 1;
signr = sig;
}
static void sig_atexit(void)
{
- if (child_pid > 0)
- kill(child_pid, SIGTERM);
+ int status;
+
+ if (child_pid > 0) {
+ if (!child_finished)
+ kill(child_pid, SIGTERM);
+
+ wait(&status);
+ if (WIFSIGNALED(status))
+ psignal(WTERMSIG(status), progname);
+ }
if (signr == -1 || signr == SIGUSR1)
return;
@@ -445,6 +458,8 @@ static int __cmd_record(int argc, const char **argv)
char buf;
struct machine *machine;
+ progname = argv[0];
+
page_size = sysconf(_SC_PAGE_SIZE);
atexit(sig_atexit);
diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index b567319..7ce65f5 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -495,6 +495,8 @@ static int run_perf_stat(int argc __used, const char **argv)
if (forks) {
close(go_pipe[1]);
wait(&status);
+ if (WIFSIGNALED(status))
+ psignal(WTERMSIG(status), argv[0]);
} else {
while(!done) sleep(1);
}
--
1.6.2.5
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PATCH 13/16] perf: Support setting the disassembler style
2011-09-29 22:47 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (11 preceding siblings ...)
2011-09-29 22:48 ` [PATCH 12/16] perf tools: Make stat/record print fatal signals of the target program Arnaldo Carvalho de Melo
@ 2011-09-29 22:48 ` Arnaldo Carvalho de Melo
2011-09-29 22:48 ` [PATCH 14/16] perf report: Fix stdio event name header printing Arnaldo Carvalho de Melo
` (3 subsequent siblings)
16 siblings, 0 replies; 63+ messages in thread
From: Arnaldo Carvalho de Melo @ 2011-09-29 22:48 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Andi Kleen, Frederic Weisbecker, Stephane Eranian,
Arnaldo Carvalho de Melo
From: Andi Kleen <ak@linux.intel.com>
Add -M option to report/annotate to pass directly to objdump. This
allows to use -M intel for intel style disassembler syntax, which is
useful for people who are very used to the Intel syntax.
Link: http://lkml.kernel.org/r/1316122302-24306-2-git-send-email-andi@firstfloor.org
[committer note: Add missing Documentation bits, fixup conflicts with 3e6a2a7]
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Stephane Eranian <eranian@google.com>
Signed-off-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/Documentation/perf-annotate.txt | 3 +++
tools/perf/Documentation/perf-report.txt | 3 +++
tools/perf/builtin-annotate.c | 2 ++
tools/perf/builtin-report.c | 2 ++
tools/perf/util/annotate.c | 6 +++++-
tools/perf/util/annotate.h | 2 ++
6 files changed, 17 insertions(+), 1 deletions(-)
diff --git a/tools/perf/Documentation/perf-annotate.txt b/tools/perf/Documentation/perf-annotate.txt
index 98a31e3..0102d83 100644
--- a/tools/perf/Documentation/perf-annotate.txt
+++ b/tools/perf/Documentation/perf-annotate.txt
@@ -83,6 +83,9 @@ OPTIONS
--symfs=<directory>::
Look for files with symbols relative to this directory.
+-M::
+--disassembler-style=:: Set disassembler style for objdump.
+
SEE ALSO
--------
linkperf:perf-record[1], linkperf:perf-report[1]
diff --git a/tools/perf/Documentation/perf-report.txt b/tools/perf/Documentation/perf-report.txt
index 04253c0..6349b6c 100644
--- a/tools/perf/Documentation/perf-report.txt
+++ b/tools/perf/Documentation/perf-report.txt
@@ -134,6 +134,9 @@ OPTIONS
CPUs are specified with -: 0-2. Default is to report samples on all
CPUs.
+-M::
+--disassembler-style=:: Set disassembler style for objdump.
+
SEE ALSO
--------
linkperf:perf-stat[1]
diff --git a/tools/perf/builtin-annotate.c b/tools/perf/builtin-annotate.c
index c5be288..cf68819 100644
--- a/tools/perf/builtin-annotate.c
+++ b/tools/perf/builtin-annotate.c
@@ -273,6 +273,8 @@ static const struct option options[] = {
"Interleave source code with assembly code (default)"),
OPT_BOOLEAN('0', "asm-raw", &symbol_conf.annotate_asm_raw,
"Display raw encoding of assembly instructions (default)"),
+ OPT_STRING('M', "disassembler-style", &disassembler_style, "disassembler style",
+ "Specify disassembler style (e.g. -M intel for intel syntax)"),
OPT_END()
};
diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
index d7ff277..a0673ee 100644
--- a/tools/perf/builtin-report.c
+++ b/tools/perf/builtin-report.c
@@ -487,6 +487,8 @@ static const struct option options[] = {
OPT_STRING(0, "symfs", &symbol_conf.symfs, "directory",
"Look for files with symbols relative to this directory"),
OPT_STRING('c', "cpu", &cpu_list, "cpu", "list of cpus to profile"),
+ OPT_STRING('M', "disassembler-style", &disassembler_style, "disassembler style",
+ "Specify disassembler style (e.g. -M intel for intel syntax)"),
OPT_END()
};
diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c
index 01d36ba..bc8f477 100644
--- a/tools/perf/util/annotate.c
+++ b/tools/perf/util/annotate.c
@@ -16,6 +16,8 @@
#include "annotate.h"
#include <pthread.h>
+const char *disassembler_style;
+
int symbol__annotate_init(struct map *map __used, struct symbol *sym)
{
struct annotation *notes = symbol__annotation(sym);
@@ -323,9 +325,11 @@ fallback:
dso, dso->long_name, sym, sym->name);
snprintf(command, sizeof(command),
- "objdump --start-address=0x%016" PRIx64
+ "objdump %s%s --start-address=0x%016" PRIx64
" --stop-address=0x%016" PRIx64
" -d %s %s -C %s|grep -v %s|expand",
+ disassembler_style ? "-M " : "",
+ disassembler_style ? disassembler_style : "",
map__rip_2objdump(map, sym->start),
map__rip_2objdump(map, sym->end),
symbol_conf.annotate_asm_raw ? "" : "--no-show-raw",
diff --git a/tools/perf/util/annotate.h b/tools/perf/util/annotate.h
index c2c2868..6ede128 100644
--- a/tools/perf/util/annotate.h
+++ b/tools/perf/util/annotate.h
@@ -100,4 +100,6 @@ int symbol__tui_annotate(struct symbol *sym, struct map *map, int evidx,
int refresh);
#endif
+extern const char *disassembler_style;
+
#endif /* __PERF_ANNOTATE_H */
--
1.6.2.5
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PATCH 14/16] perf report: Fix stdio event name header printing
2011-09-29 22:47 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (12 preceding siblings ...)
2011-09-29 22:48 ` [PATCH 13/16] perf: Support setting the disassembler style Arnaldo Carvalho de Melo
@ 2011-09-29 22:48 ` Arnaldo Carvalho de Melo
2011-09-29 22:48 ` [PATCH 15/16] perf sched: Fix script command documentation Arnaldo Carvalho de Melo
` (2 subsequent siblings)
16 siblings, 0 replies; 63+ messages in thread
From: Arnaldo Carvalho de Melo @ 2011-09-29 22:48 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, David Ahern,
Frederic Weisbecker, Mike Galbraith, Paul Mackerras,
Peter Zijlstra, Stephane Eranian
From: Arnaldo Carvalho de Melo <acme@redhat.com>
In the past we tried to avoid printing the name of the event when just
one event was found in the perf.data file, after some refactorings it
ended up not printing the event name if just one hist_entry was found in
one of the events.
Fix it by always printing the name of the event, even if just one is
found.
Reported-by: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/n/tip-kikr0c7ou55bd9caok8569rf@git.kernel.org
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/builtin-report.c | 5 +----
1 files changed, 1 insertions(+), 4 deletions(-)
diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
index a0673ee..3d58334 100644
--- a/tools/perf/builtin-report.c
+++ b/tools/perf/builtin-report.c
@@ -229,10 +229,7 @@ static int perf_evlist__tty_browse_hists(struct perf_evlist *evlist,
list_for_each_entry(pos, &evlist->entries, node) {
struct hists *hists = &pos->hists;
- const char *evname = NULL;
-
- if (rb_first(&hists->entries) != rb_last(&hists->entries))
- evname = event_name(pos);
+ const char *evname = event_name(pos);
hists__fprintf_nr_sample_events(hists, evname, stdout);
hists__fprintf(hists, NULL, false, stdout);
--
1.6.2.5
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PATCH 15/16] perf sched: Fix script command documentation
2011-09-29 22:47 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (13 preceding siblings ...)
2011-09-29 22:48 ` [PATCH 14/16] perf report: Fix stdio event name header printing Arnaldo Carvalho de Melo
@ 2011-09-29 22:48 ` Arnaldo Carvalho de Melo
2011-09-29 22:48 ` [PATCH 16/16] perf symbols: Treat all memory maps without dso file as loaded Arnaldo Carvalho de Melo
2011-10-04 7:57 ` [GIT PULL 00/16] perf/core improvements and fixes Ingo Molnar
16 siblings, 0 replies; 63+ messages in thread
From: Arnaldo Carvalho de Melo @ 2011-09-29 22:48 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Jiri Olsa, Ingo Molnar, Paul Mackerras,
Peter Zijlstra, Arnaldo Carvalho de Melo
From: Jiri Olsa <jolsa@redhat.com>
Fixed leftover from trace -> script rename.
Link: http://lkml.kernel.org/r/1317114995-4534-1-git-send-email-jolsa@redhat.com
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Jiri Olsa <jolsa@redhat.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/Documentation/perf-sched.txt | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/tools/perf/Documentation/perf-sched.txt b/tools/perf/Documentation/perf-sched.txt
index 46822d5..5b212b5 100644
--- a/tools/perf/Documentation/perf-sched.txt
+++ b/tools/perf/Documentation/perf-sched.txt
@@ -8,7 +8,7 @@ perf-sched - Tool to trace/measure scheduler properties (latencies)
SYNOPSIS
--------
[verse]
-'perf sched' {record|latency|map|replay|trace}
+'perf sched' {record|latency|map|replay|script}
DESCRIPTION
-----------
@@ -20,8 +20,8 @@ There are five variants of perf sched:
'perf sched latency' to report the per task scheduling latencies
and other scheduling properties of the workload.
- 'perf sched trace' to see a detailed trace of the workload that
- was recorded.
+ 'perf sched script' to see a detailed trace of the workload that
+ was recorded (aliased to 'perf script' for now).
'perf sched replay' to simulate the workload that was recorded
via perf sched record. (this is done by starting up mockup threads
--
1.6.2.5
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PATCH 16/16] perf symbols: Treat all memory maps without dso file as loaded
2011-09-29 22:47 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (14 preceding siblings ...)
2011-09-29 22:48 ` [PATCH 15/16] perf sched: Fix script command documentation Arnaldo Carvalho de Melo
@ 2011-09-29 22:48 ` Arnaldo Carvalho de Melo
2011-10-04 7:57 ` [GIT PULL 00/16] perf/core improvements and fixes Ingo Molnar
16 siblings, 0 replies; 63+ messages in thread
From: Arnaldo Carvalho de Melo @ 2011-09-29 22:48 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Jiri Olsa, Ingo Molnar, Paul Mackerras,
Peter Zijlstra, Arnaldo Carvalho de Melo
From: Jiri Olsa <jolsa@redhat.com>
The stack/vdso/heap memory maps dont have any dso file. Setting the
perf dso objects as 'loaded' for these maps, we avoid unnecessary
warnings like:
"Failed to open [stack], continuing without symbols"
All map__find_* functions still return NULL when searching for symbols
in these maps.
Link: http://lkml.kernel.org/r/20110824131834.GA2007@jolsa.brq.redhat.com
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Jiri Olsa <jolsa@redhat.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/map.c | 24 ++++++++++++++++++------
1 files changed, 18 insertions(+), 6 deletions(-)
diff --git a/tools/perf/util/map.c b/tools/perf/util/map.c
index aa2f9fd..9cf0d43 100644
--- a/tools/perf/util/map.c
+++ b/tools/perf/util/map.c
@@ -18,6 +18,13 @@ static inline int is_anon_memory(const char *filename)
return strcmp(filename, "//anon") == 0;
}
+static inline int is_no_dso_memory(const char *filename)
+{
+ return !strcmp(filename, "[stack]") ||
+ !strcmp(filename, "[vdso]") ||
+ !strcmp(filename, "[heap]");
+}
+
void map__init(struct map *self, enum map_type type,
u64 start, u64 end, u64 pgoff, struct dso *dso)
{
@@ -42,9 +49,10 @@ struct map *map__new(struct list_head *dsos__list, u64 start, u64 len,
if (self != NULL) {
char newfilename[PATH_MAX];
struct dso *dso;
- int anon;
+ int anon, no_dso;
anon = is_anon_memory(filename);
+ no_dso = is_no_dso_memory(filename);
if (anon) {
snprintf(newfilename, sizeof(newfilename), "/tmp/perf-%d.map", pid);
@@ -57,12 +65,16 @@ struct map *map__new(struct list_head *dsos__list, u64 start, u64 len,
map__init(self, type, start, start + len, pgoff, dso);
- if (anon) {
-set_identity:
+ if (anon || no_dso) {
self->map_ip = self->unmap_ip = identity__map_ip;
- } else if (strcmp(filename, "[vdso]") == 0) {
- dso__set_loaded(dso, self->type);
- goto set_identity;
+
+ /*
+ * Set memory without DSO as loaded. All map__find_*
+ * functions still return NULL, and we avoid the
+ * unnecessary map__load warning.
+ */
+ if (no_dso)
+ dso__set_loaded(dso, self->type);
}
}
return self;
--
1.6.2.5
^ permalink raw reply related [flat|nested] 63+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes
2011-09-29 22:47 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (15 preceding siblings ...)
2011-09-29 22:48 ` [PATCH 16/16] perf symbols: Treat all memory maps without dso file as loaded Arnaldo Carvalho de Melo
@ 2011-10-04 7:57 ` Ingo Molnar
16 siblings, 0 replies; 63+ 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] 63+ 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; 63+ 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] 63+ 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; 63+ 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] 63+ 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; 63+ 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] 63+ 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; 63+ 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] 63+ 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; 63+ 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] 63+ 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; 63+ 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] 63+ 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; 63+ 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] 63+ 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; 63+ 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] 63+ 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; 63+ 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] 63+ 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; 63+ 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] 63+ 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; 63+ 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] 63+ 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; 63+ 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] 63+ 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; 63+ 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] 63+ 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; 63+ 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] 63+ 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; 63+ 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] 63+ 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; 63+ 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] 63+ 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; 63+ 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] 63+ 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; 63+ 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] 63+ 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; 63+ 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] 63+ 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; 63+ 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] 63+ 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; 63+ 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] 63+ 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; 63+ 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] 63+ 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; 63+ 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] 63+ 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; 63+ 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] 63+ 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; 63+ 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] 63+ 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; 63+ 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] 63+ 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; 63+ 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] 63+ messages in thread
* [GIT PULL 00/16] perf/core improvements and fixes
@ 2015-09-30 21:54 Arnaldo Carvalho de Melo
2015-10-01 7:05 ` Ingo Molnar
0 siblings, 1 reply; 63+ 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] 63+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes
2015-09-30 21:54 Arnaldo Carvalho de Melo
@ 2015-10-01 7:05 ` Ingo Molnar
0 siblings, 0 replies; 63+ 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] 63+ 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; 63+ 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] 63+ 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; 63+ 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] 63+ 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; 63+ 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] 63+ messages in thread
* [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
0 siblings, 1 reply; 63+ 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] 63+ 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
0 siblings, 0 replies; 63+ 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] 63+ 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; 63+ 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] 63+ 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; 63+ 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] 63+ 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; 63+ 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] 63+ 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; 63+ 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] 63+ messages in thread
end of thread, other threads:[~2019-01-08 15:32 UTC | newest]
Thread overview: 63+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-09-29 22:47 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo
2011-09-29 22:47 ` [PATCH 01/16] perf symbols: Stop using 'self' in map_groups__ methods Arnaldo Carvalho de Melo
2011-09-29 22:47 ` [PATCH 02/16] perf script: Add drop monitor script Arnaldo Carvalho de Melo
2011-09-29 22:47 ` [PATCH 03/16] perf buildid-list: Add option to show the running kernel build id Arnaldo Carvalho de Melo
2011-09-29 22:47 ` [PATCH 04/16] perf buildid-list: Support showing the build id in an ELF file Arnaldo Carvalho de Melo
2011-09-29 22:47 ` [PATCH 05/16] perf top browser: Fix up line width calculation Arnaldo Carvalho de Melo
2011-09-29 22:48 ` [PATCH 06/16] perf top: Improve lost events warning Arnaldo Carvalho de Melo
2011-09-29 22:48 ` [PATCH 07/16] perf stat: Add --log-fd <N> option to redirect stderr elsewhere Arnaldo Carvalho de Melo
2012-06-18 14:51 ` [PATCH] perf stat: Fix default logfd to use stderr Robert Richter
2012-06-19 2:13 ` Namhyung Kim
2012-06-19 6:09 ` Stephane Eranian
2012-06-19 11:31 ` Robert Richter
2012-06-19 11:34 ` Arnaldo Carvalho de Melo
2012-06-20 12:23 ` Stephane Eranian
2011-09-29 22:48 ` [PATCH 08/16] perf stat: Fix +- nan% in --no-aggr runs Arnaldo Carvalho de Melo
2011-09-29 22:48 ` [PATCH 09/16] perf stat: Suppress printing std-dev when its 0 Arnaldo Carvalho de Melo
2011-09-29 22:48 ` [PATCH 10/16] perf stat: Allow tab as cvs delimiter Arnaldo Carvalho de Melo
2011-10-09 20:58 ` Paul Bolle
2011-09-29 22:48 ` [PATCH 11/16] perf stat: Fix spelling in comment Arnaldo Carvalho de Melo
2011-09-29 22:48 ` [PATCH 12/16] perf tools: Make stat/record print fatal signals of the target program Arnaldo Carvalho de Melo
2011-09-29 22:48 ` [PATCH 13/16] perf: Support setting the disassembler style Arnaldo Carvalho de Melo
2011-09-29 22:48 ` [PATCH 14/16] perf report: Fix stdio event name header printing Arnaldo Carvalho de Melo
2011-09-29 22:48 ` [PATCH 15/16] perf sched: Fix script command documentation Arnaldo Carvalho de Melo
2011-09-29 22:48 ` [PATCH 16/16] perf symbols: Treat all memory maps without dso file as loaded Arnaldo Carvalho de Melo
2011-10-04 7:57 ` [GIT PULL 00/16] perf/core improvements and fixes 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
2013-10-23 20:57 Arnaldo Carvalho de Melo
2013-10-24 6:52 ` Ingo Molnar
2013-11-18 20:27 Arnaldo Carvalho de Melo
2014-03-14 21:29 Arnaldo Carvalho de Melo
2014-03-18 8:24 ` 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-11-19 16:03 Arnaldo Carvalho de Melo
2014-11-20 7:33 ` Ingo Molnar
2015-04-07 16:40 Arnaldo Carvalho de Melo
2015-08-25 16:14 Arnaldo Carvalho de Melo
2015-08-26 13:39 ` Arnaldo Carvalho de Melo
2015-09-30 21:54 Arnaldo Carvalho de Melo
2015-10-01 7:05 ` Ingo Molnar
2015-10-05 21:03 Arnaldo Carvalho de Melo
2015-10-06 7:09 ` Ingo Molnar
2015-12-14 17:44 Arnaldo Carvalho de Melo
2016-01-29 21:17 Arnaldo Carvalho de Melo
2016-02-03 10:02 ` Ingo Molnar
2016-07-05 0:38 Arnaldo Carvalho de Melo
2016-07-05 10:14 ` Ingo Molnar
2019-01-04 18:33 Arnaldo Carvalho de Melo
2019-01-08 15:32 ` Ingo Molnar
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).