Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

dynamic-debug not built into scx200_acb, scx200_i2c

30 views
Skip to first unread message

Jim Cromie

unread,
Aug 10, 2011, 5:10:01 PM8/10/11
to
scx200_acb has several pr_debugs, but theyre not available via dynamic-debug

Ive been unable to figure out why.
Any ideas ?

jimc@chumly:~/projects/lx/linux-2.6$ grep debug drivers/i2c/busses/scx200_*
drivers/i2c/busses/scx200_acb.c: pr_debug(NAME ": ACBCTL2 readback failed\n");
drivers/i2c/busses/scx200_acb.c: pr_debug(NAME ": disabled, but
ACBCTL1=0x%02x\n",
drivers/i2c/busses/scx200_acb.c: pr_debug(NAME ": enabled, but NMINTE
won't be set, "
drivers/i2c/busses/scx200_acb.c: pr_debug(NAME ": NatSemi SCx200
ACCESS.bus Driver\n");
drivers/i2c/busses/scx200_i2c.c: pr_debug(NAME ": NatSemi SCx200 I2C Driver\n");
drivers/i2c/busses/scx200_i2c.c: pr_debug(NAME ": SCL=GPIO%02u,
SDA=GPIO%02u\n", scl, sda);


jimc@chumly:~/projects/lx/build-skc$ for k in `find drivers -name
\*.ko`; do echo $k; readelf -S $k |grep __verbose; done
drivers/i2c/busses/i2c-stub.ko
drivers/i2c/busses/i2c-gpio.ko
drivers/i2c/busses/scx200_i2c.ko
drivers/i2c/busses/scx200_acb.ko
drivers/i2c/muxes/gpio-i2cmux.ko
drivers/i2c/i2c-mux.ko
drivers/i2c/i2c-dev.ko
[15] __verbose PROGBITS 00000000 0018c8 0000c0 00 WA 0 0 8
[16] .rel__verbose REL 00000000 0024cc 000100 08 23 15 4
drivers/i2c/i2c-core.ko
[24] __verbose PROGBITS 00000000 003e58 000198 00 WA 0 0 8
[25] .rel__verbose REL 00000000 0058c8 000220 08 32 24 4


drivers/gpio/nsc_gpio.ko
[18] __verbose PROGBITS 00000000 000850 000090 00 WA 0 0 8
[19] .rel__verbose REL 00000000 0011bc 0000c0 08 26 18 4
drivers/gpio/pcf857x.ko
[14] __verbose PROGBITS 00000000 000e80 000048 00 WA 0 0 8
[15] .rel__verbose REL 00000000 001710 000060 08 22 14 4
drivers/gpio/pc8736x_gpio.ko
[17] __verbose PROGBITS 00000000 001140 0000a8 00 WA 0 0 8
[18] .rel__verbose REL 00000000 001da0 0000e0 08 25 17 4
drivers/gpio/scx200_gpio.ko
drivers/bluetooth/bfusb.ko
[14] __verbose PROGBITS 00000000 002160 000198 00 WA 0 0 8
[15] .rel__verbose REL 00000000 003108 000220 08 22 14 4
drivers/bluetooth/btusb.ko
[16] __verbose PROGBITS 00000000 002ca8 0001c8 00 WA 0 0 8
[17] .rel__verbose REL 00000000 003e44 000260 08 24 16 4
drivers/bluetooth/bcm203x.ko
[15] __verbose PROGBITS 00000000 000f78 000078 00 WA 0 0 8
[16] .rel__verbose REL 00000000 001a04 0000a0 08 23 15 4
drivers/bluetooth/hci_uart.ko
[17] __verbose PROGBITS 00000000 004068 000510 00 WA 0 0 8
[18] .rel__verbose REL 00000000 0060a4 0006c0 08 25 17 4
drivers/bluetooth/bpa10x.ko
[14] __verbose PROGBITS 00000000 0014f0 000120 00 WA 0 0 8
[15] .rel__verbose REL 00000000 002130 000180 08 22 14 4
drivers/connector/cn.ko
drivers/cpufreq/cpufreq_userspace.ko
[16] __verbose PROGBITS 00000000 0008b8 000078 00 WA 0 0 8
[17] .rel__verbose REL 00000000 001258 0000a0 08 24 16 4
drivers/cpufreq/gx-suspmod.ko
[16] __verbose PROGBITS 00000000 000f80 0000d8 00 WA 0 0 8
[17] .rel__verbose REL 00000000 001ae8 000120 08 25 16 4
drivers/cpufreq/cpufreq_ondemand.ko
drivers/cpufreq/cpufreq_performance.ko
[14] __verbose PROGBITS 00000000 000388 000018 00 WA 0 0 8
[15] .rel__verbose REL 00000000 000a30 000020 08 22 14 4
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majo...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

Jason Baron

unread,
Aug 10, 2011, 8:00:01 PM8/10/11
to
On Wed, Aug 10, 2011 at 03:06:49PM -0600, Jim Cromie wrote:
> scx200_acb has several pr_debugs, but theyre not available via dynamic-debug
>
> Ive been unable to figure out why.
> Any ideas ?
>

hmmm...I see drivers/i2c/busses/Makefile has:

ccflags-$(CONFIG_I2C_DEBUG_BUS) := -DDEBUG

Any chance CONFIG_I2C_DEBUG_BUS is set?

Thanks,

-Jason

Joe Perches

unread,
Aug 10, 2011, 8:00:01 PM8/10/11
to
On Wed, 2011-08-10 at 15:06 -0600, Jim Cromie wrote:
> scx200_acb has several pr_debugs, but theyre not available via dynamic-debug
>
> Ive been unable to figure out why.
> Any ideas ?

-DDEBUG forces pr_debug to be output and doesn't
allow dynamic_debug for those outputs.

from drivers/i2c/busses/Makefile:

ccflags-$(CONFIG_I2C_DEBUG_BUS) := -DDEBUG

from printk.h:

/* If you are writing a driver, please use dev_dbg instead */
#if defined(DEBUG)
#define pr_debug(fmt, ...) \
printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
#elif defined(CONFIG_DYNAMIC_DEBUG)
/* dynamic_pr_debug() uses pr_fmt() internally so we don't need it here */
#define pr_debug(fmt, ...) \
dynamic_pr_debug(fmt, ##__VA_ARGS__)

Joe Perches

unread,
Aug 10, 2011, 8:10:02 PM8/10/11
to
On Wed, 2011-08-10 at 16:50 -0700, Joe Perches wrote:
> On Wed, 2011-08-10 at 15:06 -0600, Jim Cromie wrote:
> > scx200_acb has several pr_debugs, but theyre not available via dynamic-debug
> > Ive been unable to figure out why.
> > Any ideas ?
> -DDEBUG forces pr_debug to be output and doesn't
> allow dynamic_debug for those outputs.
> from drivers/i2c/busses/Makefile:
> ccflags-$(CONFIG_I2C_DEBUG_BUS) := -DDEBUG
> from printk.h:
> /* If you are writing a driver, please use dev_dbg instead */
> #if defined(DEBUG)
> #define pr_debug(fmt, ...) \
> printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
> #elif defined(CONFIG_DYNAMIC_DEBUG)
> /* dynamic_pr_debug() uses pr_fmt() internally so we don't need it here */
> #define pr_debug(fmt, ...) \
> dynamic_pr_debug(fmt, ##__VA_ARGS__)

Perhaps another way to enable pr_debug use
is to reverse the order of dynamic_pr_debug
defines.

ie: change printk.h:

#if defined(CONFIG_DYNAMIC_DEBUG)


/* dynamic_pr_debug() uses pr_fmt() internally so we don't need it here */
#define pr_debug(fmt, ...) \
dynamic_pr_debug(fmt, ##__VA_ARGS__)

#elif defined(DEBUG)


#define pr_debug(fmt, ...) \
printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)

and change dynamic_debug.h:

#define DPRINTK_FLAGS_DEFAULT 0

to:

#if defined DEBUG
#define DPRINTK_FLAGS_DEFAULT DPRINTK_FLAGS_PRINT
#else
#define DPRINT_FLAGS_DEFAULT 0
#endif

That seems pretty sensible to me. Jason?

Jason Baron

unread,
Aug 10, 2011, 9:10:01 PM8/10/11
to

cool idea. I like it.

-Jason

Joe Perches

unread,
Aug 10, 2011, 9:10:02 PM8/10/11
to
On Wed, 2011-08-10 at 20:20 -0400, Jason Baron wrote:
> On Wed, Aug 10, 2011 at 05:01:37PM -0700, Joe Perches wrote:
> > Perhaps another way to enable pr_debug use
> > is to reverse the order of dynamic_pr_debug
> > defines.
> > ie: change printk.h:
> > #if defined(CONFIG_DYNAMIC_DEBUG)
> > /* dynamic_pr_debug() uses pr_fmt() internally so we don't need it here */
> > #define pr_debug(fmt, ...) \
> > dynamic_pr_debug(fmt, ##__VA_ARGS__)
> > #elif defined(DEBUG)
> > #define pr_debug(fmt, ...) \
> > printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
> > and change dynamic_debug.h:
> > #define DPRINTK_FLAGS_DEFAULT 0
> > to:
> > #if defined DEBUG
> > #define DPRINTK_FLAGS_DEFAULT DPRINTK_FLAGS_PRINT
> > #else
> > #define DPRINT_FLAGS_DEFAULT 0
> > #endif
> > That seems pretty sensible to me. Jason?
> cool idea. I like it.

You've got a bunch of patches ready to
be pulled/queued, so I think you should
do it.

cheers, Joe

Jim Cromie

unread,
Aug 11, 2011, 1:50:02 AM8/11/11
to

Thanks Joe,

Ive just added this. It works nicely, with one trivial change
to add MODNAME, imitating the common non-dynamic-debug usage:

#if defined DEBUG
#define _DPRINTK_FLAGS_DEFAULT _DPRINTK_FLAGS_PRINT |
_DPRINTK_FLAGS_INCL_MODNAME

Ive tested the changes on scx200_acb, and changed
the printks therein to corresponding pr_<foo>
As I said, it works nicely.

Ive added these 2 patches to my series, which I'll be posting shortly.
In the meantime, its available at:

git://github.com/jimc/linux-2.6.git
in branch dyndbg-v4

Joe Perches

unread,
Aug 11, 2011, 2:10:02 AM8/11/11
to
[]

> Ive just added this. It works nicely, with one trivial change
> to add MODNAME, imitating the common non-dynamic-debug usage:
> #if defined DEBUG
> #define _DPRINTK_FLAGS_DEFAULT _DPRINTK_FLAGS_PRINT |
> _DPRINTK_FLAGS_INCL_MODNAME

Right now, I think you should _not_
add DPRINTK_FLAGS_INCL_MODNAME to the
DEBUG DPRINTK_FLAGS_DEFAULT nor should
INCL_MODNAME be added to any default output
style.

Look for things like:
pr_debug(PFX "foo...");
and
pr_debug("some_prefix: foo...");

For instance:

$ grep -rP --include=*.[ch] "pr_debug\s*\(\s*\"\w+:" *

There are just too many uses of pr_debug where
defaulting KBUILD_MODNAME on will just cause some
unnecessary duplication of output.

Maybe do this in a year or two when more of
the current printks are sifted.

0 new messages