On 22.01.2025 7:15 PM, Lifshits, Vitaly wrote:


On 1/22/2025 4:57 PM, ValdikSS wrote:
On 09.12.2024 12:21 PM, ValdikSS wrote:
After (presumably) latest UEFI v0033 update for the NUC, my network is limited to ~250 Mbit/s download unless I disable PCIE ASPM option in UEFI settings. 56:00.0 Ethernet controller [0200]: Intel Corporation Ethernet Controller I226-V [8086:125c] (rev 04)

Hello,

I believe that the issue you are facing is related to PCIE L1.2 state exit latency. To confirm this please try to reproduce it after making the following changes in the igc code:

diff --git a/drivers/net/ethernet/intel/igc/igc_i225.c b/drivers/ net/ ethernet/intel/igc/igc_i225.c
index 0dd61719f1ed..1c0c3d665a0c 100644
--- a/drivers/net/ethernet/intel/igc/igc_i225.c
+++ b/drivers/net/ethernet/intel/igc/igc_i225.c
@@ -612,6 +612,10 @@ s32 igc_set_ltr_i225(struct igc_hw *hw, bool link)
                  */
                 ltr_min = (1000 * size) / speed;
                 ltr_max = ltr_min + tw_system;
+               if (speed == SPEED_1000) {
+                       ltr_min = ltr_max = 100 * 1000;
+               }
+
                 scale_min = (ltr_min / 1024) < 1024 ? IGC_LTRMINV_SCALE_1024 :
                             IGC_LTRMINV_SCALE_32768;
                 scale_max = (ltr_max / 1024) < 1024 ? IGC_LTRMAXV_SCALE_1024 :

That instantly fixed the issue, thanks!

With the patch:

$ curl -o /dev/null http://speedtest.selectel.ru/1GB -4
   % Total    % Received % Xferd  Average Speed   Time    Time Time Current                                   Dload  Upload   Total   Spent Left Speed 100 1024M  100 1024M    0     0  55.3M      0  0:00:18  0:00:18 --:--:-- 59.5M

Without the patch:

$ curl -o /dev/null http://speedtest.selectel.ru/1GB -4
   % Total    % Received % Xferd  Average Speed   Time    Time Time Current                                   Dload  Upload   Total   Spent Left Speed 100 1024M  100 1024M    0     0  21.8M      0  0:00:46  0:00:46 --:--:-- 20.1M

Vitaly, this patch doesn't seem to be sent to the kernel. Is this fix final, or was it intended only for the test?


It was intended mainly for testing to understand if it is the same issue that we faced in the Windows driver.

We haven't yes submitted this patch to the kernel, since we are still evaluating whether this solution is robust enough and doesn't cause any new issues.


Hello, are there any updates on upstreaming this change?

If there haven't been much testing, could it be put behind the module option and disabled by default?

Reply via email to