Dynamic Debug: Introduce global fake module param module.ddebug
Subsystems (3)
PATCH 1/1 Dynamic Debug: Introduce global fake module param module.ddebug
This patch is based on 2.6.35-rc5 + this patchset I posted recently:
[patch 0/3] Dynamic Debug providing early boot debug messages via boot parameter
It would be great to see these getting merged into 2.6.36...
Thanks,
Thomas
-----
Dynamic Debug: Introduce global fake module param module.ddebug
Dynamic Debug allows enabling of pr_debug or KERN_DEBUG messages at runtime. This is controlled via /sys/kernel/debug/dynamic_debug/control. One major drawback is that the whole initialization of a module cannot be tracked, because ddebug is only aware of debug strings of loaded modules. But this is the most interesting part...
This patch introduces a fake module parameter module.ddebug(not shown in /sys/module/*/parameters, thus it does not use any resources/memory).
If a module gets ddebug passed as a module parameter (e.g. via module.ddebug kernel boot param or via "modprobe module ddebug"), all debug strings of this module get activated by issuing "module module_name +p" internally (not via sysfs) when the module gets loaded.
Possible enhancements for the future if ddebug might get extended with further flags:
module.ddebug=flags
Then module.ddebug="p" would be the same as module.ddebug, but if there is a "x" ddebug flag added, one could pass:
module.ddebug="xp"
which would result in such a dynamic debug query:
module module_name +xp
One not handled side-effect of this patch:
Modules must not use "ddebug" module parameter or it will get ignored. I tried to find a compile time check, but I could not see how that is possible. Possibly a run-time check or at least documentation (where?) should get added, that "ddebug" must not get used as a module parameter.
Tested with:
options hp-wmi ddebug
in modprobe.conf.local
-> works and pr_debug messages issued at module initialization time show up. Also "p" flag gets set for the whole hp-wmi module debug strings:
grep hp-wmi /sys/../dynamic_debug/control
--- include/linux/dynamic_debug.h | 5 +++++ kernel/params.c | 9 ++++++++- lib/dynamic_debug.c | 2 +- 3 files changed, 14 insertions(+), 2 deletions(-)
kernel/params.c +8 -1
@@ -24,6 +24,7 @@#include <linux/err.h> #include <linux/slab.h> #include <linux/ctype.h> +#include <linux/dynamic_debug.h> #if 0 #define DEBUGP printk
@@ -132,7 +133,7 @@ int parse_args(const char *name,unsigned num, int (*unknown)(char *param, char *val)) { - char *param, *val; + char *param, *val, ddebug[1024];DEBUGP ("Parsing ARGS: %s\n" , args);
@@ -144,6 +145,12 @@ int parse_args(const char *name,int irq_was_disabled; args =next_arg (args, ¶m, &val); +if (parameq (param,"ddebug" )) { +sprintf (ddebug,"module %s +p" , name); +ddebug_exec_query (ddebug); +continue ; + } + irq_was_disabled =irqs_disabled (); ret =parse_one (param, val, params, num, unknown);if (irq_was_disabled && !irqs_disabled ()) {
include/linux/dynamic_debug.h +5 -0
@@ -41,6 +41,7 @@ int ddebug_add_module(struct _ddebug *ta#if defined(CONFIG_DYNAMIC_DEBUG )extern int ddebug_remove_module (const char *mod_name); +extern int ddebug_exec_query (char *query_string);#define __dynamic_dbg_enabled (dd) ({ \ int __ret = 0; \
@@ -77,6 +78,10 @@ static inline int ddebug_remove_module(c {return 0 ; } +static inline int ddebug_exec_query (char *query_string) +{ +return 0 ; +}#define dynamic_pr_debug (fmt, ...) \ do { if (0) printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__); } while (0)
lib/dynamic_debug.c +1 -1
@@ -429,7 +429,7 @@ static int ddebug_parse_flags(const charreturn 0 ; } -static int ddebug_exec_query (char *query_string) +int ddebug_exec_query (char *query_string) {unsigned int flags =0 , mask =0 ;struct ddebug_query query;
Quoted 4 lines · On Monday 26 July 2010 14:14:30 Thomas Renninger wrote:
This patch is based on 2.6.35-rc5 + this patchset I posted recently:
[patch 0/3] Dynamic Debug providing early boot debug messages via boot parameterIt would be great to see these getting merged into 2.6.36...
and this time with some Documentation added...
Please use this patch instead of my first post.
Thanks,
Thomas
----------
Dynamic Debug: Introduce global fake module param module.ddebug
Dynamic Debug allows enabling of pr_debug or KERN_DEBUG messages at runtime. This is controlled via /sys/kernel/debug/dynamic_debug/control. One major drawback is that the whole initialization of a module cannot be tracked, because ddebug is only aware of debug strings of loaded modules. But this is the most interesting part...
This patch introduces a fake module parameter module.ddebug(not shown in /sys/module/*/parameters, thus it does not use any resources/memory).
If a module passes ddebug as a module parameter (e.g. via module.ddebug kernel boot param or via "modprobe module ddebug"), all debug strings of this module get activated by issuing "module module_name +p" internally (not via sysfs) when the module gets loaded.
Possible enhancements for the future if ddebug might get extended with further flags:
module.ddebug=flags
Then module.ddebug="p" would be the same as module.ddebug, but if there is a "x" ddebug flag added, one could pass:
module.ddebug="xp"
which would result in such a dynamic debug query:
module module_name +xp
One not handled side-effect of this patch:
Modules must not use "ddebug" module parameter or it will get ignored. I tried to find a compile time check, but I could not see how that is possible. Possibly a run-time check or at least documentation (where?) should get added, that "ddebug" must not get used as a module parameter.
Tested with:
options hp-wmi ddebug
in modprobe.conf
-> works and pr_debug messages issued at module initialization time show up. Also "p" flag gets set for the whole hp-wmi module:
grep hp-wmi /sys/../dynamic_debug/control
--- Documentation/dynamic-debug-howto.txt | 28 +++++++++++++++++++++++++++- include/linux/dynamic_debug.h | 5 +++++ kernel/params.c | 9 ++++++++- lib/dynamic_debug.c | 2 +- 4 files changed, 41 insertions(+), 3 deletions(-)
Documentation/dynamic-debug-howto.txt +27 -1
@@ -213,7 +213,7 @@ Note also that there is no convenient syntax to remove all the flags at once, you need to use "-psc". -Debug messages during boot process +Debug Messages during Boot Process ================================== To be able to activate debug messages during the boot process,
@@ -232,6 +232,32 @@ PCI (or other devices) initialization also is a hot candidate for using this boot parameter for debugging purposes. +Debug Messages at Module Initialization Time +============================================ + +Enabling debug messages inside a module is only possible if the module itself +is loaded already. If you unload a module, the dynamic debug flags associated +to its debug messages are lost. +Therefore, enabling debug messages that get processed at module initialization +time through the <debugfs>/dynamic_debug/control interface is not possible. +Instead, a "ddebug" module paramter can be passed: + + - via kernel boot parameter: + module.ddebug + + - as an ordinary module parameter via modprobe + modprobe module ddebug + + - or the parameter can be used permanently via modprobe.conf(.local) + options module ddebug + +The ddebug option is not implemented as an ordinary module parameter and thus +will not show up in /sys/module/module_name/parameters/ddebug +The settings can get reverted through the sysfs interface again when the +module got loaded as soon as debug messages are not needed anymore: +echo "module module_name -p" > <debugfs>/dynamic_debug/control +as described in the "Command Language Reference" chapter above. + Examples ========
include/linux/dynamic_debug.h +5 -0
@@ -41,6 +41,7 @@ int ddebug_add_module(struct _ddebug *tab, unsigned int n,#if defined(CONFIG_DYNAMIC_DEBUG )extern int ddebug_remove_module (const char *mod_name); +extern int ddebug_exec_query (char *query_string);#define __dynamic_dbg_enabled (dd) ({ \ int __ret = 0; \
@@ -77,6 +78,10 @@ static inline int ddebug_remove_module(const char *mod) {return 0 ; } +static inline int ddebug_exec_query (char *query_string) +{ +return 0 ; +}#define dynamic_pr_debug (fmt, ...) \ do { if (0) printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__); } while (0)
kernel/params.c +8 -1
@@ -24,6 +24,7 @@#include <linux/err.h> #include <linux/slab.h> #include <linux/ctype.h> +#include <linux/dynamic_debug.h> #if 0 #define DEBUGP printk
@@ -132,7 +133,7 @@ int parse_args(const char *name,unsigned num, int (*unknown)(char *param, char *val)) { - char *param, *val; + char *param, *val, ddebug[1024];DEBUGP ("Parsing ARGS: %s\n" , args);
@@ -144,6 +145,12 @@ int parse_args(const char *name,int irq_was_disabled; args =next_arg (args, ¶m, &val); +if (parameq (param,"ddebug" )) { +sprintf (ddebug,"module %s +p" , name); +ddebug_exec_query (ddebug); +continue ; + } + irq_was_disabled =irqs_disabled (); ret =parse_one (param, val, params, num, unknown);if (irq_was_disabled && !irqs_disabled ()) {
lib/dynamic_debug.c +1 -1
@@ -429,7 +429,7 @@ static int ddebug_parse_flags(const char *str, unsigned int *flagsp,return 0 ; } -static int ddebug_exec_query (char *query_string) +int ddebug_exec_query (char *query_string) {unsigned int flags =0 , mask =0 ;struct ddebug_query query;
Quoted 119 lines · Thomas Renninger
This patch is based on 2.6.35-rc5 + this patchset I posted recently:
[patch 0/3] Dynamic Debug providing early boot debug messages via boot parameterIt would be great to see these getting merged into 2.6.36...
Thanks,
Thomas
-----
Dynamic Debug: Introduce global fake module param module.ddebug
Dynamic Debug allows enabling of
pr_debugorKERN_DEBUGmessages at runtime. This is controlled via/sys/kernel/debug/dynamic_debug/control. One major drawback is that the whole initialization of a module cannot be tracked, because ddebug is only aware of debug strings of loaded modules. But this is the most interesting part...This patch introduces a fake module parameter
module.ddebug(not shown in /sys/module/*/parameters, thus it does not use any resources/memory).If a module gets ddebug passed as a module parameter (e.g. via module.ddebug kernel boot param or via "modprobe module ddebug"), all debug strings of this module get activated by issuing "module
module_name+p" internally (not via sysfs) when the module gets loaded.Possible enhancements for the future if ddebug might get extended with further flags:
module.ddebug=flags
Then module.ddebug="p" would be the same as module.ddebug, but if there is a "x" ddebug flag added, one could pass:
module.ddebug="xp"
which would result in such a dynamic debug query:
modulemodule_name+xpOne not handled side-effect of this patch:
Modules must not use "ddebug" module parameter or it will get ignored. I tried to find a compile time check, but I could not see how that is possible. Possibly a run-time check or at least documentation (where?) should get added, that "ddebug" must not get used as a module parameter.Tested with:
options hp-wmi ddebug
in modprobe.conf.local
-> works andpr_debugmessages issued at module initialization time show up. Also "p" flag gets set for the whole hp-wmi module debug strings:
grep hp-wmi/sys/../dynamic_debug/controlSigned-off-by Thomas Renninger <[email protected]>--- include/linux/dynamic_debug.h | 5 +++++ kernel/params.c | 9 ++++++++- lib/dynamic_debug.c | 2 +- 3 files changed, 14 insertions(+), 2 deletions(-)Index:
linux-platform_drivers/kernel/params.c
===================================================================kernel/params.c +8
-1@@ -24,6 +24,7 @@#include <linux/err.h> #include <linux/slab.h> #include <linux/ctype.h> +#include <linux/dynamic_debug.h> #if 0 #define DEBUGP printk@@ -132,7 +133,7 @@ int parse_args(const char *name,unsigned num, int (*unknown)(char *param, char *val)) { - char *param, *val; + char *param, *val, ddebug[1024];DEBUGP ("Parsing ARGS: %s\n" , args);@@ -144,6 +145,12 @@ int parse_args(const char *name,int irq_was_disabled; args =next_arg (args, ¶m, &val); +if (parameq (param,"ddebug" )) { +sprintf (ddebug,"module %s +p" , name); +ddebug_exec_query (ddebug); +continue ; + } + irq_was_disabled =irqs_disabled (); ret =parse_one (param, val, params, num, unknown);if (irq_was_disabled && !irqs_disabled ()) {Index:
linux-platform_drivers/include/linux/dynamic_debug.h
===================================================================include/linux/dynamic_debug.h +5
-0@@ -41,6 +41,7 @@ int ddebug_add_module(struct _ddebug *ta#if defined(CONFIG_DYNAMIC_DEBUG )extern int ddebug_remove_module (const char *mod_name); +extern int ddebug_exec_query (char *query_string);#define __dynamic_dbg_enabled (dd) ({ \ int __ret = 0; \@@ -77,6 +78,10 @@ static inline int ddebug_remove_module(c {return 0 ; } +static inline int ddebug_exec_query (char *query_string) +{ +return 0 ; +}#define dynamic_pr_debug (fmt, ...) \ do { if (0) printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__); } while (0)Index:
linux-platform_drivers/lib/dynamic_debug.c
===================================================================
lib/dynamic_debug.c static int ddebug_parse_flags(const char · line 435
Quoted 8 lines
lib/dynamic_debug.c +1
-1@@ -429,7 +429,7 @@ static int ddebug_parse_flags(const charreturn 0 ; } -static int ddebug_exec_query (char *query_string) +int ddebug_exec_query (char *query_string) {unsigned int flags =0 , mask =0 ;struct ddebug_query query;
patch looks pretty good to me. I'm not sure how we reserve the 'ddebug' keyword. However, I think its probably ok, if we mention it in 'kernel-parameters.txt' and in the dynamic debug documentation.
Also, ddebug could show up in /sys/module/$(modulename}/parameters/ , but this can probably be done in a followup patch.
Also, if 'ddebug' alone is set on the kernel command line, i'd like to see us enable all debug statements. We could implement this by adding a special 'meta' module to the control file which is just has a module name of of 'All' or something like that. This could also be done in a subsequent patch.
We also need to at least remove the 'dynamic_printk' doc from kernel-parameters.txt.
thanks,
-Jason
Quoted 6 lines · On Thursday 05 August 2010 17:39:10 Jason Baron wrote:
Quoted 5 lines · Thomas Renninger
This patch is based on 2.6.35-rc5 + this patchset I posted recently:
[patch 0/3] Dynamic Debug providing early boot debug messages via boot parameterIt would be great to see these getting merged into 2.6.36...
...
Quoted 2 lines
patch looks pretty good to me. I'm not sure how we reserve the 'ddebug' keyword.
Yep, I also was not sure about that.
Quoted 2 lines
However, I think its probably ok, if we mention it
in 'kernel-parameters.txt' and in the dynamic debug documentation.
I added some documentation to the dynamic debug docu file and posted the patch again (as a reply on my initial post, should be the same mail thread).
Quoted 2 lines
Also, ddebug could show up in /sys/module/$(modulename}/parameters/ , but this can probably be done in a followup patch.
This was intentional.
At the time /sys is available one can also use /sys/kernel/debug/dynamic_debug/control
echo "module my_module_to_debug +p"
>/sys/kernel/debug/dynamic_debug/control
would exactly do the same as /sys/module/$(modulename}/parameters The advantage of not having it, is it saves quite some resources, in fact it uses none.
Otherwise every module would have an addtional parameter added with a sysfs file associated with it with no additional functional gain.
Quoted 5 lines
Also, if 'ddebug' alone is set on the kernel command line, i'd like to see us enable all debug statements. We could implement this by adding a special 'meta' module to the control file which is just has a module name of of 'All' or something like that. This could also be done in a subsequent patch.
Is there a single query which could do it?
If not, possibly a keyword like file/module called "all" could be added. Then you could simply do that by ddebug_query="all +p"
Quoted 2 lines
We also need to at least remove the '
dynamic_printk' doc from kernel-parameters.txt.
Don't know about this one.
So, I have your acked-by for this one?
Let's get this pushed into a tree, with some luck it still could make it into 2.6.36? The other three have been taken by Pekka? He said something about taking them, but I haven't received any confirmation. Ah no, he acked-by them only.
As these are rather general ones, which tree should they go through, possibly Andrew could take them?
I can resubmit, if someone could tell me a list/maintainer that fits best, so that they really make it in...
Thanks,
Thomas
Jason Baron
Acked-byQuoted 30 lines · Thomas Renninger
Quoted 6 lines · On Thursday 05 August 2010 17:39:10 Jason Baron wrote:
Quoted 5 lines · Thomas Renninger
This patch is based on 2.6.35-rc5 + this patchset I posted recently:
[patch 0/3] Dynamic Debug providing early boot debug messages via boot parameterIt would be great to see these getting merged into 2.6.36...
...
Quoted 2 lines
patch looks pretty good to me. I'm not sure how we reserve the 'ddebug' keyword.
Yep, I also was not sure about that.
Quoted 2 lines
However, I think its probably ok, if we mention it
in 'kernel-parameters.txt' and in the dynamic debug documentation.I added some documentation to the dynamic debug docu file and posted the patch again (as a reply on my initial post, should be the same mail thread).
Quoted 2 lines
Also, ddebug could show up in /sys/module/$(modulename}/parameters/ , but this can probably be done in a followup patch.
This was intentional.
At the time /sys is available one can also use/sys/kernel/debug/dynamic_debug/control
echo "modulemy_module_to_debug+p"
>/sys/kernel/debug/dynamic_debug/control
would exactly do the same as /sys/module/$(modulename}/parameters The advantage of not having it, is it saves quite some resources, in fact it uses none.
Otherwise every module would have an addtional parameter added with a sysfs file associated with it with no additional functional gain.
Quoted 6 lines
Quoted 5 lines
Also, if 'ddebug' alone is set on the kernel command line, i'd like to see us enable all debug statements. We could implement this by adding a special 'meta' module to the control file which is just has a module name of of 'All' or something like that. This could also be done in a subsequent patch.
Is there a single query which could do it?
I don't think so.
Quoted 3 lines
If not, possibly a keyword like file/module called "all" could be added. Then you could simply do that by ddebug_query="all +p"
ok. that makes sense. I would make the all mode apply to all future modules that get loaded as well, just to be clear...
Quoted 5 lines
Quoted 2 lines
We also need to at least remove the '
dynamic_printk' doc from kernel-parameters.txt.Don't know about this one.
So, I have your acked-by for this one?
Quoted 5 lines
Let's get this pushed into a tree, with some luck it still could make it into 2.6.36? The other three have been taken by Pekka? He said something about taking them, but I haven't received any confirmation. Ah no, he acked-by them only.
Quoted 8 lines
As these are rather general ones, which tree should they go through, possibly Andrew could take them?
I can resubmit, if someone could tell me a list/maintainer that fits best, so that they really make it in...Thanks,
Thomas
right, originally Greg KH, pulled these into his tree. Greg, can you take a look at pulling these into your tree? So it would be this patch, and the thread:
Subject: [patch 0/3] Dynamic Debug providing early boot debug messages via boot parameter
thanks,
-Jason
Quoted 67 lines · Jason Baron
Quoted 30 lines · Thomas Renninger
Quoted 6 lines · On Thursday 05 August 2010 17:39:10 Jason Baron wrote:
Quoted 5 lines · Thomas Renninger
This patch is based on 2.6.35-rc5 + this patchset I posted recently:
[patch 0/3] Dynamic Debug providing early boot debug messages via boot parameterIt would be great to see these getting merged into 2.6.36...
...
Quoted 2 lines
patch looks pretty good to me. I'm not sure how we reserve the 'ddebug' keyword.
Yep, I also was not sure about that.
Quoted 2 lines
However, I think its probably ok, if we mention it
in 'kernel-parameters.txt' and in the dynamic debug documentation.I added some documentation to the dynamic debug docu file and posted the patch again (as a reply on my initial post, should be the same mail thread).
Quoted 2 lines
Also, ddebug could show up in /sys/module/$(modulename}/parameters/ , but this can probably be done in a followup patch.
This was intentional.
At the time /sys is available one can also use/sys/kernel/debug/dynamic_debug/control
echo "modulemy_module_to_debug+p"
>/sys/kernel/debug/dynamic_debug/control
would exactly do the same as /sys/module/$(modulename}/parameters The advantage of not having it, is it saves quite some resources, in fact it uses none.
Otherwise every module would have an addtional parameter added with a sysfs file associated with it with no additional functional gain.Quoted 6 lines
Quoted 5 lines
Also, if 'ddebug' alone is set on the kernel command line, i'd like to see us enable all debug statements. We could implement this by adding a special 'meta' module to the control file which is just has a module name of of 'All' or something like that. This could also be done in a subsequent patch.
Is there a single query which could do it?
I don't think so.
Quoted 3 lines
If not, possibly a keyword like file/module called "all" could be added. Then you could simply do that by ddebug_query="all +p"
ok. that makes sense. I would make the all mode apply to all future modules that get loaded as well, just to be clear...
Quoted 5 lines
Quoted 2 lines
We also need to at least remove the '
dynamic_printk' doc from kernel-parameters.txt.Don't know about this one.
So, I have your acked-by for this one?
Acked-by Jason Baron <[email protected]>Quoted 12 lines
Let's get this pushed into a tree, with some luck it still could make it into 2.6.36? The other three have been taken by Pekka? He said something about taking them, but I haven't received any confirmation. Ah no, he acked-by them only.
As these are rather general ones, which tree should they go through, possibly Andrew could take them?
I can resubmit, if someone could tell me a list/maintainer that fits best, so that they really make it in...Thanks,
Quoted 7 lines
Quoted 1 line
Thomas
right, originally Greg KH, pulled these into his tree. Greg, can you take a look at pulling these into your tree? So it would be this patch, and the thread:
Subject: [patch 0/3] Dynamic Debug providing early boot debug messages via boot parameter
Ok, I'll queue this up in my tree after the 2.6.36-rc1 merge is over. Can someone resend them to me so I don't loose them?
thanks,
greg k-h
Quoted 41 lines · Thomas Renninger
Quoted 6 lines · On Thursday 05 August 2010 17:39:10 Jason Baron wrote:
Quoted 5 lines · Thomas Renninger
This patch is based on 2.6.35-rc5 + this patchset I posted recently:
[patch 0/3] Dynamic Debug providing early boot debug messages via boot parameterIt would be great to see these getting merged into 2.6.36...
...
Quoted 2 lines
patch looks pretty good to me. I'm not sure how we reserve the 'ddebug' keyword.
Yep, I also was not sure about that.
Quoted 2 lines
However, I think its probably ok, if we mention it
in 'kernel-parameters.txt' and in the dynamic debug documentation.I added some documentation to the dynamic debug docu file and posted the patch again (as a reply on my initial post, should be the same mail thread).
Quoted 2 lines
Also, ddebug could show up in /sys/module/$(modulename}/parameters/ , but this can probably be done in a followup patch.
This was intentional.
At the time /sys is available one can also use/sys/kernel/debug/dynamic_debug/control
echo "modulemy_module_to_debug+p"
>/sys/kernel/debug/dynamic_debug/control
would exactly do the same as /sys/module/$(modulename}/parameters The advantage of not having it, is it saves quite some resources, in fact it uses none.
Otherwise every module would have an addtional parameter added with a sysfs file associated with it with no additional functional gain.Quoted 5 lines
Also, if 'ddebug' alone is set on the kernel command line, i'd like to see us enable all debug statements. We could implement this by adding a special 'meta' module to the control file which is just has a module name of of 'All' or something like that. This could also be done in a subsequent patch.
Is there a single query which could do it?
If not, possibly a keyword like file/module called "all" could be added. Then you could simply do that by ddebug_query="all +p"Quoted 2 lines
We also need to at least remove the '
dynamic_printk' doc from kernel-parameters.txt.
Quoted 7 lines
Don't know about this one.
So, I have your acked-by for this one?
Let's get this pushed into a tree, with some luck it still could make it into 2.6.36? The other three have been taken by Pekka? He said something about taking them, but I haven't received any confirmation. Ah no, he acked-by them only.
It's too late for .36 as none of this has been tested in linux-next yet. How about for .37?
thanks,
greg k-h
Quoted 2 lines · Greg KH
Quoted 1 line · Thomas Renninger
On Thursday 05 August 2010 17:39:10 Jason Baron wrote:
...
Quoted 8 lines
Quoted 5 lines
So, I have your acked-by for this one?
Let's get this pushed into a tree, with some luck it still could make it into 2.6.36? The other three have been taken by Pekka? He said something about taking them, but I haven't received any confirmation. Ah no, he acked-by them only.It's too late for .36 as none of this has been tested in linux-next yet. How about for .37?
No problem. I send you a clean patchset tomorrow.
I have one additional idea I'll try to build in:
Complain if a module uses ddebug as module parameter at module insertion time that this is a reserved keyword/param that must not be used.
I'll leave out lkml, Andrew and Pekka (I thought they could queue these).
Thanks everybody,
Thomas