Messages in this thread | | | Date | Wed, 5 Dec 2012 21:14:53 -0500 | From | Jason Baron <> | Subject | Re: [PATCH 0/3] dynamic_debug: Add print_hex_dump_bytes/debug support and cleanups |
| |
On Wed, Dec 05, 2012 at 02:05:06PM -0800, Joe Perches wrote: > On Wed, 2012-12-05 at 16:48 -0500, Jason Baron wrote: > > Here's a collection of the latest dynamic debug patches that I have > > pending. > > Any update on the jump table support? >
I have patches that implement the support, although they are a bit hacky due to header dependencies. However, the main reason I didn't post them yet is that the 'data' section increases quite a bit due to the increased table size (text section is reduced, since we are saving instructions). On x86_64, the the upper 32-bits of each table entry are always '0xffffffff', so the table could be reduced by a factor of 2. Although, I haven't figured out a simple way of doing so. Perhaps, the 'data' section bloat is ok, due to the runtime savings, though. I can dig out the % increase data.
While we're on new features, I think it would be nice to have the ability to enable the core dynamic debug library - lib/dynamic_debug.c, independently from the debug statements that use it. So, having CONFIG_DYNAMIC_DEBUG would just configure the infrastructure bits, and something such as CONFIG_DYNAMIC_DEBUG_PRINTK could enable pr_debug() and friends. In that way subsystems that want to use dynamic output can be enabled/disabled independently. So they could do:
#ifdef CONFIG_DRIVER_FOO_DEBUG #define drv_foo_debug() dev_dbg() #else #define drv_foo_debug() {}
where CONFIG_DRIVER_FOO_DEBUG would enable CONFIG_DYNAMIC_DEBUG.
Thanks,
-Jason
| |