myri10ge updates for 2.6.22
Subsystems (2)
cover myri10ge updates for 2.6.22
Hi Jeff,
Here's a small patchset for myri10ge in 2.6.22:
1) report link up/down in standard ethtool way
2) limit the number of recoveries
3) update driver version
Please apply.
Thanks!
Brice
PATCH 1/3 myri10ge: report link up/down in standard ethtool way
Report link up/down in standard ethtool way
--- drivers/net/myri10ge/myri10ge.c | 1 + 1 file changed, 1 insertion(+)
drivers/net/myri10ge/myri10ge.c +1 -0
@@ -1472,6 +1472,7 @@ .set_sg = ethtool_op_set_sg, .get_tso = ethtool_op_get_tso, .set_tso = ethtool_op_set_tso, + .get_link = ethtool_op_get_link, .get_strings = myri10ge_get_strings, .get_stats_count = myri10ge_get_stats_count, .get_ethtool_stats = myri10ge_get_ethtool_stats,
Jeff Garzik
AppliedRe: [PATCH 1/3] myri10ge: report link up/down in standard ethtool way
Quoted 6 lines · Brice Goglin
Report link up/down in standard ethtool way
Signed-off-by Brice Goglin <[email protected]>--- drivers/net/myri10ge/myri10ge.c | 1 + 1 file changed, 1 insertion(+)
applied to #upstream-fixes
PATCH 2/3 myri10ge: limit the number of recoveries
In reply to Brice GoglinLimit the number of recoveries from a NIC hw watchdog reset to 1 by default. It enables detection of defective NICs immediately since these memory parity errors are expected to happen very rarely (less than once per century*NIC). However, a defective NIC (very rare, fortunately) can see such an error quite often, ie. every few minutes under high load.
Make the limit tunable to allow people with mission critical installations to crank up the tunable and recover an INTMAX number of times while waiting for a downtime window to replace the NIC. The performance won't be optimal, but at least, it will still work.
--- drivers/net/myri10ge/myri10ge.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-)
drivers/net/myri10ge/myri10ge.c +13 -2
@@ -279,6 +279,11 @@module_param (myri10ge_fill_thresh, int,S_IRUGO |S_IWUSR );MODULE_PARM_DESC (myri10ge_fill_thresh,"Number of empty rx slots allowed\n" ); +static int myri10ge_reset_recover =1 ; +module_param (myri10ge_reset_recover, int,S_IRUGO |S_IWUSR ); +MODULE_PARM_DESC (myri10ge_reset_recover, +"Number of recoveries allowed from NIC hw reset\n" ); +static int myri10ge_wcfifo =0 ;module_param (myri10ge_wcfifo, int,S_IRUGO );MODULE_PARM_DESC (myri10ge_wcfifo,"Enable WC Fifo when WC is enabled\n" );
@@ -2730,8 +2735,14 @@* For now, just report it */ reboot =myri10ge_read_reboot (mgp);printk (KERN_ERR -"myri10ge: %s: NIC rebooted (0x%x), resetting\n" , - mgp->dev->name, reboot); +"myri10ge: %s: NIC rebooted (0x%x),%s resetting\n" , + mgp->dev->name, reboot, + myri10ge_reset_recover ?" " :" not" ); +if (myri10ge_reset_recover ==0 ) +return ; + + myri10ge_reset_recover--; +/* * A rebooted nic will come back with config space as * it was after power was applied to PCIe bus.
Re: [PATCH 2/3] myri10ge: limit the number of recoveries
Quoted 11 lines · Brice Goglin
Limit the number of recoveries from a NIC hw watchdog reset to 1 by default. It enables detection of defective NICs immediately since these memory parity errors are expected to happen very rarely (less than once per century*NIC). However, a defective NIC (very rare, fortunately) can see such an error quite often, ie. every few minutes under high load.
Make the limit tunable to allow people with mission critical installations to crank up the tunable and recover an INTMAX number of times while waiting for a downtime window to replace the NIC. The performance won't be optimal, but at least, it will still work.
Quoted 4 lines
Signed-off-by Brice Goglin <[email protected]>--- drivers/net/myri10ge/myri10ge.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-)
NAK. Random broken (unrelated to silicon errata) can happen in any field installation, and manifest itself in any number of ways.
If defective NICs are truly rare, it does not sound worth adding this workaround to the driver.
If I had to guess, this is a meaningless gesture (from a technical standpoint) for a Big Customer(tm) who is currently throwing a temper-tantrum... :)
By definition if you can give them a patch, and they can wait for the driver patch going upstream, then it is not a "mission critical" situation, otherwise they would already have the patch direct from you.
Also, "mission critical" tends to imply that you cannot remove the
driver from operation either, which is counter to the logic of patching a driver for the problem.
Jeff
cover myri10ge: limit the number of recoveries
Quoted 18 lines · Jeff Garzik
Quoted 17 lines · Brice Goglin
Limit the number of recoveries from a NIC hw watchdog reset to 1 by default.
It enables detection of defective NICs immediately since these memory parity
errors are expected to happen very rarely (less than once per century*NIC).
However, a defective NIC (very rare, fortunately) can see such an error quite often, ie. every few minutes under high load.Make the limit tunable to allow people with mission critical installations
to crank up the tunable and recover an INTMAX number of times while waiting
for a downtime window to replace the NIC. The performance won't be optimal,
but at least, it will still work.
Quoted 6 lines
Quoted 4 lines
Signed-off-by Brice Goglin <[email protected]>--- drivers/net/myri10ge/myri10ge.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-)NAK.
Ok...
Then please apply the following patch which limits the number of recovery to 1 without making it tunable. It will at least enable detection of bad NICs.
Brice
PATCH 1/1 myri10ge: limit the number of recoveries
Limit the number of recoveries from a NIC hw watchdog reset to 1 by default. It enables detection of defective NICs immediately since these memory parity errors are expected to happen very rarely (less than once per century*NIC).
--- drivers/net/myri10ge/myri10ge.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-)
drivers/net/myri10ge/myri10ge.c +10 -2
@@ -279,6 +279,8 @@module_param (myri10ge_fill_thresh, int,S_IRUGO |S_IWUSR );MODULE_PARM_DESC (myri10ge_fill_thresh,"Number of empty rx slots allowed\n" ); +static int myri10ge_reset_recover =1 ; +static int myri10ge_wcfifo =0 ;module_param (myri10ge_wcfifo, int,S_IRUGO );MODULE_PARM_DESC (myri10ge_wcfifo,"Enable WC Fifo when WC is enabled\n" );
@@ -2730,8 +2732,14 @@* For now, just report it */ reboot =myri10ge_read_reboot (mgp);printk (KERN_ERR -"myri10ge: %s: NIC rebooted (0x%x), resetting\n" , - mgp->dev->name, reboot); +"myri10ge: %s: NIC rebooted (0x%x),%s resetting\n" , + mgp->dev->name, reboot, + myri10ge_reset_recover ?" " :" not" ); +if (myri10ge_reset_recover ==0 ) +return ; + + myri10ge_reset_recover--; +/* * A rebooted nic will come back with config space as * it was after power was applied to PCIe bus.
PATCH 3/3 myri10ge: update driver version
In reply to Brice GoglinUpdate driver version to 1.3.1-1.245.
--- drivers/net/myri10ge/myri10ge.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/net/myri10ge/myri10ge.c +1 -1
@@ -71,7 +71,7 @@#include "myri10ge_mcp.h" #include "myri10ge_mcp_gen_header.h" -#define MYRI10GE_VERSION_STR "1.3.0-1.233" +#define MYRI10GE_VERSION_STR "1.3.1-1.245"MODULE_DESCRIPTION ("Myricom 10G driver (10GbE)" );MODULE_AUTHOR ("Maintainer: [email protected]" );