netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: [PATCH] ixgb: Delete IXGB_DBG() macro and call pr_debug() directly.
       [not found]   ` <Pine.LNX.4.64.0610101227170.9699@localhost.localdomain>
@ 2006-10-10 16:50     ` Auke Kok
  2006-10-10 17:51       ` Robert P. J. Day
  0 siblings, 1 reply; 3+ messages in thread
From: Auke Kok @ 2006-10-10 16:50 UTC (permalink / raw)
  To: Robert P. J. Day
  Cc: Linux kernel mailing list, trivial, NetDev, Jesse Brandeburg

Robert P. J. Day wrote:
> On Tue, 10 Oct 2006, Auke Kok wrote:
> 
>> Robert P. J. Day wrote:
>>> Delete the minimally-useful IXGB_DBG() macro and call pr_debug()
>>> directly from the main routine.
>>>
>>> Signed-off-by: Robert P. J. Day <rpjday@mindspring.com>
>>> ---
>>> diff --git a/drivers/net/ixgb/ixgb.h b/drivers/net/ixgb/ixgb.h
>>> index 50ffe90..fb9fde5 100644
>>> --- a/drivers/net/ixgb/ixgb.h
>>> +++ b/drivers/net/ixgb/ixgb.h
>>> @@ -77,12 +77,6 @@ #include "ixgb_hw.h"
>>>  #include "ixgb_ee.h"
>>>  #include "ixgb_ids.h"
>>>
>>> -#ifdef _DEBUG_DRIVER_
>>> -#define IXGB_DBG(args...) printk(KERN_DEBUG "ixgb: " args)
>>> -#else
>>> -#define IXGB_DBG(args...)
>>> -#endif
>>> -
>>>  #define PFX "ixgb: "
>>>  #define DPRINTK(nlevel, klevel, fmt, args...) \
>>>  	(void)((NETIF_MSG_##nlevel & adapter->msg_enable) && \
>>> diff --git a/drivers/net/ixgb/ixgb_main.c b/drivers/net/ixgb/ixgb_main.c
>>> index e09f575..eada685 100644
>>> --- a/drivers/net/ixgb/ixgb_main.c
>>> +++ b/drivers/net/ixgb/ixgb_main.c
>>> @@ -1948,7 +1948,7 @@ #endif
>>>
>>>  			/* All receives must fit into a single buffer */
>>>
>>> -			IXGB_DBG("Receive packet consumed multiple buffers "
>>> +			pr_debug("ixgb: Receive packet consumed multiple
>>> buffers "
>>>  					 "length<%x>\n", length);
>>>
>>>  			dev_kfree_skb_irq(skb);
>>>
>>> --
>>>
>>>   all right ... what did i mess up *this* time?  :-)  it's good
>>> practice.  that's my story and i'm sticking to it.
 >>
>> We should really use dev_dbg() instead, as it retains the 'ethX:'
>> annotation afaics.
> 
> i actually tried to use that first, but it wasn't clear to me what i
> would use as that first argument to dev_dbg(), given the definitions
> in include/linux/device.h:
> 
> #define dev_dbg(dev, format, arg...)            \
>         dev_printk(KERN_DEBUG , dev , format , ## arg)
> 
> #define dev_printk(level, dev, format, arg...)  \
>         printk(level "%s %s: " format , dev_driver_string(dev) ,
>         (dev)->bus_id , ## arg)
> 
>   if someone wants to tell me what, in the context of ixgb_main.c, i
> would use as that "dev" argument, i'm all for that.

(CC netdev since it's a network driver topic).


all our macro's (e100, e1000, ixgb) use adapter->netdev->name inserted through the 
DPRINTK macro.

if you'd really want to clean it all up, you'd have to replace all DPRINTK() calls with 
dev_dbg(adapter->netdev->name, ....) which would just make it more lengthy and 
uncomfortable to read.

which puts this in a bigger perspective. I suppose the nicest way to do program these is 
to do something like this:

#define ixgb_dbg(args...) dev_dbg(adapter->netdev->name, args)
#define ixgb_err(args...) dev_err(adapter->netdev->name, args)
#define ixgb_info(args...) dev_info(adapter->netdev->name, args)

and use those consistently throughout the driver, ditto for e100/e1000.

I'll look into it and see what I can do.

Cheers,

Auke



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

* Re: [PATCH] ixgb: Delete IXGB_DBG() macro and call pr_debug() directly.
  2006-10-10 16:50     ` [PATCH] ixgb: Delete IXGB_DBG() macro and call pr_debug() directly Auke Kok
@ 2006-10-10 17:51       ` Robert P. J. Day
  2006-10-10 18:18         ` Auke Kok
  0 siblings, 1 reply; 3+ messages in thread
