public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Steven Rostedt <rostedt@goodmis.org>
To: linux-kernel@vger.kernel.org
Cc: Ingo Molnar <mingo@kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Frederic Weisbecker <fweisbec@gmail.com>,
	Thomas Gleixner <tglx@linutronix.de>
Subject: [PATCH 02/22] tracing: Allow tracers to start at core initcall
Date: Fri, 02 Nov 2012 09:32:54 -0400	[thread overview]
Message-ID: <20121102133458.193210698@goodmis.org> (raw)
In-Reply-To: 20121102133251.998500247@goodmis.org

[-- Attachment #1: Type: text/plain, Size: 3829 bytes --]

From: Steven Rostedt <srostedt@redhat.com>

There's times during debugging that it is helpful to see traces of early
boot functions. But the tracers are initialized at device_initcall()
which is quite late during the boot process. Setting the kernel command
line parameter ftrace=function will not show anything until the function
tracer is initialized. This prevents being able to trace functions before
device_initcall().

There's no reason that the tracers need to be initialized so late in the
boot process. Move them up to core_initcall() as they still need to come
after early_initcall() which initializes the tracing buffers.

Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
 kernel/trace/ftrace.c                |    4 ++--
 kernel/trace/trace_branch.c          |    2 +-
 kernel/trace/trace_functions.c       |    3 +--
 kernel/trace/trace_functions_graph.c |    2 +-
 kernel/trace/trace_irqsoff.c         |    2 +-
 kernel/trace/trace_sched_wakeup.c    |    2 +-
 6 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
index 60ad606..4451aa3 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -2868,7 +2868,7 @@ static int __init ftrace_mod_cmd_init(void)
 {
 	return register_ftrace_command(&ftrace_mod_cmd);
 }
-device_initcall(ftrace_mod_cmd_init);
+core_initcall(ftrace_mod_cmd_init);
 
 static void function_trace_probe_call(unsigned long ip, unsigned long parent_ip,
 				      struct ftrace_ops *op, struct pt_regs *pt_regs)
@@ -4055,7 +4055,7 @@ static int __init ftrace_nodyn_init(void)
 	ftrace_enabled = 1;
 	return 0;
 }
-device_initcall(ftrace_nodyn_init);
+core_initcall(ftrace_nodyn_init);
 
 static inline int ftrace_init_dyn_debugfs(struct dentry *d_tracer) { return 0; }
 static inline void ftrace_startup_enable(int command) { }
diff --git a/kernel/trace/trace_branch.c b/kernel/trace/trace_branch.c
index 8d3538b..bd3e0ee 100644
--- a/kernel/trace/trace_branch.c
+++ b/kernel/trace/trace_branch.c
@@ -199,7 +199,7 @@ __init static int init_branch_tracer(void)
 	}
 	return register_tracer(&branch_trace);
 }
-device_initcall(init_branch_tracer);
+core_initcall(init_branch_tracer);
 
 #else
 static inline
diff --git a/kernel/trace/trace_functions.c b/kernel/trace/trace_functions.c
index 618dcf8..bb227e3 100644
--- a/kernel/trace/trace_functions.c
+++ b/kernel/trace/trace_functions.c
@@ -411,5 +411,4 @@ static __init int init_function_trace(void)
 	init_func_cmd_traceon();
 	return register_tracer(&function_trace);
 }
-device_initcall(init_function_trace);
-
+core_initcall(init_function_trace);
diff --git a/kernel/trace/trace_functions_graph.c b/kernel/trace/trace_functions_graph.c
index 99b4378..a84b558 100644
--- a/kernel/trace/trace_functions_graph.c
+++ b/kernel/trace/trace_functions_graph.c
@@ -1474,4 +1474,4 @@ static __init int init_graph_trace(void)
 	return register_tracer(&graph_trace);
 }
 
-device_initcall(init_graph_trace);
+core_initcall(init_graph_trace);
diff --git a/kernel/trace/trace_irqsoff.c b/kernel/trace/trace_irqsoff.c
index d98ee82..11edebd 100644
--- a/kernel/trace/trace_irqsoff.c
+++ b/kernel/trace/trace_irqsoff.c
@@ -698,4 +698,4 @@ __init static int init_irqsoff_tracer(void)
 
 	return 0;
 }
