On 03.06.2025 11:46 AM, Lifshits, Vitaly wrote:
On 6/1/2025 4:16 PM, ValdikSS wrote:On 01.06.2025 1:04 PM, Lifshits, Vitaly wrote: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?Hello, We've decided to pursue a different solution to the issue.The original workaround may negatively impact system power consumption, as a low LTR value can prevent the CPU from entering deeper power states.As an alternative, and for testing purposes only, could you please check whether the following changes resolve the issue on your system?With this patch, the speed is fast only after suspend/resume cycle.If I just power on the PC, the speed is capped. If I unload the module with the previous patch and insert this one, the speed is also capped and another suspend/resume cycle is required.After suspend/resume, the speed is good. Tested on 6.14.8, with the igc code from 6.14.9.Ok, so I believe that adding this to igc_probe should work: --- a/drivers/net/ethernet/intel/igc/igc_main.c +++ b/drivers/net/ethernet/intel/igc/igc_main.c @@ -7074,6 +7074,8 @@ static int igc_probe(struct pci_dev *pdev, const struct igc_info *ei = igc_info_tbl[ent->driver_data]; int err; + pci_disable_link_state(pdev, PCIE_LINK_STATE_L1_2); + err = pci_enable_device_mem(pdev); if (err) return err; @@ -7498,6 +7500,8 @@ static int __igc_resume(struct device *dev, bool rpm) pci_enable_wake(pdev, PCI_D3hot, 0); pci_enable_wake(pdev, PCI_D3cold, 0); + pci_disable_link_state(pdev, PCIE_LINK_STATE_L1_2); + if (igc_init_interrupt_scheme(adapter, true)) {netdev_err(netdev, "Unable to allocate memory for queues\n");return -ENOMEM;@@ -7623,6 +7627,7 @@ static pci_ers_result_t igc_io_slot_reset(struct pci_dev *pdev)pci_enable_wake(pdev, PCI_D3hot, 0); pci_enable_wake(pdev, PCI_D3cold, 0); + pci_disable_link_state_locked(pdev, PCIE_LINK_STATE_L1_2); /* In case of PCI error, adapter loses its HW address * so we should re-assign it here. */ I think that if this patch works, we can start working on upstreaming it.
It works, thanks!
OpenPGP_signature.asc
Description: OpenPGP digital signature
