Re: [PATCH] Add initcall_blacklist kernel parameter [v5]

From: Andrew Morton
Date: Tue Apr 15 2014 - 16:05:06 EST


On Tue, 15 Apr 2014 11:15:58 -0400 Prarit Bhargava <prarit@xxxxxxxxxx> wrote:

> When a module is built into the kernel the module_init() function becomes
> an initcall. Sometimes debugging through dynamic debug can help,
> however, debugging built in kernel modules is typically done by changing
> the .config, recompiling, and booting the new kernel in an effort to
> determine exactly which module caused a problem.
>
> This patchset can be useful stand-alone or combined with initcall_debug.
> There are cases where some initcalls can hang the machine before the
> console can be flushed, which can make initcall_debug output
> inaccurate. Having the ability to skip initcalls can help further
> debugging of these scenarios.
>
> Usage: initcall_blacklist=<list of comma separated initcalls>
>
> ex) added "initcall_blacklist=sgi_uv_sysfs_init" as a kernel parameter and
> the log contains:
>
> blacklisted initcall sgi_uv_sysfs_init

I think "blacklisting initcall sgi_uv_sysfs_init" makes more sense here.

> ...
> ...
> function sgi_uv_sysfs_init returning without executing

And this should be "blacklisted sgi_uv_sysfs_init initcall" or
"initcall sgi_uv_sysfs_init blacklisted" (isn't English weird).

I did the below and fixed up the changelog to suit:

--- a/init/main.c~init-mainc-add-initcall_blacklist-kernel-parameter-fix
+++ a/init/main.c
@@ -684,7 +684,7 @@ static int __init initcall_blacklist(cha
do {
str_entry = strsep(&str, ",");
if (str_entry) {
- pr_debug("initcall blacklisted %s\n", str_entry);
+ pr_debug("blacklisting initcall %s\n", str_entry);
entry = alloc_bootmem(sizeof(*entry));
entry->buf = alloc_bootmem(strlen(str_entry) + 1);
strcpy(entry->buf, str_entry);
_

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/