diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-07-22 19:44:39 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-07-22 19:44:39 -0400 |
commit | 4d4abdcb1dee03a4f9d6d2021622ed07e14dfd17 (patch) | |
tree | 4ed4c74b70240451065165fda5fb2059f8c6b1e5 /arch/sh/kernel | |
parent | 0342cbcfced2ee937d7c8e1c63f3d3082da7c7dc (diff) | |
parent | 7fcfd1abd6480d3b9ef17f5759c175e036e835cf (diff) |
Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (123 commits)
perf: Remove the nmi parameter from the oprofile_perf backend
x86, perf: Make copy_from_user_nmi() a library function
perf: Remove perf_event_attr::type check
x86, perf: P4 PMU - Fix typos in comments and style cleanup
perf tools: Make test use the preset debugfs path
perf tools: Add automated tests for events parsing
perf tools: De-opt the parse_events function
perf script: Fix display of IP address for non-callchain path
perf tools: Fix endian conversion reading event attr from file header
perf tools: Add missing 'node' alias to the hw_cache[] array
perf probe: Support adding probes on offline kernel modules
perf probe: Add probed module in front of function
perf probe: Introduce debuginfo to encapsulate dwarf information
perf-probe: Move dwarf library routines to dwarf-aux.{c, h}
perf probe: Remove redundant dwarf functions
perf probe: Move strtailcmp to string.c
perf probe: Rename DIE_FIND_CB_FOUND to DIE_FIND_CB_END
tracing/kprobe: Update symbol reference when loading module
tracing/kprobes: Support module init function probing
kprobes: Return -ENOENT if probe point doesn't exist
...
Diffstat (limited to 'arch/sh/kernel')
-rw-r--r-- | arch/sh/kernel/cpu/sh4/perf_event.c | 15 | ||||
-rw-r--r-- | arch/sh/kernel/cpu/sh4a/perf_event.c | 15 | ||||
-rw-r--r-- | arch/sh/kernel/ptrace_32.c | 5 | ||||
-rw-r--r-- | arch/sh/kernel/traps_32.c | 2 | ||||
-rw-r--r-- | arch/sh/kernel/traps_64.c | 8 |
5 files changed, 38 insertions, 7 deletions
diff --git a/arch/sh/kernel/cpu/sh4/perf_event.c b/arch/sh/kernel/cpu/sh4/perf_event.c index 748955df018d..fa4f724b295a 100644 --- a/arch/sh/kernel/cpu/sh4/perf_event.c +++ b/arch/sh/kernel/cpu/sh4/perf_event.c | |||
@@ -180,6 +180,21 @@ static const int sh7750_cache_events | |||
180 | [ C(RESULT_MISS) ] = -1, | 180 | [ C(RESULT_MISS) ] = -1, |
181 | }, | 181 | }, |
182 | }, | 182 | }, |
183 | |||
184 | [ C(NODE) ] = { | ||
185 | [ C(OP_READ) ] = { | ||
186 | [ C(RESULT_ACCESS) ] = -1, | ||
187 | [ C(RESULT_MISS) ] = -1, | ||
188 | }, | ||
189 | [ C(OP_WRITE) ] = { | ||
190 | [ C(RESULT_ACCESS) ] = -1, | ||
191 | [ C(RESULT_MISS) ] = -1, | ||
192 | }, | ||
193 | [ C(OP_PREFETCH) ] = { | ||
194 | [ C(RESULT_ACCESS) ] = -1, | ||
195 | [ C(RESULT_MISS) ] = -1, | ||
196 | }, | ||
197 | }, | ||
183 | }; | 198 | }; |
184 | 199 | ||
185 | static int sh7750_event_map(int event) | 200 | static int sh7750_event_map(int event) |
diff --git a/arch/sh/kernel/cpu/sh4a/perf_event.c b/arch/sh/kernel/cpu/sh4a/perf_event.c index 17e6bebfede0..84a2c396ceee 100644 --- a/arch/sh/kernel/cpu/sh4a/perf_event.c +++ b/arch/sh/kernel/cpu/sh4a/perf_event.c | |||
@@ -205,6 +205,21 @@ static const int sh4a_cache_events | |||
205 | [ C(RESULT_MISS) ] = -1, | 205 | [ C(RESULT_MISS) ] = -1, |
206 | }, | 206 | }, |
207 | }, | 207 | }, |
208 | |||
209 | [ C(NODE) ] = { | ||
210 | [ C(OP_READ) ] = { | ||
211 | [ C(RESULT_ACCESS) ] = -1, | ||
212 | [ C(RESULT_MISS) ] = -1, | ||
213 | }, | ||
214 | [ C(OP_WRITE) ] = { | ||
215 | [ C(RESULT_ACCESS) ] = -1, | ||
216 | [ C(RESULT_MISS) ] = -1, | ||
217 | }, | ||
218 | [ C(OP_PREFETCH) ] = { | ||
219 | [ C(RESULT_ACCESS) ] = -1, | ||
220 | [ C(RESULT_MISS) ] = -1, | ||
221 | }, | ||
222 | }, | ||
208 | }; | 223 | }; |
209 | 224 | ||
210 | static int sh4a_event_map(int event) | 225 | static int sh4a_event_map(int event) |
diff --git a/arch/sh/kernel/ptrace_32.c b/arch/sh/kernel/ptrace_32.c index 3d7b209b2178..92b3c276339a 100644 --- a/arch/sh/kernel/ptrace_32.c +++ b/arch/sh/kernel/ptrace_32.c | |||
@@ -63,7 +63,7 @@ static inline int put_stack_long(struct task_struct *task, int offset, | |||
63 | return 0; | 63 | return 0; |
64 | } | 64 | } |
65 | 65 | ||
66 | void ptrace_triggered(struct perf_event *bp, int nmi, | 66 | void ptrace_triggered(struct perf_event *bp, |
67 | struct perf_sample_data *data, struct pt_regs *regs) | 67 | struct perf_sample_data *data, struct pt_regs *regs) |
68 | { | 68 | { |
69 | struct perf_event_attr attr; | 69 | struct perf_event_attr attr; |
@@ -91,7 +91,8 @@ static int set_single_step(struct task_struct *tsk, unsigned long addr) | |||
91 | attr.bp_len = HW_BREAKPOINT_LEN_2; | 91 | attr.bp_len = HW_BREAKPOINT_LEN_2; |
92 | attr.bp_type = HW_BREAKPOINT_R; | 92 | attr.bp_type = HW_BREAKPOINT_R; |
93 | 93 | ||
94 | bp = register_user_hw_breakpoint(&attr, ptrace_triggered, tsk); | 94 | bp = register_user_hw_breakpoint(&attr, ptrace_triggered, |
95 | NULL, tsk); | ||
95 | if (IS_ERR(bp)) | 96 | if (IS_ERR(bp)) |
96 | return PTR_ERR(bp); | 97 | return PTR_ERR(bp); |
97 | 98 | ||
diff --git a/arch/sh/kernel/traps_32.c b/arch/sh/kernel/traps_32.c index b51a17104b5f..d9006f8ffc14 100644 --- a/arch/sh/kernel/traps_32.c +++ b/arch/sh/kernel/traps_32.c | |||
@@ -393,7 +393,7 @@ int handle_unaligned_access(insn_size_t instruction, struct pt_regs *regs, | |||
393 | */ | 393 | */ |
394 | if (!expected) { | 394 | if (!expected) { |
395 | unaligned_fixups_notify(current, instruction, regs); | 395 | unaligned_fixups_notify(current, instruction, regs); |
396 | perf_sw_event(PERF_COUNT_SW_ALIGNMENT_FAULTS, 1, 0, | 396 | perf_sw_event(PERF_COUNT_SW_ALIGNMENT_FAULTS, 1, |
397 | regs, address); | 397 | regs, address); |
398 | } | 398 | } |
399 | 399 | ||
diff --git a/arch/sh/kernel/traps_64.c b/arch/sh/kernel/traps_64.c index 6713ca97e553..67110be83fd7 100644 --- a/arch/sh/kernel/traps_64.c +++ b/arch/sh/kernel/traps_64.c | |||
@@ -434,7 +434,7 @@ static int misaligned_load(struct pt_regs *regs, | |||
434 | return error; | 434 | return error; |
435 | } | 435 | } |
436 | 436 | ||
437 | perf_sw_event(PERF_COUNT_SW_ALIGNMENT_FAULTS, 1, 0, regs, address); | 437 | perf_sw_event(PERF_COUNT_SW_ALIGNMENT_FAULTS, 1, regs, address); |
438 | 438 | ||
439 | destreg = (opcode >> 4) & 0x3f; | 439 | destreg = (opcode >> 4) & 0x3f; |
440 | if (user_mode(regs)) { | 440 | if (user_mode(regs)) { |
@@ -512,7 +512,7 @@ static int misaligned_store(struct pt_regs *regs, | |||
512 | return error; | 512 | return error; |
513 | } | 513 | } |
514 | 514 | ||
515 | perf_sw_event(PERF_COUNT_SW_ALIGNMENT_FAULTS, 1, 0, regs, address); | 515 | perf_sw_event(PERF_COUNT_SW_ALIGNMENT_FAULTS, 1, regs, address); |
516 | 516 | ||
517 | srcreg = (opcode >> 4) & 0x3f; | 517 | srcreg = (opcode >> 4) & 0x3f; |
518 | if (user_mode(regs)) { | 518 | if (user_mode(regs)) { |
@@ -588,7 +588,7 @@ static int misaligned_fpu_load(struct pt_regs *regs, | |||
588 | return error; | 588 | return error; |
589 | } | 589 | } |
590 | 590 | ||
591 | perf_sw_event(PERF_COUNT_SW_EMULATION_FAULTS, 1, 0, regs, address); | 591 | perf_sw_event(PERF_COUNT_SW_EMULATION_FAULTS, 1, regs, address); |
592 | 592 | ||
593 | destreg = (opcode >> 4) & 0x3f; | 593 | destreg = (opcode >> 4) & 0x3f; |
594 | if (user_mode(regs)) { | 594 | if (user_mode(regs)) { |
@@ -665,7 +665,7 @@ static int misaligned_fpu_store(struct pt_regs *regs, | |||
665 | return error; | 665 | return error; |
666 | } | 666 | } |
667 | 667 | ||
668 | perf_sw_event(PERF_COUNT_SW_EMULATION_FAULTS, 1, 0, regs, address); | 668 | perf_sw_event(PERF_COUNT_SW_EMULATION_FAULTS, 1, regs, address); |
669 | 669 | ||
670 | srcreg = (opcode >> 4) & 0x3f; | 670 | srcreg = (opcode >> 4) & 0x3f; |
671 | if (user_mode(regs)) { | 671 | if (user_mode(regs)) { |