CINXE.COM
LKML: David Brownell: Re: [PATCH] USB: usbnet uses netif_msg_*() ethtool filtering
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>LKML: David Brownell: Re: [PATCH] USB: usbnet uses netif_msg_*() ethtool filtering</title><link href="/css/message.css" rel="stylesheet" type="text/css" /><link href="/css/wrap.css" rel="alternate stylesheet" type="text/css" title="wrap" /><link href="/css/nowrap.css" rel="stylesheet" type="text/css" title="nowrap" /><link href="/favicon.ico" rel="shortcut icon" /><script src="/js/simple-calendar.js" type="text/javascript"></script><script src="/js/styleswitcher.js" type="text/javascript"></script><link rel="alternate" type="application/rss+xml" title="lkml.org : last 100 messages" href="/rss.php" /><link rel="alternate" type="application/rss+xml" title="lkml.org : last messages by David Brownell" href="/groupie.php?aid=1336" /><!--Matomo--><script> var _paq = window._paq = window._paq || []; /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ _paq.push(["setDoNotTrack", true]); _paq.push(["disableCookies"]); _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function() { var u="//m.lkml.org/"; _paq.push(['setTrackerUrl', u+'matomo.php']); _paq.push(['setSiteId', '1']); var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); })(); </script><!--End Matomo Code--></head><body onload="es.jasper.simpleCalendar.init();" itemscope="itemscope" itemtype="http://schema.org/BlogPosting"><table border="0" cellpadding="0" cellspacing="0"><tr><td width="180" align="center"><a href="/"><img style="border:0;width:135px;height:32px" src="/images/toprowlk.gif" alt="lkml.org" /></a></td><td width="32">聽</td><td class="nb"><div><a class="nb" href="/lkml"> [lkml]</a> 聽 <a class="nb" href="/lkml/2005"> [2005]</a> 聽 <a class="nb" href="/lkml/2005/3"> [Mar]</a> 聽 <a class="nb" href="/lkml/2005/3/30"> [30]</a> 聽 <a class="nb" href="/lkml/last100"> [last100]</a> 聽 <a href="/rss.php"><img src="/images/rss-or.gif" border="0" alt="RSS Feed" /></a></div><div>Views: <a href="#" class="nowrap" onclick="setActiveStyleSheet('wrap');return false;">[wrap]</a><a href="#" class="wrap" onclick="setActiveStyleSheet('nowrap');return false;">[no wrap]</a> 聽 <a class="nb" href="/lkml/mheaders/2005/3/30/307" onclick="this.href='/lkml/headers'+'/2005/3/30/307';">[headers]</a>聽 <a href="/lkml/bounce/2005/3/30/307">[forward]</a>聽 </div></td><td width="32">聽</td></tr><tr><td valign="top"><div class="es-jasper-simpleCalendar" baseurl="/lkml/"></div><div class="threadlist">Messages in this thread</div><ul class="threadlist"><li class="root"><a href="/lkml/2005/3/30/280">First message in thread</a></li><li><a href="/lkml/2005/3/30/286">David Brownell</a><ul><li><a href="/lkml/2005/3/30/290">Jeff Garzik</a><ul><li class="origin"><a href="">David Brownell</a></li></ul></li></ul></li></ul><div class="threadlist">Patch in this message</div><ul class="threadlist"><li><a href="/lkml/diff/2005/3/30/307/1">Get diff 1</a></li></ul></td><td width="32" rowspan="2" class="c" valign="top"><img src="/images/icornerl.gif" width="32" height="32" alt="/" /></td><td class="c" rowspan="2" valign="top" style="padding-top: 1em"><table><tr><td><table><tr><td class="lp">From</td><td class="rp" itemprop="author">David Brownell <></td></tr><tr><td class="lp">Subject</td><td class="rp" itemprop="name">Re: [PATCH] USB: usbnet uses netif_msg_*() ethtool filtering</td></tr><tr><td class="lp">Date</td><td class="rp" itemprop="datePublished">Wed, 30 Mar 2005 18:10:44 -0800</td></tr></table></td><td></td></tr></table><pre itemprop="articleBody">On Wednesday 30 March 2005 5:09 pm, Jeff Garzik wrote:<br />> David Brownell wrote:<br />> > <a href="http://www.tux.org/hypermail/linux-vortex/2001-Nov/0021.html">http://www.tux.org/hypermail/linux-vortex/2001-Nov/0021.html</a><br />> > <br />> > If there are other rules, they belong in Documentation/netif-msg.txt<br />> > don't they? That way folk won't be forced to guess. Or risk<br />> > accidentally following the "wrong" set of rules...<br />> <br />> I don't see from the code that the struct net_device interface is going <br />> down (via dev->stop) at that point. Am I mistaken?<br /><br />It's going down, either by netdev->stop() or by hot-unplug, in every<br />place I used the netif_msg_ifdown() filter.<br /><br /><br />> Moreover, if you look at any other user of netif_msg_if{up,down}, you <br />> will see that it does not produce multiple lines of status register <br />> information opaque to anyone but the programmer. Its not a debugging <br />> message, but something a user should feel comfortable enabling (if not <br />> enabled by default).<br /><br />Again, if that's going to become an official guideline it ought to be<br />documented in Documentation/netif-msg.txt ... along with information<br />about how to handle categorization of debug messages.<br /><br />I suspect a general "how to use debug messages" document would help too.<br />With guidance like "fault paths should have diagnostics that let you<br />distinguish each fault", and "never provide success messages at default<br />message logging levels". (Log spamming ... we hates it forever!)<br /><br /><br />If it's wrong to use netif_msg_if{up,down} for debug messages (which go<br />away when DEBUG isn't defined, and yes are intended for debugging aids)<br />which are related to interfaces going up and down ... then what's the<br />"correct" category to filter those out?<br /><br /><br />> >>>@@ -3044,7 +3047,7 @@<br />> >>> <br />> >>> memset(urb->transfer_buffer, 0, urb->transfer_buffer_length);<br />> >>> status = usb_submit_urb (urb, GFP_ATOMIC);<br />> >>>- if (status != 0)<br />> >>>+ if (status != 0 && netif_msg_timer (dev))<br />> >>> deverr(dev, "intr resubmit --> %d", status);<br />> >>> }<br />> >>> <br />> >><br />> >>this looks more like a debugging message?<br />> > <br />> > <br />> > It's an error of the "what do I do now??" variety, triggered by<br />> > what's effectively a timer callback. USB interrupt transfers<br />> > are polled by the host controller according to a schedule that's<br />> > maintained by the HCD.<br />> <br />> The above example seems more like netif_msg_tx_err() or even just KERN_ERR ?<br /><br />It's not coupled to a packet TX or RX, so the guidelines I've seen<br />suggest netif_msg_{tx,rx}_err() would be wrong. Maybe KERN_ERR with<br />no filter would be right ... but I'm used to having one goal of all<br />message filtering as being able to _completely shut up_ the component.<br />That's why there's a filter ... deverr() does wrap KERN_ERR.<br /><br />- Dave<br /><br />-<br />To unsubscribe from this list: send the line "unsubscribe linux-kernel" in<br />the body of a message to majordomo@vger.kernel.org<br />More majordomo info at <a href="http://vger.kernel.org/majordomo-info.html">http://vger.kernel.org/majordomo-info.html</a><br />Please read the FAQ at <a href="http://www.tux.org/lkml/">http://www.tux.org/lkml/</a><br /><br /></pre></td><td width="32" rowspan="2" class="c" valign="top"><img src="/images/icornerr.gif" width="32" height="32" alt="\" /></td></tr><tr><td align="right" valign="bottom"> 聽 </td></tr><tr><td align="right" valign="bottom">聽</td><td class="c" valign="bottom" style="padding-bottom: 0px"><img src="/images/bcornerl.gif" width="32" height="32" alt="\" /></td><td class="c">聽</td><td class="c" valign="bottom" style="padding-bottom: 0px"><img src="/images/bcornerr.gif" width="32" height="32" alt="/" /></td></tr><tr><td align="right" valign="top" colspan="2"> 聽 </td><td class="lm">Last update: 2005-04-06 13:31 聽聽 [from the cache]<br />漏2003-2020 <a href="http://blog.jasper.es/"><span itemprop="editor">Jasper Spaans</span></a>|hosted at <a href="https://www.digitalocean.com/?refcode=9a8e99d24cf9">Digital Ocean</a> and my Meterkast|<a href="http://blog.jasper.es/categories.html#lkml-ref">Read the blog</a></td><td>聽</td></tr></table><script language="javascript" src="/js/styleswitcher.js" type="text/javascript"></script></body></html>