diff options
author | Anton Blanchard <anton@samba.org> | 2009-10-17 21:09:29 -0400 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2009-10-28 01:13:03 -0400 |
commit | f7d7986060b2890fc26db6ab5203efbd33aa2497 (patch) | |
tree | 0ed63257afd3fd02d83ab481af35855603ac4790 /kernel/perf_event.c | |
parent | 81cd5ae303e88a1e9d3a3e0f1fe8abd100edde16 (diff) |
perf_event: Add alignment-faults and emulation-faults software events
Add two more software events that are common to many cpus.
Alignment faults: When a load or store is not aligned properly.
Emulation faults: When an instruction is emulated in software.
Both cause a very significant slowdown (100x or worse), so identifying and
fixing them is very important.
Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'kernel/perf_event.c')
-rw-r--r-- | kernel/perf_event.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel/perf_event.c b/kernel/perf_event.c index 9d0b5c665883..0683b33cbb28 100644 --- a/kernel/perf_event.c +++ b/kernel/perf_event.c | |||
@@ -4186,6 +4186,8 @@ static const struct pmu *sw_perf_event_init(struct perf_event *event) | |||
4186 | case PERF_COUNT_SW_PAGE_FAULTS_MAJ: | 4186 | case PERF_COUNT_SW_PAGE_FAULTS_MAJ: |
4187 | case PERF_COUNT_SW_CONTEXT_SWITCHES: | 4187 | case PERF_COUNT_SW_CONTEXT_SWITCHES: |
4188 | case PERF_COUNT_SW_CPU_MIGRATIONS: | 4188 | case PERF_COUNT_SW_CPU_MIGRATIONS: |
4189 | case PERF_COUNT_SW_ALIGNMENT_FAULTS: | ||
4190 | case PERF_COUNT_SW_EMULATION_FAULTS: | ||
4189 | if (!event->parent) { | 4191 | if (!event->parent) { |
4190 | atomic_inc(&perf_swevent_enabled[event_id]); | 4192 | atomic_inc(&perf_swevent_enabled[event_id]); |
4191 | event->destroy = sw_perf_event_destroy; | 4193 | event->destroy = sw_perf_event_destroy; |