-device_initcall(init_irqsoff_tracer);
+core_initcall(init_irqsoff_tracer);
diff --git a/kernel/trace/trace_sched_wakeup.c b/kernel/trace/trace_sched_wakeup.c
index 02170c0..2f6af78 100644
--- a/kernel/trace/trace_sched_wakeup.c
+++ b/kernel/trace/trace_sched_wakeup.c
@@ -637,4 +637,4 @@ __init static int init_wakeup_tracer(void)
 
 	return 0;
 }
-device_initcall(init_wakeup_tracer);
+core_initcall(init_wakeup_tracer);
-- 
1.7.10.4



[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 490 bytes --]

  parent reply	other threads:[~2012-11-02 13:40 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-02 13:32 [PATCH 00/22] [GIT PULL][3.8] tracing: updates Steven Rostedt
2012-11-02 13:32 ` [PATCH 01/22] tracing: Replace strict_strto* with kstrto* Steven Rostedt
2012-11-02 13:32 ` Steven Rostedt [this message]
2012-11-02 13:32 ` [PATCH 03/22] tracing: Change tracers integer flags to bool Steven Rostedt
2012-11-02 13:32 ` [PATCH 04/22] ring-buffer: Add a dropped events counter Steven Rostedt
2012-11-02 13:32 ` [PATCH 05/22] tracing: Expand ring buffer when trace_printk() is used Steven Rostedt
2012-11-02 13:32 ` [PATCH 06/22] tracing: Enable comm recording if " Steven Rostedt
2012-11-02 13:32 ` [PATCH 07/22] tracing: Have tracing_sched_wakeup_trace() use standard unlock_commit Steven Rostedt
2012-11-02 13:33 ` [PATCH 08/22] tracing: Cache comms only after an event occurred Steven Rostedt
2012-11-02 13:33 ` [PATCH 09/22] tracing: Trivial cleanup Steven Rostedt
2012-11-02 13:33 ` [PATCH 10/22] tracing: Cleanup unnecessary function declarations Steven Rostedt
2012-11-02 13:33 ` [PATCH 11/22] linux/kernel.h: Remove duplicate trace_printk declaration Steven Rostedt
2012-11-02 13:33 ` [PATCH 12/22] tracing,x86: Add a TSC trace_clock Steven Rostedt
2012-11-02 13:33 ` [PATCH 13/22] tracing: Reset ring buffer when changing trace_clocks Steven Rostedt
2012-11-02 13:33 ` [PATCH 14/22] tracing: Format non-nanosec times from tsc clock without a decimal point Steven Rostedt
2012-11-02 13:33 ` [PATCH 15/22] ring-buffer: Change unsigned long type of ring_buffer_oldest_event_ts() to u64 Steven Rostedt
2012-11-02 13:33 ` [PATCH 16/22] tracing: Show raw time stamp on stats per cpu using counter or tsc mode for trace_clock Steven Rostedt
2012-11-02 13:33 ` [PATCH 17/22] tracing: Separate open function from set_event and available_events Steven Rostedt
2012-11-02 13:33 ` [PATCH 18/22] tracing: Remove unused function unregister_tracer() Steven Rostedt
2012-11-02 13:33 ` [PATCH 19/22] tracing: Make tracing_enabled be equal to tracing_on Steven Rostedt
2012-11-02 13:33 ` [PATCH 20/22] tracing: Remove deprecated tracing_enabled file Steven Rostedt
2012-11-02 13:33 ` [PATCH 21/22] tracing: Use irq_work for wake ups and remove *_nowake_*() functions Steven Rostedt
2012-11-02 13:33 ` [PATCH 22/22] tracing: Add trace_options kernel command line parameter Steven Rostedt
2012-11-02 14:08 ` [PATCH 00/22] [GIT PULL][3.8] tracing: updates Steven Rostedt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20121102133458.193210698@goodmis.org \
    --to=rostedt@goodmis.org \
    --cc=akpm@linux-foundation.org \
    --cc=fweisbec@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox