[PATCH 02/12] call arch_init_ftrace_syscalls at boot

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Jason Baron
Date: Monday, August 10, 2009 - 1:52 pm

Call arch_init_ftrace_syscalls at boot, so we can determine the set of syscalls
for the syscall trace events.

Signed-off-by: Jason Baron <jbaron@redhat.com>

---
 arch/x86/kernel/ftrace.c      |   15 ++++-----------
 include/trace/syscall.h       |    1 -
 kernel/trace/trace_syscalls.c |    1 -
 3 files changed, 4 insertions(+), 13 deletions(-)

diff --git a/arch/x86/kernel/ftrace.c b/arch/x86/kernel/ftrace.c
index afb31d7..0d93d40 100644
--- a/arch/x86/kernel/ftrace.c
+++ b/arch/x86/kernel/ftrace.c
@@ -516,31 +516,24 @@ int syscall_name_to_nr(char *name)
 	return -1;
 }
 
-void arch_init_ftrace_syscalls(void)
+static int __init arch_init_ftrace_syscalls(void)
 {
 	int i;
 	struct syscall_metadata *meta;
 	unsigned long **psys_syscall_table = &sys_call_table;
-	static atomic_t refs;
-
-	if (atomic_inc_return(&refs) != 1)
-		goto end;
 
 	syscalls_metadata = kzalloc(sizeof(*syscalls_metadata) *
 					FTRACE_SYSCALL_MAX, GFP_KERNEL);
 	if (!syscalls_metadata) {
 		WARN_ON(1);
-		return;
+		return -ENOMEM;
 	}
 
 	for (i = 0; i < FTRACE_SYSCALL_MAX; i++) {
 		meta = find_syscall_meta(psys_syscall_table[i]);
 		syscalls_metadata[i] = meta;
 	}
-	return;
-
-	/* Paranoid: avoid overflow */
-end:
-	atomic_dec(&refs);
+	return 0;
 }
+arch_initcall(arch_init_ftrace_syscalls);
 #endif
diff --git a/include/trace/syscall.h b/include/trace/syscall.h
index 8cfe515..c55fcce 100644
--- a/include/trace/syscall.h
+++ b/include/trace/syscall.h
@@ -19,7 +19,6 @@ struct syscall_metadata {
 };
 
 #ifdef CONFIG_FTRACE_SYSCALLS
-extern void arch_init_ftrace_syscalls(void);
 extern struct syscall_metadata *syscall_nr_to_meta(int nr);
 extern void start_ftrace_syscalls(void);
 extern void stop_ftrace_syscalls(void);
diff --git a/kernel/trace/trace_syscalls.c b/kernel/trace/trace_syscalls.c
index 5e57964..08aed43 100644
--- a/kernel/trace/trace_syscalls.c
+++ b/kernel/trace/trace_syscalls.c
@@ -106,7 +106,6 @@ void start_ftrace_syscalls(void)
 	if (++refcount != 1)
 		goto unlock;
 
