public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Konstantin Khlebnikov <khlebnikov@openvz.org>
To: <linux-kernel@vger.kernel.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Subject: [PATCH] initcall: add config option for compiling initcall_debug
Date: Sun, 27 Mar 2011 15:55:06 +0400	[thread overview]
Message-ID: <20110327115506.14008.17733.stgit@localhost6> (raw)

Add bool config option CONFIG_INITCALL_DEBUG for compiling initcalls debuging,
make it on by default to keep current behaviour.

With CONFIG_INITCALL_DEBUG=n bloat-o-meter shows:

add/remove: 0/7 grow/shrink: 3/10 up/down: 88/-1448 (-1360)
function                                     old     new   delta
device_resume                                350     404     +54
__device_suspend                             331     363     +32
device_resume_noirq                          230     232      +2
kernel_init                                  355     354      -1
initcall_debug                                 4       -      -4
__param_str_initcall_debug                    15       -     -15
dpm_suspend                                  431     415     -16
syscore_suspend                              280     250     -30
syscore_shutdown                             123      93     -30
__param_initcall_debug                        32       -     -32
syscore_resume                               215     173     -42
static.initcall_debug_start                   71       -     -71
static.initcall_debug_report                 102       -    -102
legacy_resume                                129       -    -129
async_synchronize_cookie_domain              286     152    -134
legacy_suspend                               135       -    -135
async_run_entry_fn                           348     188    -160
do_one_initcall                              364     197    -167
pm_op                                        536     366    -170
pm_noirq_op                                  576     366    -210

Signed-off-by: Konstantin Khlebnikov <khlebnikov@openvz.org>
---
 Documentation/kernel-parameters.txt |    2 +-
 include/linux/init.h                |    4 ++++
 init/main.c                         |    2 ++
 kernel/async.c                      |    4 +---
 lib/Kconfig.debug                   |    7 +++++++
 5 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index c357a31..ea3843a 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -970,7 +970,7 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
 
 	initcall_debug	[KNL] Trace initcalls as they are executed.  Useful
 			for working out where the kernel is dying during
-			startup.
+			startup. This depend on CONFIG_INITCALL_DEBUG option.
 
 	initrd=		[BOOT] Specify the location of the initial ramdisk
 
diff --git a/include/linux/init.h b/include/linux/init.h
index 577671c..e2005ab 100644
--- a/include/linux/init.h
+++ b/include/linux/init.h
@@ -156,7 +156,11 @@ void prepare_namespace(void);
 
 extern void (*late_time_init)(void);
 
+#ifdef CONFIG_INITCALL_DEBUG
 extern int initcall_debug;
+#else
+# define initcall_debug	0
+#endif
 
 #endif
   
diff --git a/init/main.c b/init/main.c
index 4a9479e..0902999 100644
--- a/init/main.c
+++ b/init/main.c
@@ -636,8 +636,10 @@ static void __init do_ctors(void)
 #endif
 }
 
+#ifdef CONFIG_INITCALL_DEBUG
 int initcall_debug;
 core_param(initcall_debug, initcall_debug, bool, 0644);
+#endif
 
 static char msgbuf[64];
 
diff --git a/kernel/async.c b/kernel/async.c
index 3d8220a..8801e1e 100644
--- a/kernel/async.c
+++ b/kernel/async.c
@@ -48,6 +48,7 @@ asynchronous and synchronous parts of the kernel.
 
 */
 
+#include <linux/init.h>
 #include <linux/async.h>
 #include <linux/module.h>
 #include <linux/wait.h>
@@ -77,9 +78,6 @@ static DECLARE_WAIT_QUEUE_HEAD(async_done);
 
 static atomic_t entry_count;
 
-extern int initcall_debug;
-
-
 /*
  * MUST be called with the lock held!
  */
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index df9234c..ebc1357 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -807,6 +807,13 @@ config DEBUG_CREDENTIALS
 
 	  If unsure, say N.
 
+config INITCALL_DEBUG
+	bool "Debug kernel initcalls"
+	default y
+	help
+	  This build option allow you trace initcalls after
+	  adding "initcall_debug" to kernel command line.
+
 #
 # Select this config option from the architecture Kconfig, if it
 # it is preferred to always offer frame pointers as a config


             reply	other threads:[~2011-03-27 11:55 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-27 11:55 Konstantin Khlebnikov [this message]
2011-03-27 17:43 ` [PATCH] initcall: add config option for compiling initcall_debug Randy Dunlap
2011-03-28  7:53   ` Konstantin Khlebnikov
2011-03-28  7:51 ` [PATCH v2 typo-fixed] " Konstantin Khlebnikov
2011-03-29 22:57   ` Andrew Morton
2011-03-30 22:31     ` Rafael J. Wysocki

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=20110327115506.14008.17733.stgit@localhost6 \
    --to=khlebnikov@openvz.org \
    --cc=akpm@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    /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