From: Robert P. J. Day @ 2006-10-10 17:51 UTC (permalink / raw)
  To: Auke Kok; +Cc: Linux kernel mailing list, trivial, NetDev, Jesse Brandeburg

On Tue, 10 Oct 2006, Auke Kok wrote:

> Robert P. J. Day wrote:

... snip ...

> >   if someone wants to tell me what, in the context of ixgb_main.c,
> > i would use as that "dev" argument [for dev_dbg], i'm all for
> > that.
>
> (CC netdev since it's a network driver topic).
>
> all our macro's (e100, e1000, ixgb) use adapter->netdev->name
> inserted through the DPRINTK macro.
>
> if you'd really want to clean it all up, you'd have to replace all
> DPRINTK() calls with dev_dbg(adapter->netdev->name, ....) which
> would just make it more lengthy and uncomfortable to read.
>
> which puts this in a bigger perspective. I suppose the nicest way to do
> program these is to do something like this:
>
> #define ixgb_dbg(args...) dev_dbg(adapter->netdev->name, args)
> #define ixgb_err(args...) dev_err(adapter->netdev->name, args)
> #define ixgb_info(args...) dev_info(adapter->netdev->name, args)
>
> and use those consistently throughout the driver, ditto for e100/e1000.
>
> I'll look into it and see what I can do.

um, yeah.  i'm rapidly getting out of my comfort zone here.  this
seemed like such a simple submission six hours ago.  :-)  live and
learn.

rday

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

* Re: [PATCH] ixgb: Delete IXGB_DBG() macro and call pr_debug() directly.
  2006-10-10 17:51       ` Robert P. J. Day
@ 2006-10-10 18:18         ` Auke Kok
  0 siblings, 0 replies; 3+ messages in thread
From: Auke Kok @ 2006-10-10 18:18 UTC (permalink / raw)
  To: Robert P. J. Day
  Cc: Linux kernel mailing list, trivial, NetDev, Jesse Brandeburg

Robert P. J. Day wrote:
> On Tue, 10 Oct 2006, Auke Kok wrote:
> 
>> Robert P. J. Day wrote:
> 
> ... snip ...
> 
>>>   if someone wants to tell me what, in the context of ixgb_main.c,
>>> i would use as that "dev" argument [for dev_dbg], i'm all for
>>> that.
>> (CC netdev since it's a network driver topic).
>>
>> all our macro's (e100, e1000, ixgb) use adapter->netdev->name
>> inserted through the DPRINTK macro.
>>
>> if you'd really want to clean it all up, you'd have to replace all
>> DPRINTK() calls with dev_dbg(adapter->netdev->name, ....) which
>> would just make it more lengthy and uncomfortable to read.
>>
>> which puts this in a bigger perspective. I suppose the nicest way to do
>> program these is to do something like this:
>>
>> #define ixgb_dbg(args...) dev_dbg(adapter->netdev->name, args)
>> #define ixgb_err(args...) dev_err(adapter->netdev->name, args)
>> #define ixgb_info(args...) dev_info(adapter->netdev->name, args)
>>
>> and use those consistently throughout the driver, ditto for e100/e1000.
>>
>> I'll look into it and see what I can do.
> 
> um, yeah.  i'm rapidly getting out of my comfort zone here.  this
> seemed like such a simple submission six hours ago.  :-)  live and
> learn.

digging into it much deeper, dev_dbg seems horribly unsuited for our needs as it prints 
the pci bus address and al. That's a lot of information when we really only care about 
'eth0: ' perhaps with 'ixgb: ' prepended to it.

You end up with pretty much the same code that was there before - unless we make 
something common for netdevices and use that instead:

#define netdev_dbg(netdev, args...) pr_debug(netdev->name, args)

and then use this stacked in the driver:

#define ixgb_dbg(args...) netdev_dbg(adapter->netdev, args)

that would seem clean and appropriate, and since this bit of infrastructure is missing 
from netdevice.h, explains the current situation in all netdrivers (chaos).

of course, I'm completely not taking netif_msg_level into account yet here, which 
probably makes it a bit more hairy.


Auke

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

end of thread, other threads:[~2006-10-10 18:18 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <Pine.LNX.4.64.0610100816440.7711@localhost.localdomain>
     [not found] ` <452BC6C9.3050902@intel.com>
     [not found]   ` <Pine.LNX.4.64.0610101227170.9699@localhost.localdomain>
2006-10-10 16:50     ` [PATCH] ixgb: Delete IXGB_DBG() macro and call pr_debug() directly Auke Kok
2006-10-10 17:51       ` Robert P. J. Day
2006-10-10 18:18         ` Auke Kok

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).