Dear Christopher,

Thank you for the patch.

I’d use the more specific summary/title below:

igc: Lengthen hardware retry time to 4 μs to prevent timeouts

Am 06.11.24 um 19:47 schrieb Christopher S M Hall:
Lengthen the hardware retry timer to four microseconds.

The i225/i226 hardware retries if it receives an inappropriate response
from the upstream device. If the device retries too quickly, the root
port does not respond.

Any idea why? Is it documented somewhere?

The issue can be reproduced with the following:

$ sudo phc2sys -R 1000 -O 0 -i tsn0 -m

Note: 1000 Hz (-R 1000) is unrealistically large, but provides a way to
quickly reproduce the issue.

PHC2SYS exits with:

"ioctl PTP_OFFSET_PRECISE: Connection timed out" when the PTM transaction
   fails

Why four microseconds, and not some other value?

Fixes: 6b8aa753a9f9 ("igc: Decrease PTM short interval from 10 us to 1 us")
Reviewed-by: Michal Swiatkowski <michal.swiatkow...@linux.intel.com>
Tested-by: Mor Bar-Gabay <morx.bar.ga...@intel.com>
Tested-by: Avigail Dahan <avigailx.da...@intel.com>
Signed-off-by: Christopher S M Hall <christopher.s.h...@intel.com>
---
  drivers/net/ethernet/intel/igc/igc_defines.h | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/intel/igc/igc_defines.h 
b/drivers/net/ethernet/intel/igc/igc_defines.h
index 2ff292f5f63b..84521a4c35b4 100644
--- a/drivers/net/ethernet/intel/igc/igc_defines.h
+++ b/drivers/net/ethernet/intel/igc/igc_defines.h
@@ -574,7 +574,7 @@
  #define IGC_PTM_CTRL_SHRT_CYC(usec)   (((usec) & 0x3f) << 2)
  #define IGC_PTM_CTRL_PTM_TO(usec)     (((usec) & 0xff) << 8)
-#define IGC_PTM_SHORT_CYC_DEFAULT 1 /* Default short cycle interval */
+#define IGC_PTM_SHORT_CYC_DEFAULT      4   /* Default short cycle interval */
  #define IGC_PTM_CYC_TIME_DEFAULT      5   /* Default PTM cycle time */
  #define IGC_PTM_TIMEOUT_DEFAULT               255 /* Default timeout for PTM 
errors */


Kind regards,

Paul

Reply via email to