x86: unify save_stack_address() and save_stack_address_nosched()
Subsystems (2)
PATCH 2/2 x86: unify save_stack_address() and save_stack_address_nosched()
Cleanup. Factor the common code in save_stack_address() and save_stack_address_nosched().
Signed-off-by Oleg Nesterov <[email protected]>
---
arch/x86/kernel/stacktrace.c | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-)
arch/x86/kernel/stacktrace.c renamed from arch/x86/kernel/stacktrace.c~UNIFY_SAVE_STACKS +10 -14
@@ -23,13 +23,16 @@ static int save_stack_stack(void *data,return 0 ; } -static void save_stack_address (void *data,unsigned long addr,int reliable) +static void +__save_stack_address (void *data,unsigned long addr,bool reliable,bool nosched) {struct stack_trace *trace = data;#ifdef CONFIG_FRAME_POINTER if (!reliable)return ;#endif +if (nosched &&in_sched_functions (addr)) +return ;if (trace->skip >0 ) { trace->skip--;return ;
@@ -38,22 +41,15 @@ static void save_stack_address(void *dat trace->entries[trace->nr_entries++] = addr; } +static void save_stack_address (void *data,unsigned long addr,int reliable) +{ +return __save_stack_address (data, addr, reliable, false); +} +static void save_stack_address_nosched (void *data,unsigned long addr,int reliable) { -struct stack_trace *trace = data; -#ifdef CONFIG_FRAME_POINTER -if (!reliable) -return ; -#endif -if (in_sched_functions (addr)) -return ; -if (trace->skip >0 ) { - trace->skip--; -return ; - } -if (trace->nr_entries < trace->max_entries) - trace->entries[trace->nr_entries++] = addr; +return __save_stack_address (data, addr, reliable, true); }static const struct stacktrace_ops save_stack_ops = {
Quoted 5 lines · Oleg Nesterov
Cleanup. Factor the common code in
save_stack_address()andsave_stack_address_nosched().Signed-off-by Oleg Nesterov <[email protected]>---
Acked-by Roland McGrath <[email protected]>
[tip:perf/core] x86: Unify save_stack_address() and save_stack_address_nosched()
In reply to Oleg NesterovCommit-ID: 018378c55b03f88ff513aba4e0e93b8d4a9cf241 Gitweb: http://git.kernel.org/tip/018378c55b03f88ff513aba4e0e93b8d4a9cf241 Author: Oleg Nesterov <[email protected]> AuthorDate: Thu, 3 Jun 2010 21:32:43 +0200 Committer: Frederic Weisbecker <[email protected]> CommitDate: Wed, 9 Jun 2010 17:32:19 +0200
x86: Unify save_stack_address() and save_stack_address_nosched()
Cleanup. Factor the common code in save_stack_address() and save_stack_address_nosched().
Signed-off-by Oleg Nesterov <[email protected]>
Cc Roland McGrath <[email protected]>
Cc Arjan van de Ven <[email protected]>
Cc Vegard Nossum <[email protected]>
Cc Ingo Molnar <[email protected]>
LKML-Reference: <[email protected]>
Signed-off-by Frederic Weisbecker <[email protected]>
--- arch/x86/kernel/stacktrace.c | 24 ++++++++++-------------- 1 files changed, 10 insertions(+), 14 deletions(-)
arch/x86/kernel/stacktrace.c +10 -14
@@ -23,13 +23,16 @@ static int save_stack_stack(void *data, char *name)return 0 ; } -static void save_stack_address (void *data,unsigned long addr,int reliable) +static void +__save_stack_address (void *data,unsigned long addr,bool reliable,bool nosched) {struct stack_trace *trace = data;#ifdef CONFIG_FRAME_POINTER if (!reliable)return ;#endif +if (nosched &&in_sched_functions (addr)) +return ;if (trace->skip >0 ) { trace->skip--;return ;
@@ -38,22 +41,15 @@ static void save_stack_address(void *data, unsigned long addr, int reliable) trace->entries[trace->nr_entries++] = addr; } +static void save_stack_address (void *data,unsigned long addr,int reliable) +{ +return __save_stack_address (data, addr, reliable, false); +} +static void save_stack_address_nosched (void *data,unsigned long addr,int reliable) { -struct stack_trace *trace = data; -#ifdef CONFIG_FRAME_POINTER -if (!reliable) -return ; -#endif -if (in_sched_functions (addr)) -return ; -if (trace->skip >0 ) { - trace->skip--; -return ; - } -if (trace->nr_entries < trace->max_entries) - trace->entries[trace->nr_entries++] = addr; +return __save_stack_address (data, addr, reliable, true); }static const struct stacktrace_ops save_stack_ops = {