Linux Media Controller development
 help / color / mirror / Atom feed
* [PATCH] rc-core: don't use dynamic_pr_debug for IR_dprintk()
@ 2014-07-26  2:25 Mauro Carvalho Chehab
  2014-07-26 11:08 ` Antti Palosaari
  0 siblings, 1 reply; 3+ messages in thread
From: Mauro Carvalho Chehab @ 2014-07-26  2:25 UTC (permalink / raw)
  Cc: Mauro Carvalho Chehab, Linux Media Mailing List,
	Mauro Carvalho Chehab

The hole point of IR_dprintk() is that, once a level is
given at debug parameter, all enabled IR parsers will show their
debug messages.

While converting it to dynamic_printk might be a good idea,
right now it just makes very hard to debug the drivers, as
one needs to both pass debug=1 or debug=2 to rc-core and
to use the dynamic printk to enable all the desired lines.

That doesn't make sense!

So, revert to the old way, as a single line is changed,
and the debug parameter will now work as expected.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
---
 include/media/rc-core.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/media/rc-core.h b/include/media/rc-core.h
index 3047837db1cc..2c7fbca40b69 100644
--- a/include/media/rc-core.h
+++ b/include/media/rc-core.h
@@ -26,7 +26,7 @@ extern int rc_core_debug;
 #define IR_dprintk(level, fmt, ...)				\
 do {								\
 	if (rc_core_debug >= level)				\
-		pr_debug("%s: " fmt, __func__, ##__VA_ARGS__);	\
+		printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__);	\
 } while (0)
 
 enum rc_driver_type {
-- 
1.9.3


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] rc-core: don't use dynamic_pr_debug for IR_dprintk()
  2014-07-26  2:25 [PATCH] rc-core: don't use dynamic_pr_debug for IR_dprintk() Mauro Carvalho Chehab
@ 2014-07-26 11:08 ` Antti Palosaari
  2014-07-26 13:34   ` Mauro Carvalho Chehab
  0 siblings, 1 reply; 3+ messages in thread
From: Antti Palosaari @ 2014-07-26 11:08 UTC (permalink / raw)
  To: Mauro Carvalho Chehab; +Cc: Linux Media Mailing List, Mauro Carvalho Chehab



On 07/26/2014 05:25 AM, Mauro Carvalho Chehab wrote:
> The hole point of IR_dprintk() is that, once a level is
> given at debug parameter, all enabled IR parsers will show their
> debug messages.
>
> While converting it to dynamic_printk might be a good idea,
> right now it just makes very hard to debug the drivers, as
> one needs to both pass debug=1 or debug=2 to rc-core and
> to use the dynamic printk to enable all the desired lines.

Did you know you could enable debugs as whole module too? Also per 
function or source file, not only per line you seems to use.

That is basic command to enable all debugs for module rc-core
modprobe rc-core; echo -n 'module rc-core +p' > 
/sys/kernel/debug/dynamic_debug/control

Look also other flags than '+p' from documentation
Documentation/dynamic-debug-howto.txt


> That doesn't make sense!
>
> So, revert to the old way, as a single line is changed,
> and the debug parameter will now work as expected.
>
> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
> ---
>   include/media/rc-core.h | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/include/media/rc-core.h b/include/media/rc-core.h
> index 3047837db1cc..2c7fbca40b69 100644
> --- a/include/media/rc-core.h
> +++ b/include/media/rc-core.h
> @@ -26,7 +26,7 @@ extern int rc_core_debug;
>   #define IR_dprintk(level, fmt, ...)				\
>   do {								\
>   	if (rc_core_debug >= level)				\
> -		pr_debug("%s: " fmt, __func__, ##__VA_ARGS__);	\
> +		printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__);	\
>   } while (0)
>
>   enum rc_driver_type {
>

-- 
http://palosaari.fi/

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] rc-core: don't use dynamic_pr_debug for IR_dprintk()
  2014-07-26 11:08 ` Antti Palosaari
@ 2014-07-26 13:34   ` Mauro Carvalho Chehab
  0 siblings, 0 replies; 3+ messages in thread
From: Mauro Carvalho Chehab @ 2014-07-26 13:34 UTC (permalink / raw)
  To: Antti Palosaari; +Cc: Linux Media Mailing List, Mauro Carvalho Chehab

Em Sat, 26 Jul 2014 14:08:04 +0300
Antti Palosaari <crope@iki.fi> escreveu:

> 
> 
> On 07/26/2014 05:25 AM, Mauro Carvalho Chehab wrote:
> > The hole point of IR_dprintk() is that, once a level is
> > given at debug parameter, all enabled IR parsers will show their
> > debug messages.
> >
> > While converting it to dynamic_printk might be a good idea,
> > right now it just makes very hard to debug the drivers, as
> > one needs to both pass debug=1 or debug=2 to rc-core and
> > to use the dynamic printk to enable all the desired lines.
> 
> Did you know you could enable debugs as whole module too? Also per 
> function or source file, not only per line you seems to use.
> 
> That is basic command to enable all debugs for module rc-core
> modprobe rc-core; echo -n 'module rc-core +p' > 
> /sys/kernel/debug/dynamic_debug/control
> 
> Look also other flags than '+p' from documentation
> Documentation/dynamic-debug-howto.txt

Antti,

Yes, I'm aware of that. I'm not against using pr_debug(),
but the patch that converted from printk to pr_debug()
made a crappy job, because it didn't replace all occurrences
of IR_dprintk() with pr_debug(). Instead, it did:

#define IR_dprintk(level, foo) if (level >= debug) pr_debug(foo)

So, if you do:
	module rc-core +p > .../dynamic_debug/control

it won't work, because debug is zero.

And, if you load rc-core with debug=1, it also doesn't work.
It is the worse of both worlds.

So, the hole point is that we should either remove IR_dprintk
macro everywhere or to remove pr_debug(). I took the shortest
way, as the hole point were to make the debug useful again, for me to
be able to test some of the IR patches I merged.

Btw, in the specific case of rc-core debug, the debug flag
is used on all RC raw decoders, and not only by the core.

I think that IR_dprintk is more intuitive than pr_debug in
this particular usecase, especially since it takes a longer
time to be able to enable the "level 1" type of messages on
all 9 IR decoders, and such "level 1" type of debug activation
can't easily be scriptable, as there's no way to do something like:

module rc-core ir* +p level=1 > .../dynamic_debug/control

Regards,
Mauro
> 
> 
> > That doesn't make sense!
> >
> > So, revert to the old way, as a single line is changed,
> > and the debug parameter will now work as expected.
> >
> > Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
> > ---
> >   include/media/rc-core.h | 2 +-
> >   1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/include/media/rc-core.h b/include/media/rc-core.h
> > index 3047837db1cc..2c7fbca40b69 100644
> > --- a/include/media/rc-core.h
> > +++ b/include/media/rc-core.h
> > @@ -26,7 +26,7 @@ extern int rc_core_debug;
> >   #define IR_dprintk(level, fmt, ...)				\
> >   do {								\
> >   	if (rc_core_debug >= level)				\
> > -		pr_debug("%s: " fmt, __func__, ##__VA_ARGS__);	\
> > +		printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__);	\
> >   } while (0)
> >
> >   enum rc_driver_type {
> >
> 

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2014-07-26 13:34 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-07-26  2:25 [PATCH] rc-core: don't use dynamic_pr_debug for IR_dprintk() Mauro Carvalho Chehab
2014-07-26 11:08 ` Antti Palosaari
2014-07-26 13:34   ` Mauro Carvalho Chehab

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox