linux-stable/drivers/net/ethernet/intel/igb
Kai-Heng Feng 4e0effd900 igb: Make DMA faster when CPU is active on the PCIe link
Intel I210 on some Intel Alder Lake platforms can only achieve ~750Mbps
Tx speed via iperf. The RR2DCDELAY shows around 0x2xxx DMA delay, which
will be significantly lower when 1) ASPM is disabled or 2) SoC package
c-state stays above PC3. When the RR2DCDELAY is around 0x1xxx the Tx
speed can reach to ~950Mbps.

According to the I210 datasheet "8.26.1 PCIe Misc. Register - PCIEMISC",
"DMA Idle Indication" doesn't seem to tie to DMA coalesce anymore, so
set it to 1b for "DMA is considered idle when there is no Rx or Tx AND
when there are no TLPs indicating that CPU is active detected on the
PCIe link (such as the host executes CSR or Configuration register read
or write operation)" and performing Tx should also fall under "active
CPU on PCIe link" case.

In addition to that, commit b6e0c419f0 ("igb: Move DMA Coalescing init
code to separate function.") seems to wrongly changed from enabling
E1000_PCIEMISC_LX_DECISION to disabling it, also fix that.

Fixes: b6e0c419f0 ("igb: Move DMA Coalescing init code to separate function.")
Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Tested-by: Gurucharan <gurucharanx.g@intel.com> (A Contingent worker at Intel)
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Link: https://lore.kernel.org/r/20220621221056.604304-1-anthony.l.nguyen@intel.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2022-06-22 18:46:24 -07:00
..
Makefile
e1000_82575.c igb: Fix -Wunused-const-variable warning 2021-06-01 17:00:51 -07:00
e1000_82575.h
e1000_defines.h igb: Redistribute memory for transmit packet buffers when in Qav mode 2021-04-16 10:42:52 -07:00
e1000_hw.h igb: Fix duplicate include guard 2021-03-19 08:47:46 -07:00
e1000_i210.c igb: remove never changed variable `ret_val' 2021-12-21 09:17:47 -08:00
e1000_i210.h
e1000_mac.c igb: Add counter to i21x doublecheck 2021-07-23 09:08:11 -07:00
e1000_mac.h
e1000_mbx.c intel: clean up mismatched header comments 2021-03-23 11:34:02 -07:00
e1000_mbx.h
e1000_nvm.c ethernet/intel: Convert fallthrough code comments 2020-07-01 13:47:43 -07:00
e1000_nvm.h
e1000_phy.c igb: Fix fall-through warnings for Clang 2021-03-23 11:34:02 -07:00
e1000_phy.h
e1000_regs.h
igb.h igb: Fix XDP with PTP enabled 2021-06-03 08:38:37 -07:00
igb_ethtool.c igb: Convert kmap() to kmap_local_page() 2022-05-05 08:37:14 -07:00
igb_hwmon.c
igb_main.c igb: Make DMA faster when CPU is active on the PCIe link 2022-06-22 18:46:24 -07:00
igb_ptp.c igb: zero hwtstamp by default 2022-03-17 08:32:28 -07:00