-	arch_init_ftrace_syscalls();
 	read_lock_irqsave(&tasklist_lock, flags);
 
 	do_each_thread(g, t) {
-- 
1.6.2.5

--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH 00/12] add syscall tracepoints V3, Jason Baron, (Mon Aug 10, 1:52 pm)
[PATCH 02/12] call arch_init_ftrace_syscalls at boot, Jason Baron, (Mon Aug 10, 1:52 pm)
[PATCH 03/12] add DECLARE_TRACE_WITH_CALLBACK() macro, Jason Baron, (Mon Aug 10, 1:52 pm)
[PATCH 04/12] add syscall tracepoints, Jason Baron, (Mon Aug 10, 1:52 pm)
[PATCH 05/12] update FTRACE_SYSCALL_MAX, Jason Baron, (Mon Aug 10, 1:52 pm)
[PATCH 06/12] trace_event - raw_init bailout, Jason Baron, (Mon Aug 10, 1:52 pm)
[PATCH 09/12] add support traceopint ids, Jason Baron, (Mon Aug 10, 1:52 pm)
[PATCH 10/12] add perf counter support, Jason Baron, (Mon Aug 10, 1:53 pm)
Re: [PATCH 07/12] add ftrace_event_call void * 'data' field, Frederic Weisbecker, (Tue Aug 11, 3:09 am)
Re: [PATCH 08/12] add trace events for each syscall entry/exit, Frederic Weisbecker, (Tue Aug 11, 3:50 am)
Re: [PATCH 05/12] update FTRACE_SYSCALL_MAX, Frederic Weisbecker, (Tue Aug 11, 4:00 am)
Re: [PATCH 09/12] add support traceopint ids, Frederic Weisbecker, (Tue Aug 11, 4:28 am)
Re: [PATCH 08/12] add trace events for each syscall entry/exit, Frederic Weisbecker, (Tue Aug 11, 5:01 am)
Re: [PATCH 10/12] add perf counter support, Frederic Weisbecker, (Tue Aug 11, 5:12 am)
Re: [PATCH 10/12] add perf counter support, Ingo Molnar, (Tue Aug 11, 5:17 am)
Re: [PATCH 10/12] add perf counter support, Frederic Weisbecker, (Tue Aug 11, 5:25 am)
Re: [PATCH 05/12] update FTRACE_SYSCALL_MAX, Matt Fleming, (Tue Aug 11, 12:39 pm)
Re: [PATCH 07/12] add ftrace_event_call void * 'data' field, Frederic Weisbecker, (Mon Aug 17, 4:09 pm)
Re: [PATCH 05/12] update FTRACE_SYSCALL_MAX, Paul Mundt, (Mon Aug 24, 6:41 am)
Re: [PATCH 05/12] update FTRACE_SYSCALL_MAX, Jason Baron, (Mon Aug 24, 7:06 am)
Re: [PATCH 05/12] update FTRACE_SYSCALL_MAX, Paul Mundt, (Mon Aug 24, 7:15 am)
Re: [PATCH 05/12] update FTRACE_SYSCALL_MAX, Frederic Weisbecker, (Mon Aug 24, 7:34 am)
Re: [PATCH 05/12] update FTRACE_SYSCALL_MAX, Paul Mundt, (Mon Aug 24, 7:37 am)
Re: [PATCH 05/12] update FTRACE_SYSCALL_MAX, Jason Baron, (Mon Aug 24, 7:42 am)
Re: [PATCH 05/12] update FTRACE_SYSCALL_MAX, Paul Mundt, (Mon Aug 24, 7:50 am)
Re: [PATCH 05/12] update FTRACE_SYSCALL_MAX, Ingo Molnar, (Mon Aug 24, 11:34 am)
Re: [PATCH 00/12] add syscall tracepoints V3 - s390 arch u ..., Hendrik Brueckner, (Tue Aug 25, 5:31 am)
Re: [PATCH 08/12] add trace events for each syscall entry/exit, Hendrik Brueckner, (Tue Aug 25, 5:50 am)
Re: [PATCH 00/12] add syscall tracepoints V3 - s390 arch u ..., Frederic Weisbecker, (Tue Aug 25, 6:52 am)
Re: [PATCH 08/12] add trace events for each syscall entry/exit, Frederic Weisbecker, (Tue Aug 25, 7:15 am)
Re: [PATCH 00/12] add syscall tracepoints V3 - s390 arch u ..., Hendrik Brueckner, (Tue Aug 25, 8:38 am)
Re: [PATCH 08/12] add trace events for each syscall entry/exit, Hendrik Brueckner, (Tue Aug 25, 9:02 am)
Re: [PATCH 08/12] add trace events for each syscall entry/exit, Mathieu Desnoyers, (Tue Aug 25, 9:20 am)
Re: [PATCH 08/12] add trace events for each syscall entry/exit, Frederic Weisbecker, (Tue Aug 25, 9:59 am)
Re: [PATCH 08/12] add trace events for each syscall entry/exit, Frederic Weisbecker, (Tue Aug 25, 10:31 am)
Re: [PATCH 08/12] add trace events for each syscall entry/exit, Mathieu Desnoyers, (Tue Aug 25, 11:15 am)
Re: [PATCH 08/12] add trace events for each syscall entry/exit, Mathieu Desnoyers, (Tue Aug 25, 11:31 am)
Re: [PATCH 08/12] add trace events for each syscall entry/exit, Frederic Weisbecker, (Tue Aug 25, 12:42 pm)
Re: [PATCH 08/12] add trace events for each syscall entry/exit, Mathieu Desnoyers, (Tue Aug 25, 12:51 pm)
Re: [PATCH 00/12] add syscall tracepoints V3 - s390 arch u ..., Frederic Weisbecker, (Tue Aug 25, 12:52 pm)
Re: [PATCH 08/12] add trace events for each syscall entry/exit, Frederic Weisbecker, (Tue Aug 25, 2:40 pm)
Re: [PATCH 08/12] add trace events for each syscall entry/exit, Martin Schwidefsky, (Tue Aug 25, 3:04 pm)
Re: [PATCH 08/12] add trace events for each syscall entry/exit, Frederic Weisbecker, (Tue Aug 25, 3:09 pm)
Re: [PATCH 08/12] add trace events for each syscall entry/exit, Frederic Weisbecker, (Tue Aug 25, 5:19 pm)
Re: [PATCH 08/12] add trace events for each syscall entry/exit, Mathieu Desnoyers, (Tue Aug 25, 5:42 pm)
Re: [PATCH 08/12] add trace events for each syscall entry/exit, Frederic Weisbecker, (Wed Aug 26, 5:32 am)
Re: [PATCH 08/12] add trace events for each syscall entry/exit, Frederic Weisbecker, (Wed Aug 26, 5:35 am)
Re: [PATCH 08/12] add trace events for each syscall entry/exit, Frederic Weisbecker, (Wed Aug 26, 6:30 am)
Re: [PATCH 08/12] add trace events for each syscall entry/exit, Frederic Weisbecker, (Wed Aug 26, 6:53 am)
Re: [PATCH 08/12] add trace events for each syscall entry/exit, Frederic Weisbecker, (Wed Aug 26, 7:27 am)
Re: [PATCH 08/12] add trace events for each syscall entry/exit, Hendrik Brueckner, (Wed Aug 26, 7:41 am)
Re: [PATCH 08/12] add trace events for each syscall entry/exit, Frederic Weisbecker, (Wed Aug 26, 9:14 am)
Re: [PATCH 00/12] add syscall tracepoints V3 - s390 arch u ..., Frederic Weisbecker, (Wed Aug 26, 9:53 am)
Re: [PATCH 08/12] add trace events for each syscall entry/exit, Mathieu Desnoyers, (Wed Aug 26, 10:08 am)
Re: [PATCH 08/12] add trace events for each syscall entry/exit, Mathieu Desnoyers, (Wed Aug 26, 10:10 am)
Re: [PATCH 08/12] add trace events for each syscall entry/exit, Mathieu Desnoyers, (Wed Aug 26, 10:11 am)
Re: [PATCH 08/12] add trace events for each syscall entry/exit, Christoph Hellwig, (Wed Aug 26, 11:41 am)
Re: [PATCH 08/12] add trace events for each syscall entry/exit, Christoph Hellwig, (Wed Aug 26, 11:42 am)
Re: [PATCH 08/12] add trace events for each syscall entry/exit, Mathieu Desnoyers, (Wed Aug 26, 12:01 pm)
[PATCH]: tracing: s390 arch updates for tracing syscalls, Hendrik Brueckner, (Thu Aug 27, 12:27 am)
[tip:tracing/core] tracing: Add syscall tracepoints - s390 ..., tip-bot for Hendrik ..., (Fri Aug 28, 5:27 am)
[tip:tracing/core] tracing: Check invalid syscall nr while ..., tip-bot for Hendrik ..., (Fri Aug 28, 5:27 am)
[tip:tracing/core] tracing: Don't trace kernel thread syscalls, tip-bot for Hendrik ..., (Fri Aug 28, 5:28 am)