https://bugzilla.kernel.org/show_bug.cgi?id=219629
--- Comment #6 from Evert Vorster (evors...@gmail.com) --- It turns out that I had a little more time on my hands. Here is the output of the kernel bisect: [code] [evert@Evert linux-mainline]$ git bisect good 665745f274870c921020f610e2c99a3b1613519b is the first bad commit commit 665745f274870c921020f610e2c99a3b1613519b Author: Ilpo Järvinen <ilpo.jarvi...@linux.intel.com> Date: Fri Oct 18 17:47:52 2024 +0300 PCI/bwctrl: Re-add BW notification portdrv as PCIe BW controller This mostly reverts the commit b4c7d2076b4e ("PCI/LINK: Remove bandwidth notification"). An upcoming commit extends this driver building PCIe bandwidth controller on top of it. PCIe bandwidth notifications were first added in the commit e8303bb7a75c ("PCI/LINK: Report degraded links via link bandwidth notification") but later had to be removed. The significant changes compared with the old bandwidth notification driver include: 1) Don't print the notifications into kernel log, just keep the Link Speed cached in struct pci_bus updated. While somewhat unfortunate, the log spam was the source of complaints that eventually lead to the removal of the bandwidth notifications driver (see the links below for further information). 2) Besides the Link Bandwidth Management Interrupt, also enable Link Autonomous Bandwidth Interrupt to cover the other source of bandwidth changes. 3) Handle Link Speed updates robustly. Refresh the cached Link Speed when enabling Bandwidth Notification Interrupts, and solve the race between Link Speed read and LBMS/LABS update in pcie_bwnotif_irq_thread(). 4) Use concurrency safe LNKCTL RMW operations. 5) The driver is now called PCIe bwctrl (bandwidth controller) instead of just bandwidth notifications because of increased scope and functionality within the driver. 6) Coexist with the Target Link Speed quirk in pcie_failed_link_retrain(). Provide LBMS counting API for it. 7) Tweaks to variable/functions names for consistency and length reasons. Bandwidth Notifications enable the cur_bus_speed in the struct pci_bus to keep track PCIe Link Speed changes. [bhelgaas: This is based on previous work by Alexandru Gagniuc <mr.nuke...@gmail.com>; see e8303bb7a75c ("PCI/LINK: Report degraded links via link bandwidth notification")] Link: https://lore.kernel.org/r/20241018144755.7875-7-ilpo.jarvi...@linux.intel.com Link: https://lore.kernel.org/all/20190429185611.121751-1-helg...@kernel.org/ Link: https://lore.kernel.org/linux-pci/20190501142942.26972-1-keith.bu...@intel.com/ Link: https://lore.kernel.org/linux-pci/20200115221008.ga191...@google.com/ Suggested-by: Lukas Wunner <lu...@wunner.de> # Building bwctrl on top of bwnotif Signed-off-by: Ilpo Järvinen <ilpo.jarvi...@linux.intel.com> [bhelgaas: squash fix to drop IRQF_ONESHOT and convert to hardirq handler: https://lore.kernel.org/r/20241115165717.15233-1-ilpo.jarvi...@linux.intel.com] Signed-off-by: Bjorn Helgaas <bhelg...@google.com> Tested-by: Stefan Wahren <wahre...@gmx.net> Reviewed-by: Jonathan Cameron <jonathan.came...@huawei.com> MAINTAINERS | 6 ++++ drivers/pci/hotplug/pciehp_ctrl.c | 5 ++++ drivers/pci/pci.c | 2 +- drivers/pci/pci.h | 11 +++++++ drivers/pci/pcie/Makefile | 2 +- drivers/pci/pcie/bwctrl.c | 186 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ drivers/pci/pcie/portdrv.c | 9 +++--- drivers/pci/pcie/portdrv.h | 6 ++-- drivers/pci/quirks.c | 9 +++++- include/linux/pci.h | 2 ++ 10 files changed, 229 insertions(+), 9 deletions(-) create mode 100644 drivers/pci/pcie/bwctrl.c [evert@Evert linux-mainline]$ [/code] -- You may reply to this email to add a comment. You are receiving this mail because: You are watching the assignee of the bug. _______________________________________________ acpi-bugzilla mailing list acpi-bugzilla@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/acpi-bugzilla