mirror_ubuntu-kernels/drivers/net/ethernet/intel/igc
Muhammad Husaini Zulkifli 790835fcc0 igc: Correct the launchtime offset
The launchtime offset should be corrected according to sections 7.5.2.6
Transmit Scheduling Latency of the Intel Ethernet I225/I226 Software
User Manual.

Software can compensate the latency between the transmission scheduling
and the time that packet is transmitted to the network by setting this
GTxOffset register. Without setting this register, there may be a
significant delay between the packet scheduling and the network point.

This patch helps to reduce the latency for each of the link speed.

Before:

10Mbps   : 11000 - 13800 nanosecond
100Mbps  : 1300 - 1700 nanosecond
1000Mbps : 190 - 600 nanosecond
2500Mbps : 1400 - 1700 nanosecond

After:

10Mbps   : less than 750 nanosecond
100Mbps  : less than 192 nanosecond
1000Mbps : less than 128 nanosecond
2500Mbps : less than 128 nanosecond

Test Setup:

Talker : Use l2_tai.c to generate the launchtime into packet payload.
Listener: Use timedump.c to compute the delta between packet arrival and
LaunchTime packet payload.

Signed-off-by: Vinicius Costa Gomes <vinicius.gomes@intel.com>
Signed-off-by: Muhammad Husaini Zulkifli <muhammad.husaini.zulkifli@intel.com>
Acked-by: Sasha Neftin <sasha.neftin@intel.com>
Acked-by: Paul Menzel <pmenzel@molgen.mpg.de>
Tested-by: Naama Meir <naamax.meir@linux.intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
2022-11-02 11:38:22 -07:00
..
igc_base.c igc: Remove unused phy_type enum 2022-05-10 14:02:40 -07:00
igc_base.h igc: Enable TX via AF_XDP zero-copy 2021-05-20 10:21:42 -07:00
igc_defines.h igc: Correct the launchtime offset 2022-11-02 11:38:22 -07:00
igc_diag.c igc: add support to eeprom, registers and link self-tests 2020-05-18 15:06:28 -07:00
igc_diag.h igc: add support to eeprom, registers and link self-tests 2020-05-18 15:06:28 -07:00
igc_dump.c igb/igc: use strongly typed pointer 2021-05-26 09:11:41 -07:00
igc_ethtool.c net: Remove the obsolte u64_stats_fetch_*_irq() users (drivers). 2022-10-28 20:13:54 -07:00
igc_hw.h igc: Remove forced_speed_duplex value 2022-07-18 09:34:38 -07:00
igc_i225.c igc: Fix infinite loop in release_swfw_sync 2022-04-13 07:58:32 -07:00
igc_i225.h igc: Add initial LTR support 2020-06-29 18:21:09 -07:00
igc_mac.c intel/igc:fix repeated words in comments 2022-06-30 11:06:23 -07:00
igc_mac.h igc: remove IGC_REMOVED function 2020-05-19 15:01:48 -07:00
igc_main.c igc: Correct the launchtime offset 2022-11-02 11:38:22 -07:00
igc_nvm.c
igc_nvm.h
igc_phy.c igc: Change type of the 'igc_check_downshift' method 2022-05-10 14:02:53 -07:00
igc_phy.h igc: Change type of the 'igc_check_downshift' method 2022-05-10 14:02:53 -07:00
igc_ptp.c intel: remove unused macros 2022-06-30 09:40:55 -07:00
igc_regs.h igc: Correct the launchtime offset 2022-11-02 11:38:22 -07:00
igc_tsn.c igc: Correct the launchtime offset 2022-11-02 11:38:22 -07:00
igc_tsn.h igc: Correct the launchtime offset 2022-11-02 11:38:22 -07:00
igc_xdp.c net: Don't include filter.h from net/sock.h 2021-12-29 08:48:14 -08:00
igc_xdp.h igc: Enable RX via AF_XDP zero-copy 2021-05-20 10:21:42 -07:00
igc.h igc: Remove igc_set_spd_dplx method 2022-05-10 14:02:18 -07:00
Makefile igc: Add initial XDP support 2021-03-29 09:09:53 -07:00