change current v*pr_info() calls to fit this new scheme:

-1 module add/remove, callsite counts - a few v2s here now
-2 command ingest, splitting
-3 command parsing - many v1s here now
-4 per-site changes - was v2

2 is new, to isolate a problem where a stress-test script (which feeds
large multi-command strings) would produce short writes, truncating
last command and confusing test results.

4 gets per-callsite "changed:" pr-infos, which are very noisy during
stress tests, and obscure v1-3 messages.

Update docs verbose example to 3 per its comment

Signed-off-by: Jim Cromie <jim.cro...@gmail.com>
---
 .../admin-guide/dynamic-debug-howto.rst       |  2 +-
 lib/dynamic_debug.c                           | 22 ++++++++++---------
 2 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/Documentation/admin-guide/dynamic-debug-howto.rst 
b/Documentation/admin-guide/dynamic-debug-howto.rst
index b119b8277b3e..ab28d200f016 100644
--- a/Documentation/admin-guide/dynamic-debug-howto.rst
+++ b/Documentation/admin-guide/dynamic-debug-howto.rst
@@ -358,7 +358,7 @@ Examples
   // boot-args example, with newlines and comments for readability
   Kernel command line: ...
     // see whats going on in dyndbg=value processing
-    dynamic_debug.verbose=1
+    dynamic_debug.verbose=3
     // enable pr_debugs in 2 builtins, #cmt is stripped
     dyndbg="module params +p #cmt ; module sys +p"
     // enable pr_debugs in 2 functions in a module loaded later
diff --git a/lib/dynamic_debug.c b/lib/dynamic_debug.c
index da91ff507117..fd5aca157aec 100644
--- a/lib/dynamic_debug.c
+++ b/lib/dynamic_debug.c
@@ -118,6 +118,8 @@ do {                                                        
        \
 
 #define vpr_info(fmt, ...)     vnpr_info(1, fmt, ##__VA_ARGS__)
 #define v2pr_info(fmt, ...)    vnpr_info(2, fmt, ##__VA_ARGS__)
+#define v3pr_info(fmt, ...)    vnpr_info(3, fmt, ##__VA_ARGS__)
+#define v4pr_info(fmt, ...)    vnpr_info(4, fmt, ##__VA_ARGS__)
 
 static void vpr_info_dq(const struct ddebug_query *query, const char *msg)
 {
@@ -130,7 +132,7 @@ static void vpr_info_dq(const struct ddebug_query *query, 
const char *msg)
                        fmtlen--;
        }
 
-       vpr_info("%s: func=\"%s\" file=\"%s\" module=\"%s\" format=\"%.*s\" 
lineno=%u-%u\n",
+       v3pr_info("%s: func=\"%s\" file=\"%s\" module=\"%s\" format=\"%.*s\" 
lineno=%u-%u\n",
                 msg,
                 query->function ?: "",
                 query->filename ?: "",
@@ -213,7 +215,7 @@ static int ddebug_change(const struct ddebug_query *query,
                                static_branch_enable(&dp->key.dd_key_true);
 #endif
                        dp->flags = newflags;
-                       v2pr_info("changed %s:%d [%s]%s =%s\n",
+                       v4pr_info("changed %s:%d [%s]%s =%s\n",
                                 trim_prefix(dp->filename), dp->lineno,
                                 dt->mod_name, dp->function,
                                 ddebug_describe_flags(dp->flags, &fbuf));
@@ -273,7 +275,7 @@ static int ddebug_tokenize(char *buf, char *words[], int 
maxwords)
                buf = end;
        }
 
-       if (verbose) {
+       if (verbose >= 3) {
                int i;
                pr_info("split into words:");
                for (i = 0; i < nwords; i++)
@@ -333,7 +335,7 @@ static int parse_linerange(struct ddebug_query *query, 
const char *first)
        } else {
                query->last_lineno = query->first_lineno;
        }
-       vpr_info("parsed line %d-%d\n", query->first_lineno,
+       v3pr_info("parsed line %d-%d\n", query->first_lineno,
                 query->last_lineno);
        return 0;
 }
@@ -447,7 +449,7 @@ static int ddebug_parse_flags(const char *str, struct 
flag_settings *modifiers)
                pr_err("bad flag-op %c, at start of %s\n", *str, str);
                return -EINVAL;
        }
-       vpr_info("op='%c'\n", op);
+       v3pr_info("op='%c'\n", op);
 
        for (; *str ; ++str) {
                for (i = ARRAY_SIZE(opt_array) - 1; i >= 0; i--) {
@@ -461,7 +463,7 @@ static int ddebug_parse_flags(const char *str, struct 
flag_settings *modifiers)
                        return -EINVAL;
                }
        }
-       vpr_info("flags=0x%x\n", modifiers->flags);
+       v3pr_info("flags=0x%x\n", modifiers->flags);
 
        /* calculate final flags, mask based upon op */
        switch (op) {
@@ -477,7 +479,7 @@ static int ddebug_parse_flags(const char *str, struct 
flag_settings *modifiers)
                modifiers->flags = 0;
                break;
        }
-       vpr_info("*flagsp=0x%x *maskp=0x%x\n", modifiers->flags, 
modifiers->mask);
+       v3pr_info("*flagsp=0x%x *maskp=0x%x\n", modifiers->flags, 
modifiers->mask);
 
        return 0;
 }
@@ -540,7 +542,7 @@ static int ddebug_exec_queries(char *query, const char 
*modname)
                }
                i++;
        }
-       vpr_info("processed %d queries, with %d matches, %d errs\n",
+       v2pr_info("processed %d queries, with %d matches, %d errs\n",
                 i, nfound, errs);
 
        if (exitcode)
@@ -781,7 +783,7 @@ static ssize_t ddebug_proc_write(struct file *file, const 
char __user *ubuf,
        tmpbuf = memdup_user_nul(ubuf, len);
        if (IS_ERR(tmpbuf))
                return PTR_ERR(tmpbuf);
-       vpr_info("read %d bytes from userspace\n", (int)len);
+       v2pr_info("read %u bytes from userspace <\n%s>\n", (unsigned)len, 
tmpbuf);
 
        ret = ddebug_exec_queries(tmpbuf, NULL);
        kfree(tmpbuf);
@@ -969,7 +971,7 @@ int ddebug_add_module(struct _ddebug *tab, unsigned int n,
        list_add(&dt->link, &ddebug_tables);
        mutex_unlock(&ddebug_lock);
 
-       v2pr_info("%3u debug prints in module %s\n", n, dt->mod_name);
+       vpr_info("%3u debug prints in module %s\n", n, dt->mod_name);
        return 0;
 }
 
-- 
2.31.1

Reply via email to