mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: jim.cromie@gmail.com
To: jbaron@redhat.com
Cc: greg@kroah.com, joe@perches.com, bart.vanassche@gmail.com,
	linux-kernel@vger.kernel.org, Jim Cromie <jim.cromie@gmail.com>
Subject: [PATCH 21/25] dynamic_debug: handle $module.dyndbg="+mfp" boot-line args
Date: Wed, 30 Nov 2011 12:56:50 -0700	[thread overview]
Message-ID: <1322683014-13285-22-git-send-email-jim.cromie@gmail.com> (raw)
In-Reply-To: <1322683014-13285-1-git-send-email-jim.cromie@gmail.com>

From: Jim Cromie <jim.cromie@gmail.com>

Handle explicit flag-arg given on boot-line, defaulting to "+p"
otherwize.  Note that the operator char is required in the flag-arg,
so these are legal, and the same (the latter being slightly odd):

  $module.dyndbg="=p"	# set p flag, clear others
  $module.dyndbg==p	# same

Note that modprobed modules will receive flag-args from the boot-line
*after* those given in /etc/modprobe.d/*.  This may be surprising;
boot-line args can alter previous flag settings, but is defensible, as
former are invocation specific, whereas latter are system-wide.
Options given on modprobe invocation are last, and correctly override
all previous flag settings.

Signed-off-by: Jim Cromie <jim.cromie@gmail.com>
---
 Documentation/dynamic-debug-howto.txt |   11 ++++++-----
 lib/dynamic_debug.c                   |    6 ++++--
 2 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/Documentation/dynamic-debug-howto.txt b/Documentation/dynamic-debug-howto.txt
index 8363a56..56e496a 100644
--- a/Documentation/dynamic-debug-howto.txt
+++ b/Documentation/dynamic-debug-howto.txt
@@ -250,8 +250,9 @@ lost.  Instead, a "dyndbg" module parameter can be passed:
 	  module.dyndbg=+mfp
 	  module.dyndbg	# defaults to +p
 
-	- as an ordinary module parameter via modprobe modprobe module
-	  $> modprobe module dyndbg +pmfl # defaults to +p
+	- as an ordinary module parameter via modprobe
+	  modprobe module dyndbg=+pmfl
+	  modprobe module dyndbg # defaults to +p
 
 	- or the parameter can be used permanently via modprobe.conf(.local)
 	  options module dyndbg=+pmflt
@@ -261,8 +262,8 @@ The $modname.dyndbg="value" should exclude "module $modname", as the
 $modname is taken from the param-name, and only 1 spec of each type is
 allowed.
 
-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 dyndbg option is not implemented as an ordinary module parameter
+and thus will not show up in /sys/module/module_name/parameters/dyndbg
 The settings can be reverted later via the sysfs interface if the
 debug messages are no longer needed:
 
@@ -272,7 +273,7 @@ $module.dyndbg="..." on boot-line works on built-in modules as well as
 those loaded by modprobe (from either early or normal userspace), and
 somewhat overlaps debug_query functionality.
 
-Modprobed modules get ddebug flags given on boot-line after those
+Modprobed modules get dyndbg flags given on boot-line after those
 given via modprobe (either explicitly, or from /etc/modprobe.d/*).
 This can surprise if boot-line arg subtracts flags.
 
diff --git a/lib/dynamic_debug.c b/lib/dynamic_debug.c
index afc9bd3..9dcbb61 100644
--- a/lib/dynamic_debug.c
+++ b/lib/dynamic_debug.c
@@ -913,7 +913,8 @@ void ddebug_module_parse_args(const char *modname, char* modargs,
 		if (verbose)
 			pr_info("Param: %s, val: %s\n", param, val);
 
-		snprintf(ddebug, DDEBUG_STRING_SIZE, "module %s +p", modname);
+		snprintf(ddebug, DDEBUG_STRING_SIZE, "module %s %s",
+			modname, (val ? val : "+p"));
 		ddebug_exec_queries(ddebug);
 	}
 	kfree(arg_dup_ptr);
@@ -944,7 +945,8 @@ static __init void ddebug_boot_parse_args(void)
 		if (verbose)
 			pr_info("Param: %s, val: %s\n", param, val);
 
-		snprintf(ddebug, DDEBUG_STRING_SIZE, "module %s +p", module);
+		snprintf(ddebug, DDEBUG_STRING_SIZE, "module %s %s",
+			module, (val ? val : "+p"));
 		ddebug_exec_queries(ddebug);
 	}
 }
-- 
1.7.7.3


  parent reply	other threads:[~2011-11-30 19:58 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-11-30 19:56 [patch 00/25] dynamic-debug during module initialization jim.cromie
2011-11-30 19:56 ` [PATCH 01/25] kernel/module.c: fix compile err, warnings under ifdef DEBUGP jim.cromie
2011-11-30 19:56 ` [PATCH 02/25] dynamic_debug: fix whitespace complaints from scripts/cleanfile jim.cromie
2011-11-30 19:56 ` [PATCH 03/25] dynamic_debug: drop enabled field from struct _ddebug, use _DPRINTK_FLAGS_PRINT jim.cromie
2011-11-30 19:56 ` [PATCH 04/25] dynamic_debug: make dynamic-debug supersede DEBUG ccflag jim.cromie
2011-11-30 22:03   ` Jason Baron
2011-11-30 22:16     ` Joe Perches
2011-12-01  0:26       ` Jim Cromie
2011-11-30 19:56 ` [PATCH 05/25] dynamic_debug: change verbosity at runtime jim.cromie
2011-11-30 19:56 ` [PATCH 06/25] dynamic_debug: replace strcpy with strlcpy, in ddebug_setup_query() jim.cromie
2011-11-30 19:56 ` [PATCH 07/25] dynamic_debug: pr_err() call should not depend upon verbosity jim.cromie
2011-11-30 19:56 ` [PATCH 08/25] dynamic_debug: drop explicit !=NULL checks jim.cromie
2011-11-30 19:56 ` [PATCH 09/25] dynamic_debug: describe_flags with '=[pmflt_]*' jim.cromie
2011-11-30 19:56 ` [PATCH 10/25] dynamic_debug: tighten up error checking on debug queries jim.cromie
2011-11-30 19:56 ` [PATCH 11/25] dynamic_debug: early return if _ddebug table is empty jim.cromie
2011-11-30 19:56 ` [PATCH 12/25] dynamic_debug: reduce lineno field to a saner 18 bits jim.cromie
2011-11-30 19:56 ` [PATCH 13/25] dynamic_debug: chop off comments in ddebug_tokenize jim.cromie
2011-11-30 19:56 ` [PATCH 14/25] dynamic_debug: enlarge command/query write buffer jim.cromie
2011-11-30 19:56 ` [PATCH 15/25] dynamic_debug: add trim_prefix() to provide source-root relative paths jim.cromie
2011-11-30 19:56 ` [PATCH 16/25] dynamic_debug: factor vpr_info_dq out of ddebug_parse_query jim.cromie
2011-11-30 19:56 ` [PATCH 17/25] dynamic_debug: process multiple debug-queries on a line jim.cromie
2011-11-30 19:56 ` [PATCH 18/25] dynamic_debug: Introduce global fake module param module.ddebug jim.cromie
2011-12-01  2:19   ` Rusty Russell
2011-12-01  8:15     ` Jim Cromie
2011-12-02  0:50       ` Rusty Russell
2011-11-30 19:56 ` [PATCH 19/25] pnp: if CONFIG_DYNAMIC_DEBUG, use pnp.ddebug instead of pnp.debug jim.cromie
2011-12-01 11:15   ` Thomas Renninger
2011-12-05  5:42     ` Jim Cromie
2011-12-05 14:47       ` Thomas Renninger
2011-12-05 19:15         ` Jim Cromie
2011-12-05 21:44           ` Thomas Renninger
2011-11-30 19:56 ` [PATCH 20/25] dynamic_debug: rename ddebug param to dyndbg, plus minor tweaks jim.cromie
2011-11-30 19:56 ` jim.cromie [this message]
2011-11-30 19:56 ` [PATCH 22/25] dynamic_debug: add modname arg to exec_query callchain jim.cromie
2011-11-30 19:56 ` [PATCH 23/25] dynamic_debug: allow wildcard modname in boot-line query jim.cromie
2011-11-30 19:56 ` [PATCH 24/25] kernel/module: replace DEBUGP with pr_debug jim.cromie
2011-11-30 19:56 ` [PATCH 25/25] dynamic_debug: protect "dyndbg" fake module param name at compile-time jim.cromie
2011-12-01 21:20 ` [patch 00/25] dynamic-debug during module initialization Jason Baron
2011-12-03 15:56   ` Jim Cromie
     [not found] ` <201203051614.29457.trenn@suse.de>
     [not found]   ` <CAJfuBxw=kL5j2VNxXLqiY3ftY3n7MQnY5SkfB09Nscyw8Fh9Zw@mail.gmail.com>
     [not found]     ` <201203061002.57810.trenn@suse.de>
     [not found]       ` <20120306144754.GA2421@redhat.com>
2012-03-07  0:30         ` [PATCH 18/25] dynamic_debug: Introduce global fake module param module.ddebug Rusty Russell

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=1322683014-13285-22-git-send-email-jim.cromie@gmail.com \
    --to=jim.cromie@gmail.com \
    --cc=bart.vanassche@gmail.com \
    --cc=greg@kroah.com \
    --cc=jbaron@redhat.com \
    --cc=joe@perches.com \
    --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

all inboxes | Powered by JetHome®