diff mbox

[RFC] mark devices with broken LRO implementation

Message ID 20101206091010.036cd78b@nehalam
State RFC, archived
Delegated to: David Miller
Headers show

Commit Message

stephen hemminger Dec. 6, 2010, 5:10 p.m. UTC
The kernel uses dev_disable_lro to disable Large Receive Offload
for cases where it is inappropriate. But several drivers do not implement
the required hook.  This is a "penalty box" patch to encourage those
drivers to add support for the necessary ethtool set_flags.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
---
I only found three drivers that are broken. Normally, I would just fix
them; but since changing state in the device is hardware specific, and
I don't have the hardware or specs to do anything useful to fix it.

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Olof Johansson Dec. 6, 2010, 5:18 p.m. UTC | #1
On Mon, Dec 06, 2010 at 09:10:10AM -0800, Stephen Hemminger wrote:
> The kernel uses dev_disable_lro to disable Large Receive Offload
> for cases where it is inappropriate. But several drivers do not implement
> the required hook.  This is a "penalty box" patch to encourage those
> drivers to add support for the necessary ethtool set_flags.
> 
> Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>

pasemi_mac:

Acked-by: Olof Johansson <olof@lixom.net>

> I only found three drivers that are broken. Normally, I would just fix
> them; but since changing state in the device is hardware specific, and
> I don't have the hardware or specs to do anything useful to fix it.

Thanks. All my hardware is currently in storage due to my relocation, but
I'll take a look at it when I have something to run on back. :-)


-Olof

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Miller Dec. 6, 2010, 5:28 p.m. UTC | #2
From: Olof Johansson <olof@lixom.net>
Date: Mon, 6 Dec 2010 11:18:16 -0600

> On Mon, Dec 06, 2010 at 09:10:10AM -0800, Stephen Hemminger wrote:
>> The kernel uses dev_disable_lro to disable Large Receive Offload
>> for cases where it is inappropriate. But several drivers do not implement
>> the required hook.  This is a "penalty box" patch to encourage those
>> drivers to add support for the necessary ethtool set_flags.
>> 
>> Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
> 
> pasemi_mac:
> 
> Acked-by: Olof Johansson <olof@lixom.net>
> 
>> I only found three drivers that are broken. Normally, I would just fix
>> them; but since changing state in the device is hardware specific, and
>> I don't have the hardware or specs to do anything useful to fix it.
> 
> Thanks. All my hardware is currently in storage due to my relocation, but
> I'll take a look at it when I have something to run on back. :-)

I don't think we can do what this patch does.

It serves no purpose, as it just means the user is going to have an
extra headache to turn their driver on.

And %99 of them won't see it, the distribution folks will.

So this is all for nothing.

Better to just work on fixing the problem in the few drivers for
which the issue exists.

And I'm always happy to receive patches that just plain rip LRO
support out of such drivers.  That's a real legitimate patch unlike
this one because it keeps the user able to get their driver enabled
with no fuss and it removes only the improperly functioning feature.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

--- a/drivers/net/Kconfig	2010-12-06 08:52:30.376926696 -0800
+++ b/drivers/net/Kconfig	2010-12-06 09:02:02.013224592 -0800
@@ -28,6 +28,13 @@  menuconfig NETDEVICES
 # that for each of the symbols.
 if NETDEVICES
 
+config BROKEN_LRO
+       bool
+       ---help---
+         Allow drivers with partial Large Receive Offload support. These drivers
+	 do not implement the necessary feature of disabling LRO support via
+	 the ethtool set_flags operation.
+
 config IFB
 	tristate "Intermediate Functional Block support"
 	depends on NET_CLS_ACT
@@ -2675,7 +2682,7 @@  config CHELSIO_T4VF
 
 config EHEA
 	tristate "eHEA Ethernet support"
-	depends on IBMEBUS && INET && SPARSEMEM
+	depends on IBMEBUS && INET && SPARSEMEM && BROKEN_LRO
 	select INET_LRO
 	---help---
 	  This driver supports the IBM pSeries eHEA ethernet adapter.
@@ -2848,7 +2855,7 @@  config NIU
 
 config PASEMI_MAC
 	tristate "PA Semi 1/10Gbit MAC"
-	depends on PPC_PASEMI && PCI && INET
+	depends on PPC_PASEMI && PCI && INET && BROKEN_LRO
 	select PHYLIB
 	select INET_LRO
 	help
@@ -2857,7 +2864,7 @@  config PASEMI_MAC
 
 config MLX4_EN
 	tristate "Mellanox Technologies 10Gbit Ethernet support"
-	depends on PCI && INET
+	depends on PCI && INET && BROKEN_LRO
 	select MLX4_CORE
 	select INET_LRO
 	help