diff options
author | Frederic Weisbecker <fweisbec@gmail.com> | 2010-06-29 12:08:13 -0400 |
---|---|---|
committer | Frederic Weisbecker <fweisbec@gmail.com> | 2010-08-18 19:29:35 -0400 |
commit | c1a65932fd7216fdc9a0db8bbffe1d47842f862c (patch) | |
tree | 5c7b3c616f850ba549abdd645cfa9d4121eb8623 | |
parent | 4694153c252a6ae19704b5bb66466050256395a4 (diff) |
perf: Drop unappropriate tests on arch callchains
Drop the TASK_RUNNING test on user tasks for callchains as
this check doesn't seem to make any sense.
Also remove the tests for !current that is not supposed to
happen and current->pid as this should be handled at the
generic level, with exclude_idle attribute.
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Tested-by: Will Deacon <will.deacon@arm.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Stephane Eranian <eranian@google.com>
Cc: David Miller <davem@davemloft.net>
Cc: Paul Mundt <lethal@linux-sh.org>
Cc: Borislav Petkov <bp@amd64.org>
-rw-r--r-- | arch/arm/kernel/perf_event.c | 6 | ||||
-rw-r--r-- | arch/sh/kernel/perf_callchain.c | 3 | ||||
-rw-r--r-- | arch/x86/kernel/cpu/perf_event.c | 3 |
3 files changed, 0 insertions, 12 deletions
diff --git a/arch/arm/kernel/perf_event.c b/arch/arm/kernel/perf_event.c index 417c392ddf1c..fdcb0be47df1 100644 --- a/arch/arm/kernel/perf_event.c +++ b/arch/arm/kernel/perf_event.c | |||
@@ -3107,12 +3107,6 @@ perf_do_callchain(struct pt_regs *regs, | |||
3107 | 3107 | ||
3108 | is_user = user_mode(regs); | 3108 | is_user = user_mode(regs); |
3109 | 3109 | ||
3110 | if (!current || !current->pid) | ||
3111 | return; | ||
3112 | |||
3113 | if (is_user && current->state != TASK_RUNNING) | ||
3114 | return; | ||
3115 | |||
3116 | if (!is_user) | 3110 | if (!is_user) |
3117 | perf_callchain_kernel(regs, entry); | 3111 | perf_callchain_kernel(regs, entry); |
3118 | 3112 | ||
diff --git a/arch/sh/kernel/perf_callchain.c b/arch/sh/kernel/perf_callchain.c index a9dd3abde28e..1d6dbce7a3bc 100644 --- a/arch/sh/kernel/perf_callchain.c +++ b/arch/sh/kernel/perf_callchain.c | |||
@@ -68,9 +68,6 @@ perf_do_callchain(struct pt_regs *regs, struct perf_callchain_entry *entry) | |||
68 | 68 | ||
69 | is_user = user_mode(regs); | 69 | is_user = user_mode(regs); |
70 | 70 | ||
71 | if (is_user && current->state != TASK_RUNNING) | ||
72 | return; | ||
73 | |||
74 | /* | 71 | /* |
75 | * Only the kernel side is implemented for now. | 72 | * Only the kernel side is implemented for now. |
76 | */ | 73 | */ |
diff --git a/arch/x86/kernel/cpu/perf_event.c b/arch/x86/kernel/cpu/perf_event.c index f2da20fda02d..4a4d191f9492 100644 --- a/arch/x86/kernel/cpu/perf_event.c +++ b/arch/x86/kernel/cpu/perf_event.c | |||
@@ -1703,9 +1703,6 @@ perf_do_callchain(struct pt_regs *regs, struct perf_callchain_entry *entry) | |||
1703 | 1703 | ||
1704 | is_user = user_mode(regs); | 1704 | is_user = user_mode(regs); |
1705 | 1705 | ||
1706 | if (is_user && current->state != TASK_RUNNING) | ||
1707 | return; | ||
1708 | |||
1709 | if (!is_user) | 1706 | if (!is_user) |
1710 | perf_callchain_kernel(regs, entry); | 1707 | perf_callchain_kernel(regs, entry); |
1711 | 1708 | ||