lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAJfuBxxvDhRgwfosZHZEAsgeLsAzDigHh-j3mC+8aJByR-=GkQ@mail.gmail.com>
Date:	Mon, 11 Jul 2011 13:06:22 -0600
From:	Jim Cromie <jim.cromie@...il.com>
To:	Bart Van Assche <bvanassche@....org>
Cc:	jbaron@...hat.com, linux-kernel@...r.kernel.org, joe@...ches.com,
	gregkh@...e.de, gnb@...h.org
Subject: Re: [ patch 00/21 ] support multiple, pending ddebugs at kernel-boot

On Mon, Jul 11, 2011 at 12:30 PM, Bart Van Assche <bvanassche@....org> wrote:
> On Mon, Jul 11, 2011 at 5:21 PM, Jim Cromie <jim.cromie@...il.com> wrote:
>> On Mon, Jul 11, 2011 at 1:46 AM, Jim Cromie <jim.cromie@...il.com> wrote:
>>>
>>> This patchset extends dynamic-debug facility to allow
>>> use of pr_debug() within a loadable module's module_init()
>>> function.  Query/rules can be given on the boot-line,
>>> and are saved to a pending list if they cannot be applied
>>> immediately.  Later, when the module is being loaded, the
>>> pending list is scanned, and matching rules are applied.
>>> Thus pr_debug() calls in the module's initialization function
>>> are active when it is invoked.
>>>
>>>
>>> Changes since rev1:
>>>
>>> - rebased on top of Jasons & Joes patchset
>>> - fixed accidental unescape removal, noted by Bart
>>> - trim src-path patch checks for matching prefix before trimming
>>>  should now work for out-of-tree modules.
>>> - undid verbose newline-strip in exec-queries - Bart
>>> - verbose param 644, not 744 - Bart, Greg
>>> - whitespace - Bart
>>> - added 'a' flag - Jason, Bart
>>> - drop pending_max - Bart
>
> As far as I can see with v2 of this patch set a query gets on the
> pending list if either +a has been specified or no matches were found
> the first time a query is run. Are both mechanisms necessary ? If not,
> I propose to leave out the second. That will not only allow to
> simplify the code somewhat but will also reduce confusion for
> dynamic_printk users.
>

Both conditions are necessary:
- 'a' flag required,
- query not directly applicable.

root@...age:~# echo 1 > /sys/module/dynamic_debug/parameters/verbose

root@...age:~# echo "module nosuch +p" > /dbg/dynamic_debug/control
dynamic_debug:ddebug_proc_open: called
dynamic_debug:ddebug_proc_write: read 17 bytes from userspace
dynamic_debug:ddebug_exec_queries: query 0: "module nosuch +p
"
dynamic_debug:ddebug_tokenize: split into words: "module" "nosuch" "+p"
dynamic_debug:ddebug_parse_query: parsed q->function="(null)"
q->filename="(null)" q->module="nosuch" q->format="(null)"
q->lineno=0-0
dynamic_debug:ddebug_parse_flags:  flags_filter=0x0
 op='+'
 flags=0x1
dynamic_debug:ddebug_parse_flags: *flagsp=0x1 *maskp=0xffffffff
dynamic_debug:ddebug_exec_query: no match on: q->function="(null)"
q->filename="(null)" q->module="nosuch" q->format="(null)"
q->lineno=0-0
dynamic_debug:ddebug_exec_query: nfound 0 on q->function="(null)"
q->filename="(null)" q->module="nosuch" q->format="(null)"
q->lineno=0-0
dynamic_debug:ddebug_exec_queries: processed 1 queries, with 0 errs

root@...age:~# cat /sys/module/dynamic_debug/parameters/pending_ct
0

root@...age:~# echo "module nosuch +ap" > /dbg/dynamic_debug/control
dynamic_debug:ddebug_proc_open: called
dynamic_debug:ddebug_proc_write: read 18 bytes from userspace
dynamic_debug:ddebug_exec_queries: query 0: "module nosuch +ap
"
dynamic_debug:ddebug_tokenize: split into words: "module" "nosuch" "+ap"
dynamic_debug:ddebug_parse_query: parsed q->function="(null)"
q->filename="(null)" q->module="nosuch" q->format="(null)"
q->lineno=0-0
dynamic_debug:ddebug_parse_flags:  flags_filter=0x0
 op='+'
 flags=0x21
dynamic_debug:ddebug_parse_flags: *flagsp=0x21 *maskp=0xffffffff
dynamic_debug:ddebug_save_pending: add to pending:
q->function="(null)" q->filename="(null)" q->module="nosuch"
q->format="(null)" q->lineno=0-0
dynamic_debug:ddebug_save_pending: query saved as pending 1
dynamic_debug:ddebug_exec_query: nfound 0 on q->function="(null)"
q->filename="(null)" q->module="nosuch" q->format="(null)"
q->lineno=0-0
dynamic_debug:ddebug_exec_queries: processed 1 queries, with 0 errs

root@...age:~# cat /sys/module/dynamic_debug/parameters/pending_ct
1

> Bart.
>

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