Message ID | 20230110180243.1590045-1-helgaas@kernel.org (mailing list archive) |
---|---|
Headers | show |
Series | PCI: Fix extended config space regression | expand |
On 2023-01-10 1:02 p.m., Bjorn Helgaas wrote: > From: Bjorn Helgaas <bhelgaas@google.com> > > 07eab0901ede ("efi/x86: Remove EfiMemoryMappedIO from E820 map") appeared > in v6.2-rc1 and broke extended config space on several machines. > > This broke drivers that use things in extended config space, e.g., perf, > VSEC telemetry, EDAC, QAT, etc. > > This happened because mmconfig-shared.c checks to see that ECAM space is > reserved in E820 or ACPI motherboard resources. If it's not, it assumes > ECAM doesn't work. 07eab0901ede removed some E820 entries, so it looked > like ECAM was no longer reserved, so we stopped using it. > > The machines where this broke don't reserve the ECAM in ACPI PNP0C02 > devices (which seems to be what the PCI Firmware spec requires), but they > do mention it in the EFI memory map as EfiMemoryMappedIO. > > Bjorn Helgaas (2): > x86/pci: Simplify is_mmconf_reserved() messages > x86/pci: Treat EfiMemoryMappedIO as reservation of ECAM space > This patch series fixes the issue on my machine. Tested-by: Kan Liang <kan.liang@linux.intel.com> Thanks, Kan > arch/x86/pci/mmconfig-shared.c | 44 +++++++++++++++++++++++++++++----- > 1 file changed, 38 insertions(+), 6 deletions(-) >
> This broke drivers that use things in extended config space, e.g., perf, > VSEC telemetry, EDAC, QAT, etc. For the EDAC on Broadwell case I reported: Tested-by: Tony Luck <tony.luck@intel.com>
On Tue, Jan 10, 2023 at 12:02:41PM -0600, Bjorn Helgaas wrote: > From: Bjorn Helgaas <bhelgaas@google.com> > > 07eab0901ede ("efi/x86: Remove EfiMemoryMappedIO from E820 map") appeared > in v6.2-rc1 and broke extended config space on several machines. > > This broke drivers that use things in extended config space, e.g., perf, > VSEC telemetry, EDAC, QAT, etc. For QAT: Tested-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
On Tue, Jan 10, 2023 at 12:02:41PM -0600, Bjorn Helgaas wrote: > From: Bjorn Helgaas <bhelgaas@google.com> > > 07eab0901ede ("efi/x86: Remove EfiMemoryMappedIO from E820 map") appeared > in v6.2-rc1 and broke extended config space on several machines. > > This broke drivers that use things in extended config space, e.g., perf, > VSEC telemetry, EDAC, QAT, etc. > > This happened because mmconfig-shared.c checks to see that ECAM space is > reserved in E820 or ACPI motherboard resources. If it's not, it assumes > ECAM doesn't work. 07eab0901ede removed some E820 entries, so it looked > like ECAM was no longer reserved, so we stopped using it. > > The machines where this broke don't reserve the ECAM in ACPI PNP0C02 > devices (which seems to be what the PCI Firmware spec requires), but they > do mention it in the EFI memory map as EfiMemoryMappedIO. > > Bjorn Helgaas (2): > x86/pci: Simplify is_mmconf_reserved() messages > x86/pci: Treat EfiMemoryMappedIO as reservation of ECAM space > > arch/x86/pci/mmconfig-shared.c | 44 +++++++++++++++++++++++++++++----- > 1 file changed, 38 insertions(+), 6 deletions(-) Applied to for-linus for v6.2. Sorry for the breakage and thank you very much for the debugging and testing help!
With this updated patches, perf uncore works fine on SPR(tested on both DNP and MCC). Tested-by: Yunying Sun <yunying.sun@intel.com> -----Original Message----- From: Bjorn Helgaas <helgaas@kernel.org> Sent: Wednesday, 11 January, 2023 02:03 To: linux-pci@vger.kernel.org Cc: Williams, Dan J <dan.j.williams@intel.com>; Kan Liang <kan.liang@linux.intel.com>; Luck, Tony <tony.luck@intel.com>; Box, David E <david.e.box@intel.com>; Sun, Yunying <yunying.sun@intel.com>; Jiang, Dave <dave.jiang@intel.com>; Mika Westerberg <mika.westerberg@linux.intel.com>; Cabiddu, Giovanni <giovanni.cabiddu@intel.com>; Herbert Xu <herbert@gondor.apana.org.au>; Hans de Goede <hdegoede@redhat.com>; Florent DELAHAYE <linuxkernelml@undead.fr>; Konrad J Hambrick <kjhambrick@gmail.com>; Matt Hansen <2lprbe78@duck.com>; Nicholas Johnson <nicholas.johnson-opensource@outlook.com.au>; Benoit Grégoire <benoitg@coeus.ca>; Werner Sembach <wse@tuxedocomputers.com>; mumblingdrunkard@protonmail.com; linux-kernel@vger.kernel.org; Bjorn Helgaas <bhelgaas@google.com> Subject: [PATCH 0/2] PCI: Fix extended config space regression From: Bjorn Helgaas <bhelgaas@google.com> 07eab0901ede ("efi/x86: Remove EfiMemoryMappedIO from E820 map") appeared in v6.2-rc1 and broke extended config space on several machines. This broke drivers that use things in extended config space, e.g., perf, VSEC telemetry, EDAC, QAT, etc. This happened because mmconfig-shared.c checks to see that ECAM space is reserved in E820 or ACPI motherboard resources. If it's not, it assumes ECAM doesn't work. 07eab0901ede removed some E820 entries, so it looked like ECAM was no longer reserved, so we stopped using it. The machines where this broke don't reserve the ECAM in ACPI PNP0C02 devices (which seems to be what the PCI Firmware spec requires), but they do mention it in the EFI memory map as EfiMemoryMappedIO. Bjorn Helgaas (2): x86/pci: Simplify is_mmconf_reserved() messages x86/pci: Treat EfiMemoryMappedIO as reservation of ECAM space arch/x86/pci/mmconfig-shared.c | 44 +++++++++++++++++++++++++++++----- 1 file changed, 38 insertions(+), 6 deletions(-) -- 2.25.1
From: Bjorn Helgaas <bhelgaas@google.com> 07eab0901ede ("efi/x86: Remove EfiMemoryMappedIO from E820 map") appeared in v6.2-rc1 and broke extended config space on several machines. This broke drivers that use things in extended config space, e.g., perf, VSEC telemetry, EDAC, QAT, etc. This happened because mmconfig-shared.c checks to see that ECAM space is reserved in E820 or ACPI motherboard resources. If it's not, it assumes ECAM doesn't work. 07eab0901ede removed some E820 entries, so it looked like ECAM was no longer reserved, so we stopped using it. The machines where this broke don't reserve the ECAM in ACPI PNP0C02 devices (which seems to be what the PCI Firmware spec requires), but they do mention it in the EFI memory map as EfiMemoryMappedIO. Bjorn Helgaas (2): x86/pci: Simplify is_mmconf_reserved() messages x86/pci: Treat EfiMemoryMappedIO as reservation of ECAM space arch/x86/pci/mmconfig-shared.c | 44 +++++++++++++++++++++++++++++----- 1 file changed, 38 insertions(+), 6 deletions(-)