[Devel] [PATCH RH8 v2 1/7] drivers/igb: increase link detection timeout up to 5 sec

Andrey Zhadchenko andrey.zhadchenko at virtuozzo.com
Wed Jun 9 11:18:56 MSK 2021


From: Konstantin Khorenko <khorenko at virtuozzo.com>

We hit again and again the situation when Intel igb network cards
detection takes 3 seconds while timeout is set to 2 seconds.

Let's increase the timeout up to 5 seconds.

https://pmc.acronis.com/browse/VSTOR-14627

Signed-off-by: Konstantin Khorenko <khorenko at virtuozzo.com>

++++++++++++

drivers/igb: increase link detection timeout up to 10 sec

5 second timeout appeared not enough and Intel igb network cards
sometomes require more time to detect the link.

So, let's increase the timeout up to 10 seconds and
produce a WARNING in case 10 seconds is not enough as well.

Fixes: dc01dda30fd0 ("drivers/igb: increase link detection timeout up to
5 sec")

https://jira.sw.ru/browse/PSBM-95074
https://pmc.acronis.com/browse/VSTOR-14627

Signed-off-by: Konstantin Khorenko <khorenko at virtuozzo.com>

Merged following commits during rebase to vz8:
- 377e583f2a84 ("drivers/igb: increase link detection timeout up to 5 sec")
- 5381f4f189e1 ("drivers/igb: increase link detection timeout up to 10 sec")

Signed-off-by: Andrey Zhadchenko <andrey.zhadchenko at virtuozzo.com>
---
 drivers/net/ethernet/intel/igb/igb_main.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
index b46bff8..e6b90c4 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -5249,7 +5249,7 @@ static void igb_watchdog_task(struct work_struct *work)
 	u32 link;
 	int i;
 	u32 connsw;
-	u16 phy_data, retry_count = 20;
+	u16 phy_data, retry_count = 100;
 
 	link = igb_has_link(adapter);
 
@@ -5341,7 +5341,8 @@ static void igb_watchdog_task(struct work_struct *work)
 					retry_count--;
 					goto retry_read_status;
 				} else if (!retry_count) {
-					dev_err(&adapter->pdev->dev, "exceed max 2 second\n");
+					dev_err(&adapter->pdev->dev, "exceed max 10 second\n");
+					WARN_ONCE(1, "igb timeout exceed 10 seconds");
 				}
 			} else {
 				dev_err(&adapter->pdev->dev, "read 1000Base-T Status Reg\n");
-- 
1.8.3.1



More information about the Devel mailing list