From: Jeff Garzik <[EMAIL PROTECTED]> Date: Wed, 07 Dec 2005 14:27:50 -0500
> If so, it sounds like copybreak should be disabled by default, and/or a > runtime switched added for it. This logic applies to all drivers, though. If you're cpu loaded, then yes copying the packets will require more cpu work and thus decrease your packet processing rates, duh.. :-) Having it off by default is a bad idea from a socket perspective. When you have 64 byte data packets consuming 1500+ bytes of data storage, which is what you get with copybreak disabled, TCP spends all of it's time copying packet data around as the socket buffering limits on receive are hit quite quickly due to the bad "real data to space used" ratio. So for non-routers, copybreak results in less cpu work and smoother TCP transfers especially under loss. To me it's a small price to pay for cleaner socket buffer utilization. Regardless of the decision, it's incorrect to point out e1000 specifically as many other Linux networking drivers do copybreak too and I've always public advocated for copybreak to be used by drivers due to the socket buffering issue. Whatever we decide here about copybreak, we should apply consistently across all drivers and my vote is on by default with an ethtool switch folks can use to tweak this. I can even do the tg3 bits :-) - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html