Messages in this thread | | | Date | Wed, 17 Sep 2008 11:27:32 +0200 | From | Ingo Molnar <> | Subject | Re: [PATCH 0/6] loglevel=pci:8,acpi:8,apic=8 support v6 |
| |
(Jason Cc:-ed)
* Andrew Morton <akpm@linux-foundation.org> wrote:
> On Wed, 17 Sep 2008 01:27:41 -0700 Yinghai Lu <yhlu.kernel@gmail.com> wrote: > > > KERN_PCI > > KERN_ACPI > > v4: fix some checkpatch error and warning > > v5: add default with DEFINE_LOGLEVE_SETUP_DEF > > KERN_APIC > > v6: set the default only one time > > > > usage: > > in .h to have > > #define KERN_PCI "<pci>" > > in .c to have > > DEFINE_LOGLEVEL_SETUP(pci, KERN_PCI, "pci:"); > > then could use > > printk(KERN_DEBUG KERN_PCI fmt, ...); > > and command line > > loglevel=3,pci:8 > > > > you can add different printk to different files of one subsys if you like > > not just one susbsys one tag, and don't need to update kernel.h to add more tags > > This all looks dreadfully similar to Jason Baron's "dynamic debug v2".
yeah, but s/dreadfully/luckily
> Similar enough that we couldn't justify merging both.
agreed.
Here's the summary as i see it: Jason's "dynamic debug" mainly relies on automatically creating a section of tags associated with each pr_debug() callsite. The unit of filtering is the .c file - which lends itself well to things like individual drivers but is not quite good for more generic entities like full subsystems.
I think a better model is what hpa suggested: add string tags at the call site and make it all a sub-case of printk, via ASCII space tags. OTOH, a pr_debug() variant could be offered that just inserts a __FILE__ tag into the output - this would enable most of the "dynamic debug" functionality that Jason's patch series implements IMO.
There's also a wider robustness argument why this is better: we want to keep printk simple by default, hence doing these things via the ASCII space is good design. "dynamic debug" does it all programmatically via extra sections, etc., which is eventually a source of bugs and unrobustness.
Ingo
| |