[Devel] [PATCH RH9 20/22] drivers/igb: increase link detection timeout up to 5 sec

Andrey Zhadchenko andrey.zhadchenko at virtuozzo.com
Thu Oct 7 13:57:44 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.

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>

(cherry picked from vz8 commit c4c425c138e46cd568208e396182993b0707d0af)
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 171a7a6..5b22940 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -5419,7 +5419,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);
 
@@ -5511,7 +5511,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