* [GIT PULL 00/10] perf/cover improvements and fixes
@ 2015-10-02 20:25 Arnaldo Carvalho de Melo
2015-10-02 20:25 ` [PATCH 01/10] perf record: Allocate area for sample_id_hdr in a synthesized comm event Arnaldo Carvalho de Melo
` (10 more replies)
0 siblings, 11 replies; 12+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-10-02 20:25 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Andi Kleen, Borislav Petkov, David Ahern, Frederic Weisbecker,
Jiri Olsa, Kan Liang, linaro-kernel, Masami Hiramatsu,
Namhyung Kim, Peter Zijlstra, Stephane Eranian, Wang Nan,
Yang Shi, Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling,
- Arnaldo
The following changes since commit c2365b9388e8ec19305e3f449c1826e7493d156d:
perf/x86/intel/uncore: Do not use macro DEFINE_PCI_DEVICE_TABLE() (2015-10-01 10:53:03 +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 19afd10410957b1c808c2c49a88e6dd8b23aa894:
perf stat: Reduce min --interval-print to 10ms (2015-10-02 17:07:55 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
User visible:
- Do event name substring search as last resort in 'perf list'.
(Arnaldo Carvalho de Melo)
E.g.:
# perf list clock
List of pre-defined events (to be used in -e):
cpu-clock [Software event]
task-clock [Software event]
uncore_cbox_0/clockticks/ [Kernel PMU event]
uncore_cbox_1/clockticks/ [Kernel PMU event]
kvm:kvm_pvclock_update [Tracepoint event]
kvm:kvm_update_master_clock [Tracepoint event]
power:clock_disable [Tracepoint event]
power:clock_enable [Tracepoint event]
power:clock_set_rate [Tracepoint event]
syscalls:sys_enter_clock_adjtime [Tracepoint event]
syscalls:sys_enter_clock_getres [Tracepoint event]
syscalls:sys_enter_clock_gettime [Tracepoint event]
syscalls:sys_enter_clock_nanosleep [Tracepoint event]
syscalls:sys_enter_clock_settime [Tracepoint event]
syscalls:sys_exit_clock_adjtime [Tracepoint event]
syscalls:sys_exit_clock_getres [Tracepoint event]
syscalls:sys_exit_clock_gettime [Tracepoint event]
syscalls:sys_exit_clock_nanosleep [Tracepoint event]
syscalls:sys_exit_clock_settime [Tracepoint event]
- Reduce min 'perf stat --interval-print/-I' to 10ms (Kan Liang)
perf stat --interval in action:
# perf stat -e cycles -I 50 -a usleep $((200 * 1000))
print interval < 100ms. The overhead percentage could be high in some cases. Please proceed with caution.
# time counts unit events
0.050233636 48,240,396 cycles
0.100557098 35,492,594 cycles
0.150804687 39,295,112 cycles
0.201032269 33,101,961 cycles
0.201980732 786,379 cycles
#
- Allow for max_stack greater than PERF_MAX_STACK_DEPTH, as when
synthesizing callchains from Intel PT data (Adrian Hunter)
- Allow probing on kmodules without DWARF (Masami Hiramatsu)
- Fix a segfault when processing a perf.data file with callchains using
"perf report --call-graph none" (Namhyung Kim)
- Fix unresolved COMMs in 'perf top' when -s comm is used (Namhyung Kim)
- Register idle thread in 'perf top' (Namhyung Kim)
- Change 'record.samples' type to unsigned long long, fixing output of
number of samples in 32-bit architectures (Yang Shi)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Adrian Hunter (1):
perf callchain: Allow for max_stack greater than PERF_MAX_STACK_DEPTH
Arnaldo Carvalho de Melo (2):
perf list: Do event name substring search as last resort when no events found
perf list: Honour 'event_glob' whem printing selectable PMUs
Kan Liang (1):
perf stat: Reduce min --interval-print to 10ms
Masami Hiramatsu (1):
perf probe: Allow probing on kmodules without dwarf
Namhyung Kim (4):
perf record: Allocate area for sample_id_hdr in a synthesized comm event
perf top: Fix unresolved comm when -s comm is used
perf top: Register idle thread
perf report: Fix a bug on "--call-graph none" option
Yang Shi (1):
perf record: Change 'record.samples' type to unsigned long long
tools/perf/Documentation/perf-list.txt | 2 ++
tools/perf/Documentation/perf-stat.txt | 5 +++--
tools/perf/builtin-list.c | 18 ++++++++++++++++--
tools/perf/builtin-probe.c | 8 +++-----
tools/perf/builtin-record.c | 16 ++++++++++++----
tools/perf/builtin-stat.c | 13 +++++++++----
tools/perf/builtin-top.c | 10 ++++++++--
tools/perf/util/hist.c | 2 +-
tools/perf/util/machine.c | 2 +-
tools/perf/util/pmu.c | 3 ++-
tools/perf/util/probe-event.c | 8 +++++---
tools/perf/util/session.c | 2 +-
tools/perf/util/session.h | 2 ++
13 files changed, 65 insertions(+), 26 deletions(-)
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 01/10] perf record: Allocate area for sample_id_hdr in a synthesized comm event
2015-10-02 20:25 [GIT PULL 00/10] perf/cover improvements and fixes Arnaldo Carvalho de Melo
@ 2015-10-02 20:25 ` Arnaldo Carvalho de Melo
2015-10-02 20:25 ` [PATCH 02/10] perf top: Fix unresolved comm when -s comm is used Arnaldo Carvalho de Melo
` (9 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-10-02 20:25 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Namhyung Kim, David Ahern, Jiri Olsa,
Peter Zijlstra, Arnaldo Carvalho de Melo
From: Namhyung Kim <namhyung@kernel.org>
A previous patch added a synthesized comm event for forked child process
but it missed that the event should contain area for sample_id_hdr at
the end. It worked by accident since the perf_event union contains
bigger event structs like mmap_events.
This patch fixes it by dynamically allocating event struct including
those area like in perf_event__synthesize_thread_map().
Reported-by: Arnaldo Carvalho de Melo <acme@kernel.org>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1443577526-3240-1-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/builtin-record.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
index a01c8ae1ee07..5e01c070dbf2 100644
--- a/tools/perf/builtin-record.c
+++ b/tools/perf/builtin-record.c
@@ -637,17 +637,25 @@ static int __cmd_record(struct record *rec, int argc, const char **argv)
* Let the child rip
*/
if (forks) {
- union perf_event event;
+ union perf_event *event;
+
+ event = malloc(sizeof(event->comm) + machine->id_hdr_size);
+ if (event == NULL) {
+ err = -ENOMEM;
+ goto out_child;
+ }
+
/*
* Some H/W events are generated before COMM event
* which is emitted during exec(), so perf script
* cannot see a correct process name for those events.
* Synthesize COMM event to prevent it.
*/
- perf_event__synthesize_comm(tool, &event,
+ perf_event__synthesize_comm(tool, event,
rec->evlist->workload.pid,
process_synthesized_event,
machine);
+ free(event);
perf_evlist__start_workload(rec->evlist);
}
--
2.1.0
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 02/10] perf top: Fix unresolved comm when -s comm is used
2015-10-02 20:25 [GIT PULL 00/10] perf/cover improvements and fixes Arnaldo Carvalho de Melo
2015-10-02 20:25 ` [PATCH 01/10] perf record: Allocate area for sample_id_hdr in a synthesized comm event Arnaldo Carvalho de Melo
@ 2015-10-02 20:25 ` Arnaldo Carvalho de Melo
2015-10-02 20:25 ` [PATCH 03/10] perf top: Register idle thread Arnaldo Carvalho de Melo
` (8 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-10-02 20:25 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Namhyung Kim, David Ahern, Jiri Olsa,
Peter Zijlstra, Arnaldo Carvalho de Melo
From: Namhyung Kim <namhyung@kernel.org>
The perf top uses 'dso,symbol' sort keys by default so it overlooked a
problem in task's comm resolving. When the sort key contains 'comm',
some task's comm is not shown properly. This is because the
perf_top__mmap_read_idx() checks the cpumode value improperly.
The cpumode value of non-sample events are 0 (PERF_RECORD_MISC_CPUMODE_
UNKNOWN) so the events will be ignored by the switch statement. This patch
allows it for non-sample events.
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1443577526-3240-2-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/builtin-top.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c
index 38d4d6cac823..ae4c6420300b 100644
--- a/tools/perf/builtin-top.c
+++ b/tools/perf/builtin-top.c
@@ -857,9 +857,12 @@ static void perf_top__mmap_read_idx(struct perf_top *top, int idx)
* TODO: we don't process guest user from host side
* except simple counting.
*/
- /* Fall thru */
- default:
goto next_event;
+ default:
+ if (event->header.type == PERF_RECORD_SAMPLE)
+ goto next_event;
+ machine = &session->machines.host;
+ break;
}
--
2.1.0
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 03/10] perf top: Register idle thread
2015-10-02 20:25 [GIT PULL 00/10] perf/cover improvements and fixes Arnaldo Carvalho de Melo
2015-10-02 20:25 ` [PATCH 01/10] perf record: Allocate area for sample_id_hdr in a synthesized comm event Arnaldo Carvalho de Melo
2015-10-02 20:25 ` [PATCH 02/10] perf top: Fix unresolved comm when -s comm is used Arnaldo Carvalho de Melo
@ 2015-10-02 20:25 ` Arnaldo Carvalho de Melo
2015-10-02 20:25 ` [PATCH 04/10] perf report: Fix a bug on "--call-graph none" option Arnaldo Carvalho de Melo
` (7 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-10-02 20:25 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Namhyung Kim, David Ahern, Jiri Olsa,
Peter Zijlstra, Arnaldo Carvalho de Melo
From: Namhyung Kim <namhyung@kernel.org>
The perf top didn't add the idle/swapper thread to the machine's thread
list and its comm was displayed as ':0'. Fix it.
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1443577526-3240-3-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/builtin-top.c | 3 +++
tools/perf/util/session.c | 2 +-
tools/perf/util/session.h | 2 ++
3 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c
index ae4c6420300b..6f641fd68296 100644
--- a/tools/perf/builtin-top.c
+++ b/tools/perf/builtin-top.c
@@ -964,6 +964,9 @@ static int __cmd_top(struct perf_top *top)
if (ret)
goto out_delete;
+ if (perf_session__register_idle_thread(top->session) == NULL)
+ goto out_delete;
+
machine__synthesize_threads(&top->session->machines.host, &opts->target,
top->evlist->threads, false, opts->proc_map_timeout);
diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
index 84a02eae4394..428149bc64d2 100644
--- a/tools/perf/util/session.c
+++ b/tools/perf/util/session.c
@@ -1311,7 +1311,7 @@ struct thread *perf_session__findnew(struct perf_session *session, pid_t pid)
return machine__findnew_thread(&session->machines.host, -1, pid);
}
-static struct thread *perf_session__register_idle_thread(struct perf_session *session)
+struct thread *perf_session__register_idle_thread(struct perf_session *session)
{
struct thread *thread;
diff --git a/tools/perf/util/session.h b/tools/perf/util/session.h
index b44afc75d1cc..3e900c0efc73 100644
--- a/tools/perf/util/session.h
+++ b/tools/perf/util/session.h
@@ -89,6 +89,8 @@ struct machine *perf_session__findnew_machine(struct perf_session *session, pid_
}
struct thread *perf_session__findnew(struct perf_session *session, pid_t pid);
+struct thread *perf_session__register_idle_thread(struct perf_session *session);
+
size_t perf_session__fprintf(struct perf_session *session, FILE *fp);
size_t perf_session__fprintf_dsos(struct perf_session *session, FILE *fp);
--
2.1.0
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 04/10] perf report: Fix a bug on "--call-graph none" option
2015-10-02 20:25 [GIT PULL 00/10] perf/cover improvements and fixes Arnaldo Carvalho de Melo
` (2 preceding siblings ...)
2015-10-02 20:25 ` [PATCH 03/10] perf top: Register idle thread Arnaldo Carvalho de Melo
@ 2015-10-02 20:25 ` Arnaldo Carvalho de Melo
2015-10-02 20:25 ` [PATCH 05/10] perf callchain: Allow for max_stack greater than PERF_MAX_STACK_DEPTH Arnaldo Carvalho de Melo
` (6 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-10-02 20:25 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Namhyung Kim, Jiri Olsa, Kan Liang, Peter Zijlstra,
Arnaldo Carvalho de Melo
From: Namhyung Kim <namhyung@kernel.org>
The patch f9db0d0f1b2c ("perf callchain: Allow disabling call graphs
per event") added an ability to enable/disable callchain recording per
event. But it had a problem when the enablement setting is changed at
'perf report' time using -g/--call-graph option.
For example, the following scenario will get a segfault.
$ perf record -ag sleep 1
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.500 MB perf.data (2555 samples) ]
$ perf report -g none
perf: Segmentation fault
-------- backtrace --------
perf[0x53a98a]
/usr/lib/libc.so.6(+0x335af)[0x7f4e91df95af]
This is because callchain_param.sort() callback was not set but it
tried to call the function as it had the PERF_SAMPLE_CALLCHAIN bit.
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Kan Liang <kan.liang@intel.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Fixes: f9db0d0f1b2c ("perf callchain: Allow disabling call graphs per event")
Link: http://lkml.kernel.org/r/1443587640-24242-1-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/hist.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
index 0cad9e07c5b4..c346b331b892 100644
--- a/tools/perf/util/hist.c
+++ b/tools/perf/util/hist.c
@@ -1151,7 +1151,7 @@ void hists__output_resort(struct hists *hists, struct ui_progress *prog)
struct perf_evsel *evsel = hists_to_evsel(hists);
bool use_callchain;
- if (evsel && !symbol_conf.show_ref_callgraph)
+ if (evsel && symbol_conf.use_callchain && !symbol_conf.show_ref_callgraph)
use_callchain = evsel->attr.sample_type & PERF_SAMPLE_CALLCHAIN;
else
use_callchain = symbol_conf.use_callchain;
--
2.1.0
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 05/10] perf callchain: Allow for max_stack greater than PERF_MAX_STACK_DEPTH
2015-10-02 20:25 [GIT PULL 00/10] perf/cover improvements and fixes Arnaldo Carvalho de Melo
` (3 preceding siblings ...)
2015-10-02 20:25 ` [PATCH 04/10] perf report: Fix a bug on "--call-graph none" option Arnaldo Carvalho de Melo
@ 2015-10-02 20:25 ` Arnaldo Carvalho de Melo
2015-10-02 20:25 ` [PATCH 06/10] perf list: Do event name substring search as last resort when no events found Arnaldo Carvalho de Melo
` (5 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-10-02 20:25 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Adrian Hunter, Jiri Olsa, Arnaldo Carvalho de Melo
From: Adrian Hunter <adrian.hunter@intel.com>
Adjust the validation to allow for max_stack greater than
PERF_MAX_STACK_DEPTH.
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Link: http://lkml.kernel.org/r/1443186956-18718-18-git-send-email-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/machine.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/perf/util/machine.c b/tools/perf/util/machine.c
index 76fe167c359e..5ef90be2a249 100644
--- a/tools/perf/util/machine.c
+++ b/tools/perf/util/machine.c
@@ -1831,7 +1831,7 @@ static int thread__resolve_callchain_sample(struct thread *thread,
}
check_calls:
- if (chain->nr > PERF_MAX_STACK_DEPTH) {
+ if (chain->nr > PERF_MAX_STACK_DEPTH && (int)chain->nr > max_stack) {
pr_warning("corrupted callchain. skipping...\n");
return 0;
}
--
2.1.0
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 06/10] perf list: Do event name substring search as last resort when no events found
2015-10-02 20:25 [GIT PULL 00/10] perf/cover improvements and fixes Arnaldo Carvalho de Melo
` (4 preceding siblings ...)
2015-10-02 20:25 ` [PATCH 05/10] perf callchain: Allow for max_stack greater than PERF_MAX_STACK_DEPTH Arnaldo Carvalho de Melo
@ 2015-10-02 20:25 ` Arnaldo Carvalho de Melo
2015-10-02 20:25 ` [PATCH 07/10] perf list: Honour 'event_glob' whem printing selectable PMUs Arnaldo Carvalho de Melo
` (4 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-10-02 20:25 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Borislav Petkov, David Ahern, Frederic Weisbecker, Jiri Olsa,
Namhyung Kim, Stephane Eranian, Wang Nan
From: Arnaldo Carvalho de Melo <acme@redhat.com>
Before:
# perf list _alloc_ | head -10
#
After:
# perf list _alloc_ | head -10
ext4:ext4_alloc_da_blocks [Tracepoint event]
ext4:ext4_get_implied_cluster_alloc_exit [Tracepoint event]
kmem:kmem_cache_alloc_node [Tracepoint event]
kmem:mm_page_alloc_extfrag [Tracepoint event]
kmem:mm_page_alloc_zone_locked [Tracepoint event]
xen:xen_mmu_alloc_ptpage [Tracepoint event]
#
And it works for all types of events:
# perf list br
List of pre-defined events (to be used in -e):
branch-instructions OR branches [Hardware event]
branch-misses [Hardware event]
branch-load-misses [Hardware cache event]
branch-loads [Hardware cache event]
branch-instructions OR cpu/branch-instructions/ [Kernel PMU event]
branch-misses OR cpu/branch-misses/ [Kernel PMU event]
filelock:break_lease_block [Tracepoint event]
filelock:break_lease_noblock [Tracepoint event]
filelock:break_lease_unblock [Tracepoint event]
syscalls:sys_enter_brk [Tracepoint event]
syscalls:sys_exit_brk [Tracepoint event]
#
Suggested-by: Ingo Molnar <mingo@kernel.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Borislav Petkov <bp@suse.de>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Stephane Eranian <eranian@google.com>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-qieivl18jdemoaghgndj36e6@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/Documentation/perf-list.txt | 2 ++
tools/perf/builtin-list.c | 18 ++++++++++++++++--
2 files changed, 18 insertions(+), 2 deletions(-)
diff --git a/tools/perf/Documentation/perf-list.txt b/tools/perf/Documentation/perf-list.txt
index bada8933fdd4..ad60c6ea1997 100644
--- a/tools/perf/Documentation/perf-list.txt
+++ b/tools/perf/Documentation/perf-list.txt
@@ -125,6 +125,8 @@ To limit the list use:
. If none of the above is matched, it will apply the supplied glob to all
events, printing the ones that match.
+. As a last resort, it will do a substring search in all event names.
+
One or more types can be used at the same time, listing the events for the
types specified.
diff --git a/tools/perf/builtin-list.c b/tools/perf/builtin-list.c
index 602414040344..bf679e2c978b 100644
--- a/tools/perf/builtin-list.c
+++ b/tools/perf/builtin-list.c
@@ -45,6 +45,8 @@ int cmd_list(int argc, const char **argv, const char *prefix __maybe_unused)
}
for (i = 0; i < argc; ++i) {
+ char *sep, *s;
+
if (strcmp(argv[i], "tracepoint") == 0)
print_tracepoint_events(NULL, NULL, raw_dump);
else if (strcmp(argv[i], "hw") == 0 ||
@@ -60,8 +62,7 @@ int cmd_list(int argc, const char **argv, const char *prefix __maybe_unused)
print_hwcache_events(NULL, raw_dump);
else if (strcmp(argv[i], "pmu") == 0)
print_pmu_events(NULL, raw_dump);
- else {
- char *sep = strchr(argv[i], ':'), *s;
+ else if ((sep = strchr(argv[i], ':')) != NULL) {
int sep_idx;
if (sep == NULL) {
@@ -76,6 +77,19 @@ int cmd_list(int argc, const char **argv, const char *prefix __maybe_unused)
s[sep_idx] = '\0';
print_tracepoint_events(s, s + sep_idx + 1, raw_dump);
free(s);
+ } else {
+ if (asprintf(&s, "*%s*", argv[i]) < 0) {
+ printf("Critical: Not enough memory! Trying to continue...\n");
+ continue;
+ }
+ print_symbol_events(s, PERF_TYPE_HARDWARE,
+ event_symbols_hw, PERF_COUNT_HW_MAX, raw_dump);
+ print_symbol_events(s, PERF_TYPE_SOFTWARE,
+ event_symbols_sw, PERF_COUNT_SW_MAX, raw_dump);
+ print_hwcache_events(s, raw_dump);
+ print_pmu_events(s, raw_dump);
+ print_tracepoint_events(NULL, s, raw_dump);
+ free(s);
}
}
return 0;
--
2.1.0
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 07/10] perf list: Honour 'event_glob' whem printing selectable PMUs
2015-10-02 20:25 [GIT PULL 00/10] perf/cover improvements and fixes Arnaldo Carvalho de Melo
` (5 preceding siblings ...)
2015-10-02 20:25 ` [PATCH 06/10] perf list: Do event name substring search as last resort when no events found Arnaldo Carvalho de Melo
@ 2015-10-02 20:25 ` Arnaldo Carvalho de Melo
2015-10-02 20:25 ` [PATCH 08/10] perf probe: Allow probing on kmodules without dwarf Arnaldo Carvalho de Melo
` (3 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-10-02 20:25 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Borislav Petkov, David Ahern, Frederic Weisbecker, Jiri Olsa,
Namhyung Kim, Stephane Eranian
From: Arnaldo Carvalho de Melo <acme@redhat.com>
Some PMUs, like the 'intel_bts' one can be used as an event name, i.e.:
$ perf record -e intel_bts:// usleep 1
Is a valid event name.
But the code printing such PMUs was not honouring the 'event_glob'
parameter, so the following line was always appearing:
$ intel_bts// [Kernel PMU event]
Fix it:
$ [acme@felicio linux]$ perf list data
List of pre-defined events (to be used in -e):
uncore_imc/data_reads/ [Kernel PMU event]
uncore_imc/data_writes/ [Kernel PMU event]
$
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Borislav Petkov <bp@suse.de>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/n/tip-ajb71858n7q7ao77b8pyy74w@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/pmu.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c
index 41a356ba3cfe..e4b173dec4b9 100644
--- a/tools/perf/util/pmu.c
+++ b/tools/perf/util/pmu.c
@@ -1008,7 +1008,8 @@ void print_pmu_events(const char *event_glob, bool name_only)
goto out_enomem;
j++;
}
- if (pmu->selectable) {
+ if (pmu->selectable &&
+ (event_glob == NULL || strglobmatch(pmu->name, event_glob))) {
char *s;
if (asprintf(&s, "%s//", pmu->name) < 0)
goto out_enomem;
--
2.1.0
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 08/10] perf probe: Allow probing on kmodules without dwarf
2015-10-02 20:25 [GIT PULL 00/10] perf/cover improvements and fixes Arnaldo Carvalho de Melo
` (6 preceding siblings ...)
2015-10-02 20:25 ` [PATCH 07/10] perf list: Honour 'event_glob' whem printing selectable PMUs Arnaldo Carvalho de Melo
@ 2015-10-02 20:25 ` Arnaldo Carvalho de Melo
2015-10-02 20:25 ` [PATCH 09/10] perf record: Change 'record.samples' type to unsigned long long Arnaldo Carvalho de Melo
` (2 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-10-02 20:25 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Masami Hiramatsu, Jiri Olsa, Namhyung Kim,
Wang Nan, Arnaldo Carvalho de Melo
From: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Allow probing on kernel modules when 'perf' is built without debuginfo
support.
Currently perf-probe --module requires linking with libdw, but this
doesn't make sense.
E.g.
----
# make NO_DWARF=1
# ./perf probe -m pcspkr pcspkr_event%return
Error: unknown switch `m'
----
With this patch
----
# ./perf probe -m pcspkr pcspkr_event%return
Added new event:
probe:pcspkr_event (on pcspkr_event%return in pcspkr)
You can now use it in all perf tools, such as:
perf record -e probe:pcspkr_event -aR sleep 1
----
Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/r/20151002125832.18617.78721.stgit@localhost.localdomain
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/builtin-probe.c | 8 +++-----
tools/perf/util/probe-event.c | 8 +++++---
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/tools/perf/builtin-probe.c b/tools/perf/builtin-probe.c
index f7882ae9ebc6..530c3a28a58c 100644
--- a/tools/perf/builtin-probe.c
+++ b/tools/perf/builtin-probe.c
@@ -182,10 +182,8 @@ static int opt_set_target(const struct option *opt, const char *str,
if (str) {
if (!strcmp(opt->long_name, "exec"))
params.uprobes = true;
-#ifdef HAVE_DWARF_SUPPORT
else if (!strcmp(opt->long_name, "module"))
params.uprobes = false;
-#endif
else
return ret;
@@ -490,9 +488,6 @@ __cmd_probe(int argc, const char **argv, const char *prefix __maybe_unused)
"file", "vmlinux pathname"),
OPT_STRING('s', "source", &symbol_conf.source_prefix,
"directory", "path to kernel source"),
- OPT_CALLBACK('m', "module", NULL, "modname|path",
- "target module name (for online) or path (for offline)",
- opt_set_target),
OPT_BOOLEAN('\0', "no-inlines", &probe_conf.no_inlines,
"Don't search inlined functions"),
#endif
@@ -509,6 +504,9 @@ __cmd_probe(int argc, const char **argv, const char *prefix __maybe_unused)
opt_set_filter),
OPT_CALLBACK('x', "exec", NULL, "executable|path",
"target executable name or path", opt_set_target),
+ OPT_CALLBACK('m', "module", NULL, "modname|path",
+ "target module name (for online) or path (for offline)",
+ opt_set_target),
OPT_BOOLEAN(0, "demangle", &symbol_conf.demangle,
"Enable symbol demangling"),
OPT_BOOLEAN(0, "demangle-kernel", &symbol_conf.demangle_kernel,
diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
index 3010abc071ff..b51a8bfb40f9 100644
--- a/tools/perf/util/probe-event.c
+++ b/tools/perf/util/probe-event.c
@@ -2543,7 +2543,8 @@ static int find_probe_trace_events_from_map(struct perf_probe_event *pev,
goto out;
}
- if (!pev->uprobes && !pp->retprobe) {
+ /* Note that the symbols in the kmodule are not relocated */
+ if (!pev->uprobes && !pp->retprobe && !pev->target) {
reloc_sym = kernel_get_ref_reloc_sym();
if (!reloc_sym) {
pr_warning("Relocated base symbol is not found!\n");
@@ -2580,8 +2581,9 @@ static int find_probe_trace_events_from_map(struct perf_probe_event *pev,
}
/* Add one probe point */
tp->address = map->unmap_ip(map, sym->start) + pp->offset;
- /* If we found a wrong one, mark it by NULL symbol */
- if (!pev->uprobes &&
+
+ /* Check the kprobe (not in module) is within .text */
+ if (!pev->uprobes && !pev->target &&
kprobe_warn_out_range(sym->name, tp->address)) {
tp->symbol = NULL; /* Skip it */
skipped++;
--
2.1.0
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 09/10] perf record: Change 'record.samples' type to unsigned long long
2015-10-02 20:25 [GIT PULL 00/10] perf/cover improvements and fixes Arnaldo Carvalho de Melo
` (7 preceding siblings ...)
2015-10-02 20:25 ` [PATCH 08/10] perf probe: Allow probing on kmodules without dwarf Arnaldo Carvalho de Melo
@ 2015-10-02 20:25 ` Arnaldo Carvalho de Melo
2015-10-02 20:25 ` [PATCH 10/10] perf stat: Reduce min --interval-print to 10ms Arnaldo Carvalho de Melo
2015-10-03 6:32 ` [GIT PULL 00/10] perf/cover improvements and fixes Ingo Molnar
10 siblings, 0 replies; 12+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-10-02 20:25 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Yang Shi, linaro-kernel, Arnaldo Carvalho de Melo
From: Yang Shi <yang.shi@linaro.org>
When run "perf record -e", the number of samples showed up is wrong on some
32 bit systems, i.e. powerpc and arm.
For example, run the below commands on 32 bit powerpc:
perf probe -x /lib/libc.so.6 malloc
perf record -e probe_libc:malloc -a ls perf.data
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.036 MB perf.data (13829241621624967218 samples) ]
Actually, "perf script" just shows 21 samples. The number of samples is also
absurd since samples is long type, but it is printed as PRIu64.
Build test ran on x86-64, x86, aarch64, arm, mips, ppc and ppc64.
Signed-off-by: Yang Shi <yang.shi@linaro.org>
Cc: linaro-kernel@lists.linaro.org
Link: http://lkml.kernel.org/r/1443563383-4064-1-git-send-email-yang.shi@linaro.org
[ Bumped the 'hits' var used together with record.samples to 'unsigned long long' too ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/builtin-record.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
index 5e01c070dbf2..24ace2f318c1 100644
--- a/tools/perf/builtin-record.c
+++ b/tools/perf/builtin-record.c
@@ -49,7 +49,7 @@ struct record {
int realtime_prio;
bool no_buildid;
bool no_buildid_cache;
- long samples;
+ unsigned long long samples;
};
static int record__write(struct record *rec, void *bf, size_t size)
@@ -667,7 +667,7 @@ static int __cmd_record(struct record *rec, int argc, const char **argv)
auxtrace_snapshot_enabled = 1;
for (;;) {
- int hits = rec->samples;
+ unsigned long long hits = rec->samples;
if (record__mmap_read_all(rec) < 0) {
auxtrace_snapshot_enabled = 0;
--
2.1.0
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 10/10] perf stat: Reduce min --interval-print to 10ms
2015-10-02 20:25 [GIT PULL 00/10] perf/cover improvements and fixes Arnaldo Carvalho de Melo
` (8 preceding siblings ...)
2015-10-02 20:25 ` [PATCH 09/10] perf record: Change 'record.samples' type to unsigned long long Arnaldo Carvalho de Melo
@ 2015-10-02 20:25 ` Arnaldo Carvalho de Melo
2015-10-03 6:32 ` [GIT PULL 00/10] perf/cover improvements and fixes Ingo Molnar
10 siblings, 0 replies; 12+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-10-02 20:25 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Kan Liang, Andi Kleen, Namhyung Kim,
Arnaldo Carvalho de Melo
From: Kan Liang <kan.liang@intel.com>
The --interval-print parameter was limited to 100ms. However, for
example, 10ms is required to do sophisticated bandwidth analysis using
uncore events.
The test shows that the overhead of the system-wide uncore monitoring
with 10ms interval is only ~2%. So this patch reduces the minimal
interval-print allowd to 10ms.
But 10ms may not work well for all cases. For example, when the
cpus/threads number is very large, for system-wide core event monitoring
the overhead could be high.
To handle this issue, a warning will be displayed when the
interval-print is set between 10ms to 100ms. So users can make a
decision according to their specific cases.
# perf stat -e uncore_imc_1/cas_count_read/ -a --interval-print 10 -- sleep 1
print interval < 100ms. The overhead percentage could be high in some
cases. Please proceed with caution.
# time counts unit events
0.010200451 0.10 MiB uncore_imc_1/cas_count_read/
0.020475117 0.02 MiB uncore_imc_1/cas_count_read/
0.030692800 0.01 MiB uncore_imc_1/cas_count_read/
0.040948161 0.02 MiB uncore_imc_1/cas_count_read/
0.051159564 0.00 MiB uncore_imc_1/cas_count_read/
Signed-off-by: Kan Liang <kan.liang@intel.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: http://lkml.kernel.org/r/1443776674-42511-1-git-send-email-kan.liang@intel.com
[ Added warning about overhead when using sub 100ms intervals to the man page ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/Documentation/perf-stat.txt | 5 +++--
tools/perf/builtin-stat.c | 13 +++++++++----
2 files changed, 12 insertions(+), 6 deletions(-)
diff --git a/tools/perf/Documentation/perf-stat.txt b/tools/perf/Documentation/perf-stat.txt
index 47469abdcc1c..4e074a660826 100644
--- a/tools/perf/Documentation/perf-stat.txt
+++ b/tools/perf/Documentation/perf-stat.txt
@@ -128,8 +128,9 @@ perf stat --repeat 10 --null --sync --pre 'make -s O=defconfig-build/clean' -- m
-I msecs::
--interval-print msecs::
- Print count deltas every N milliseconds (minimum: 100ms)
- example: perf stat -I 1000 -e cycles -a sleep 5
+Print count deltas every N milliseconds (minimum: 10ms)
+The overhead percentage could be high in some cases, for instance with small, sub 100ms intervals. Use with caution.
+ example: 'perf stat -I 1000 -e cycles -a sleep 5'
--per-socket::
Aggregate counts per processor socket for system-wide mode measurements. This
diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index a96fb5c3bedb..5ef88f760b12 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -1179,7 +1179,7 @@ int cmd_stat(int argc, const char **argv, const char *prefix __maybe_unused)
OPT_STRING(0, "post", &post_cmd, "command",
"command to run after to the measured command"),
OPT_UINTEGER('I', "interval-print", &stat_config.interval,
- "print counts at regular interval in ms (>= 100)"),
+ "print counts at regular interval in ms (>= 10)"),
OPT_SET_UINT(0, "per-socket", &stat_config.aggr_mode,
"aggregate counts per processor socket", AGGR_SOCKET),
OPT_SET_UINT(0, "per-core", &stat_config.aggr_mode,
@@ -1332,9 +1332,14 @@ int cmd_stat(int argc, const char **argv, const char *prefix __maybe_unused)
thread_map__read_comms(evsel_list->threads);
if (interval && interval < 100) {
- pr_err("print interval must be >= 100ms\n");
- parse_options_usage(stat_usage, options, "I", 1);
- goto out;
+ if (interval < 10) {
+ pr_err("print interval must be >= 10ms\n");
+ parse_options_usage(stat_usage, options, "I", 1);
+ goto out;
+ } else
+ pr_warning("print interval < 100ms. "
+ "The overhead percentage could be high in some cases. "
+ "Please proceed with caution.\n");
}
if (perf_evlist__alloc_stats(evsel_list, interval))
--
2.1.0
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [GIT PULL 00/10] perf/cover improvements and fixes
2015-10-02 20:25 [GIT PULL 00/10] perf/cover improvements and fixes Arnaldo Carvalho de Melo
` (9 preceding siblings ...)
2015-10-02 20:25 ` [PATCH 10/10] perf stat: Reduce min --interval-print to 10ms Arnaldo Carvalho de Melo
@ 2015-10-03 6:32 ` Ingo Molnar
10 siblings, 0 replies; 12+ messages in thread
From: Ingo Molnar @ 2015-10-03 6:32 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Adrian Hunter, Andi Kleen, Borislav Petkov,
David Ahern, Frederic Weisbecker, Jiri Olsa, Kan Liang,
linaro-kernel, Masami Hiramatsu, Namhyung Kim, Peter Zijlstra,
Stephane Eranian, Wang Nan, Yang Shi, Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Hi Ingo,
>
> Please consider pulling,
>
> - Arnaldo
>
> The following changes since commit c2365b9388e8ec19305e3f449c1826e7493d156d:
>
> perf/x86/intel/uncore: Do not use macro DEFINE_PCI_DEVICE_TABLE() (2015-10-01 10:53:03 +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 19afd10410957b1c808c2c49a88e6dd8b23aa894:
>
> perf stat: Reduce min --interval-print to 10ms (2015-10-02 17:07:55 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> User visible:
>
> - Do event name substring search as last resort in 'perf list'.
> (Arnaldo Carvalho de Melo)
>
> E.g.:
>
> # perf list clock
>
> List of pre-defined events (to be used in -e):
>
> cpu-clock [Software event]
> task-clock [Software event]
>
> uncore_cbox_0/clockticks/ [Kernel PMU event]
> uncore_cbox_1/clockticks/ [Kernel PMU event]
>
> kvm:kvm_pvclock_update [Tracepoint event]
> kvm:kvm_update_master_clock [Tracepoint event]
> power:clock_disable [Tracepoint event]
> power:clock_enable [Tracepoint event]
> power:clock_set_rate [Tracepoint event]
> syscalls:sys_enter_clock_adjtime [Tracepoint event]
> syscalls:sys_enter_clock_getres [Tracepoint event]
> syscalls:sys_enter_clock_gettime [Tracepoint event]
> syscalls:sys_enter_clock_nanosleep [Tracepoint event]
> syscalls:sys_enter_clock_settime [Tracepoint event]
> syscalls:sys_exit_clock_adjtime [Tracepoint event]
> syscalls:sys_exit_clock_getres [Tracepoint event]
> syscalls:sys_exit_clock_gettime [Tracepoint event]
> syscalls:sys_exit_clock_nanosleep [Tracepoint event]
> syscalls:sys_exit_clock_settime [Tracepoint event]
>
> - Reduce min 'perf stat --interval-print/-I' to 10ms (Kan Liang)
>
> perf stat --interval in action:
>
> # perf stat -e cycles -I 50 -a usleep $((200 * 1000))
> print interval < 100ms. The overhead percentage could be high in some cases. Please proceed with caution.
> # time counts unit events
> 0.050233636 48,240,396 cycles
> 0.100557098 35,492,594 cycles
> 0.150804687 39,295,112 cycles
> 0.201032269 33,101,961 cycles
> 0.201980732 786,379 cycles
> #
>
> - Allow for max_stack greater than PERF_MAX_STACK_DEPTH, as when
> synthesizing callchains from Intel PT data (Adrian Hunter)
>
> - Allow probing on kmodules without DWARF (Masami Hiramatsu)
>
> - Fix a segfault when processing a perf.data file with callchains using
> "perf report --call-graph none" (Namhyung Kim)
>
> - Fix unresolved COMMs in 'perf top' when -s comm is used (Namhyung Kim)
>
> - Register idle thread in 'perf top' (Namhyung Kim)
>
> - Change 'record.samples' type to unsigned long long, fixing output of
> number of samples in 32-bit architectures (Yang Shi)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Adrian Hunter (1):
> perf callchain: Allow for max_stack greater than PERF_MAX_STACK_DEPTH
>
> Arnaldo Carvalho de Melo (2):
> perf list: Do event name substring search as last resort when no events found
> perf list: Honour 'event_glob' whem printing selectable PMUs
>
> Kan Liang (1):
> perf stat: Reduce min --interval-print to 10ms
>
> Masami Hiramatsu (1):
> perf probe: Allow probing on kmodules without dwarf
>
> Namhyung Kim (4):
> perf record: Allocate area for sample_id_hdr in a synthesized comm event
> perf top: Fix unresolved comm when -s comm is used
> perf top: Register idle thread
> perf report: Fix a bug on "--call-graph none" option
>
> Yang Shi (1):
> perf record: Change 'record.samples' type to unsigned long long
>
> tools/perf/Documentation/perf-list.txt | 2 ++
> tools/perf/Documentation/perf-stat.txt | 5 +++--
> tools/perf/builtin-list.c | 18 ++++++++++++++++--
> tools/perf/builtin-probe.c | 8 +++-----
> tools/perf/builtin-record.c | 16 ++++++++++++----
> tools/perf/builtin-stat.c | 13 +++++++++----
> tools/perf/builtin-top.c | 10 ++++++++--
> tools/perf/util/hist.c | 2 +-
> tools/perf/util/machine.c | 2 +-
> tools/perf/util/pmu.c | 3 ++-
> tools/perf/util/probe-event.c | 8 +++++---
> tools/perf/util/session.c | 2 +-
> tools/perf/util/session.h | 2 ++
> 13 files changed, 65 insertions(+), 26 deletions(-)
Pulled, thanks a lot Arnaldo!
Btw., incidentally I noticed an UI detail: in the 'perf report' and 'perf top'
TUI, PageUp does not move the cursor to the topmost line, it stays at whatever
partial page position it is.
I think it would be better to behave here like good editors do: PageUp in the
first partial page moves to the first line (like 'Home') - and PageDown on the
last page of output moves to the last line (like 'End').
Btw., even popular TUI editors get this wrong sometimes:
- 'nano' (joe clone, popular mail editor) gets this right in both directions.
- 'vim' behaves this way on PageDown, but not on PageUp. Nor does it recognize
Home/End, only Ctrl-Home/End works.
- 'emacs (e3 package) gets the PageUp/PageDown behavior right, but no Home/End
key combo works (and exiting the editor is painful as well ;-)
Thanks,
Ingo
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2015-10-03 6:32 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-10-02 20:25 [GIT PULL 00/10] perf/cover improvements and fixes Arnaldo Carvalho de Melo
2015-10-02 20:25 ` [PATCH 01/10] perf record: Allocate area for sample_id_hdr in a synthesized comm event Arnaldo Carvalho de Melo
2015-10-02 20:25 ` [PATCH 02/10] perf top: Fix unresolved comm when -s comm is used Arnaldo Carvalho de Melo
2015-10-02 20:25 ` [PATCH 03/10] perf top: Register idle thread Arnaldo Carvalho de Melo
2015-10-02 20:25 ` [PATCH 04/10] perf report: Fix a bug on "--call-graph none" option Arnaldo Carvalho de Melo
2015-10-02 20:25 ` [PATCH 05/10] perf callchain: Allow for max_stack greater than PERF_MAX_STACK_DEPTH Arnaldo Carvalho de Melo
2015-10-02 20:25 ` [PATCH 06/10] perf list: Do event name substring search as last resort when no events found Arnaldo Carvalho de Melo
2015-10-02 20:25 ` [PATCH 07/10] perf list: Honour 'event_glob' whem printing selectable PMUs Arnaldo Carvalho de Melo
2015-10-02 20:25 ` [PATCH 08/10] perf probe: Allow probing on kmodules without dwarf Arnaldo Carvalho de Melo
2015-10-02 20:25 ` [PATCH 09/10] perf record: Change 'record.samples' type to unsigned long long Arnaldo Carvalho de Melo
2015-10-02 20:25 ` [PATCH 10/10] perf stat: Reduce min --interval-print to 10ms Arnaldo Carvalho de Melo
2015-10-03 6:32 ` [GIT PULL 00/10] perf/cover improvements and fixes 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).