Re: [PATCH 1/4] Net device error logging, revised

From: Jeff Garzik
Date: Tue Aug 26 2003 - 18:53:16 EST


Jim Keniston wrote:
#define netdev_printk(sevlevel, netdev, msglevel, format, arg...) \
do { \
if (NETIF_MSG_##msglevel == NETIF_MSG_ALL || ((netdev)->msg_enable & NETIF_MSG_##msglevel)) { \
char pfx[40]; \
printk(sevlevel "%s: " format , make_netdev_msg_prefix(pfx, netdev) , ## arg); \
}} while (0)

This would make your code bigger, but not that much bigger for the common case where
the msglevel is omitted (and the 'if(...)' is optimized out).


"NETIF_MSG_" is silly and should be eliminated.
A separate "NETIF_MSG_ALL" test is not needed, because msg_enable is a bitmask. A msg_enable of 0xffffffff will naturally create a NETIF_MSG_ALL.

Also, whatever mechanism is created, it needs to preserve the feature of the existing system:

if (a quick bitmask test)
do something

And preferably "do something" is not inlined, because printk'ing -- although it may appear in a fast path during debugging -- cannot be considered a fast path itself.

Jeff



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/