mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [patch] enhance initcall_debug, measure latency
@ 2007-04-01 18:16 Ingo Molnar
  2007-04-01 18:28 ` Ingo Molnar
  2007-04-02  5:50 ` Andrew Morton
  0 siblings, 2 replies; 7+ messages in thread
From: Ingo Molnar @ 2007-04-01 18:16 UTC (permalink / raw)
  To: linux-kernel; +Cc: Andrew Morton

Subject: [patch] enhance initcall_debug, measure latency
From: Ingo Molnar <mingo@elte.hu>

enhance the initcall_debug boot option:

 - measure the time the initcall took to execute and report
   it in units of milliseconds.

 - show the return code of initcalls (useful to see failures and
   to make sure that an initcall hung)

Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
 init/main.c |   17 +++++++++++++++++
 1 file changed, 17 insertions(+)

Index: linux/init/main.c
===================================================================
--- linux.orig/init/main.c
+++ linux/init/main.c
@@ -685,6 +685,7 @@ static void __init do_initcalls(void)
 	int count = preempt_count();
 
 	for (call = __initcall_start; call < __initcall_end; call++) {
+		ktime_t t0, t1, delta;
 		char *msg = NULL;
 		char msgbuf[40];
 		int result;
@@ -694,10 +695,26 @@ static void __init do_initcalls(void)
 			print_fn_descriptor_symbol(": %s()",
 					(unsigned long) *call);
 			printk("\n");
+			t0 = ktime_get();
 		}
 
 		result = (*call)();
 
+		if (initcall_debug) {
+			t1 = ktime_get();
+			delta = ktime_sub(t1, t0);
+
+			printk("initcall 0x%p", *call);
+			print_fn_descriptor_symbol(": %s()",
+					(unsigned long) *call);
+			printk(" returned %d.\n", result);
+
+			printk("initcall 0x%p ran for %Ld msecs: ",
+				*call, delta.tv64 >> 20);
+			print_fn_descriptor_symbol("%s()\n",
+				(unsigned long) *call);
+		}
+
 		if (result && result != -ENODEV && initcall_debug) {
 			sprintf(msgbuf, "error code %d", result);
 			msg = msgbuf;

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2007-04-02  7:22 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-04-01 18:16 [patch] enhance initcall_debug, measure latency Ingo Molnar
2007-04-01 18:28 ` Ingo Molnar
2007-04-02  6:04   ` Ingo Molnar
2007-04-02  8:00   ` Andi Kleen
2007-04-02  7:09     ` Ingo Molnar
2007-04-02  7:22       ` Andi Kleen
2007-04-02  5:50 ` Andrew Morton

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®