Test the previously implemented macros on initcall_debug parameter, after setting CONFIG_CMDLINE_PARSE to 'n'. This change is a first example for how knowing the values of kernel parameters at build time can allow GCC constant folding and result in an actually relevant decrease in size. Other types of parameters also need to be handled. Also, at the moment this would only work with default values. For being able to change those defaults and still know their values at compile time, a pre-compiled stand-alone parser should be run on those variables. This will be discussed in a following patch. The variable corresponding to initcall_debug kernel parameter is set by default to false. Even though DEFINE_CORE_PARAM resumes to nothing when CONFIG_CMDLINE_PARSE is not set, we need to use it in main.c so that it is still defined when this option is 'y'. Bloat-o-meter output: add/remove: 0/3 grow/shrink: 0/9 up/down: 0/-385 (-385) function old new delta initcall_debug 1 - -1 pm_init 105 100 -5 __param_str_initcall_debug 15 - -15 __param_initcall_debug 16 - -16 syscore_suspend 247 224 -23 syscore_resume 175 152 -23 syscore_shutdown 80 55 -25 pci_fixup_device 235 198 -37 async_synchronize_cookie_domain 162 116 -46 async_run_entry_fn 178 127 -51 device_shutdown 256 204 -52 do_one_initcall 339 248 -91 Signed-off-by: Iulia Manda <iulia.manda21@xxxxxxxxx> Reviewed-by: Josh Triplett <josh@xxxxxxxxxxxxxxxx> --- include/linux/init.h | 3 ++- init/main.c | 3 +-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/include/linux/init.h b/include/linux/init.h index 2df8e8d..d53f28d 100644 --- a/include/linux/init.h +++ b/include/linux/init.h @@ -3,6 +3,7 @@ #include <linux/compiler.h> #include <linux/types.h> +#include <linux/params.h> /* These macros are used to mark some functions or * initialized data (doesn't apply to uninitialized data) @@ -155,7 +156,7 @@ int __init init_rootfs(void); extern void (*late_time_init)(void); -extern bool initcall_debug; +DECLARE_CORE_PARAM(initcall_debug, false, bool); #endif diff --git a/init/main.c b/init/main.c index 6f0f1c5f..85e9001 100644 --- a/init/main.c +++ b/init/main.c @@ -685,8 +685,7 @@ static void __init do_ctors(void) #endif } -bool initcall_debug; -core_param(initcall_debug, initcall_debug, bool, 0644); +DEFINE_CORE_PARAM(initcall_debug, initcall_debug, false, bool, 0644); #ifdef CONFIG_KALLSYMS struct blacklist_entry { -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-embedded" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html