mbox series

[v5,0/4] PCI MCFG consolidation and APEI resource filtering

Message ID 20211104105715.47396-1-xuesong.chen@linux.alibaba.com
Headers show
Series PCI MCFG consolidation and APEI resource filtering | expand

Message

Xuesong Chen Nov. 4, 2021, 10:57 a.m. UTC
The issue of commit d91525eb8ee6 ("ACPI, EINJ: Enhance error injection tolerance
level") on x86 is also happened on our own ARM64 platform. We sent a patch[1]
trying to fix this issue in an arch-specific way as x86 does at first, but
according to the suggestion from Lorenzo Pieralisi and Catalin Marinas, we can
consolidate the PCI MCFG part then fix it in a more common way, that's why this
patch series comes.

[1] https://marc.info/?l=linux-arm-kernel&m=163108478627166&w=2

---
Change from v4 to v5:
  - Fix the warning: no previous prototype for 'remove_quirk_mcfg_res' warning
    reported by the kernel test robot.

Change from v3 to v4:
  - Add a new patch (patch #3) to address the quirk ECAM access issue. Because
    the normal ECAM config space can be accessed in a lockless way, so we don't
    need the mutual exclusion with the EINJ action. But those quirks maybe break
    this rule and corrupt the configuration access, reserve its MCFG address
    regions in this case to avoid that happens.

  - Add another patch (patch #4) to log the PCI MCFG entry parse message per
    the suggestion from Bjorn Helgaas. The output on ARM64 as:
    ACPI: MCFG entry for domain 0000 [bus 00-0f] at [mem 0x50000000-0x50ffffff] (base 0x50000000)

  - Commit message updated with more details of patch #2

Change from v2 to v3:
  - Address the comments of Lorenzo Pieralisi about the CONFIG_PCI
    dependence issue in APEI module (patch #2)

Change from v1 to v2:
  - Fix the "undefined reference to `pci_mmcfg_list'" build error in case
    of PCI_CONFIG=n, reported by the kernel test robot

Xuesong Chen (4):
  PCI: MCFG: Consolidate the separate PCI MCFG table entry list
  ACPI: APEI: Filter the PCI MCFG address with an arch-agnostic method
  ACPI: APEI: Reserve the MCFG address for quirk ECAM implementation
  PCI: MCFG: Add the MCFG entry parse log message

 arch/x86/include/asm/pci_x86.h | 17 +----------
 arch/x86/pci/mmconfig-shared.c | 30 -------------------
 drivers/acpi/apei/apei-base.c  | 68 ++++++++++++++++++++++++++++++++----------
 drivers/acpi/pci_mcfg.c        | 46 +++++++++++++++-------------
 drivers/pci/pci.c              |  2 ++
 drivers/pci/quirks.c           |  2 ++
 include/linux/pci.h            | 18 +++++++++++
 7 files changed, 101 insertions(+), 82 deletions(-)

Comments

Bjorn Helgaas Nov. 4, 2021, 3 p.m. UTC | #1
On Thu, Nov 04, 2021 at 06:57:15PM +0800, Xuesong Chen wrote:
> The issue of commit d91525eb8ee6 ("ACPI, EINJ: Enhance error injection tolerance
> level") on x86 is also happened on our own ARM64 platform. We sent a patch[1]
> trying to fix this issue in an arch-specific way as x86 does at first, but
> according to the suggestion from Lorenzo Pieralisi and Catalin Marinas, we can
> consolidate the PCI MCFG part then fix it in a more common way, that's why this
> patch series comes.
> 
> [1] https://marc.info/?l=linux-arm-kernel&m=163108478627166&w=2

Thanks.  I see this and will look at it after getting the v5.16
changes merged.

> ---
> Change from v4 to v5:
>   - Fix the warning: no previous prototype for 'remove_quirk_mcfg_res' warning
>     reported by the kernel test robot.
> 
> Change from v3 to v4:
>   - Add a new patch (patch #3) to address the quirk ECAM access issue. Because
>     the normal ECAM config space can be accessed in a lockless way, so we don't
>     need the mutual exclusion with the EINJ action. But those quirks maybe break
>     this rule and corrupt the configuration access, reserve its MCFG address
>     regions in this case to avoid that happens.
> 
>   - Add another patch (patch #4) to log the PCI MCFG entry parse message per
>     the suggestion from Bjorn Helgaas. The output on ARM64 as:
>     ACPI: MCFG entry for domain 0000 [bus 00-0f] at [mem 0x50000000-0x50ffffff] (base 0x50000000)
> 
>   - Commit message updated with more details of patch #2
> 
> Change from v2 to v3:
>   - Address the comments of Lorenzo Pieralisi about the CONFIG_PCI
>     dependence issue in APEI module (patch #2)
> 
> Change from v1 to v2:
>   - Fix the "undefined reference to `pci_mmcfg_list'" build error in case
>     of PCI_CONFIG=n, reported by the kernel test robot
> 
> Xuesong Chen (4):
>   PCI: MCFG: Consolidate the separate PCI MCFG table entry list
>   ACPI: APEI: Filter the PCI MCFG address with an arch-agnostic method
>   ACPI: APEI: Reserve the MCFG address for quirk ECAM implementation
>   PCI: MCFG: Add the MCFG entry parse log message
> 
>  arch/x86/include/asm/pci_x86.h | 17 +----------
>  arch/x86/pci/mmconfig-shared.c | 30 -------------------
>  drivers/acpi/apei/apei-base.c  | 68 ++++++++++++++++++++++++++++++++----------
>  drivers/acpi/pci_mcfg.c        | 46 +++++++++++++++-------------
>  drivers/pci/pci.c              |  2 ++
>  drivers/pci/quirks.c           |  2 ++
>  include/linux/pci.h            | 18 +++++++++++
>  7 files changed, 101 insertions(+), 82 deletions(-)
> 
> -- 
> 2.9.5
>
Xuesong Chen Nov. 5, 2021, 1:46 a.m. UTC | #2
On 04/11/2021 23:00, Bjorn Helgaas wrote:
> On Thu, Nov 04, 2021 at 06:57:15PM +0800, Xuesong Chen wrote:
>> The issue of commit d91525eb8ee6 ("ACPI, EINJ: Enhance error injection tolerance
>> level") on x86 is also happened on our own ARM64 platform. We sent a patch[1]
>> trying to fix this issue in an arch-specific way as x86 does at first, but
>> according to the suggestion from Lorenzo Pieralisi and Catalin Marinas, we can
>> consolidate the PCI MCFG part then fix it in a more common way, that's why this
>> patch series comes.
>>
>> [1] https://marc.info/?l=linux-arm-kernel&m=163108478627166&w=2
> 
> Thanks.  I see this and will look at it after getting the v5.16
> changes merged.

Ah, Bjorn, I also notice this series is in your patchwork now, hmmm, I don't know why
the previous iterations are not there either, seems something doesn't work as expected
in my side. Probably my fault for the unpeaceful interlude :-)

Thanks,
Xuesong

> 
>> ---
>> Change from v4 to v5:
>>   - Fix the warning: no previous prototype for 'remove_quirk_mcfg_res' warning
>>     reported by the kernel test robot.
>>
>> Change from v3 to v4:
>>   - Add a new patch (patch #3) to address the quirk ECAM access issue. Because
>>     the normal ECAM config space can be accessed in a lockless way, so we don't
>>     need the mutual exclusion with the EINJ action. But those quirks maybe break
>>     this rule and corrupt the configuration access, reserve its MCFG address
>>     regions in this case to avoid that happens.
>>
>>   - Add another patch (patch #4) to log the PCI MCFG entry parse message per
>>     the suggestion from Bjorn Helgaas. The output on ARM64 as:
>>     ACPI: MCFG entry for domain 0000 [bus 00-0f] at [mem 0x50000000-0x50ffffff] (base 0x50000000)
>>
>>   - Commit message updated with more details of patch #2
>>
>> Change from v2 to v3:
>>   - Address the comments of Lorenzo Pieralisi about the CONFIG_PCI
>>     dependence issue in APEI module (patch #2)
>>
>> Change from v1 to v2:
>>   - Fix the "undefined reference to `pci_mmcfg_list'" build error in case
>>     of PCI_CONFIG=n, reported by the kernel test robot
>>
>> Xuesong Chen (4):
>>   PCI: MCFG: Consolidate the separate PCI MCFG table entry list
>>   ACPI: APEI: Filter the PCI MCFG address with an arch-agnostic method
>>   ACPI: APEI: Reserve the MCFG address for quirk ECAM implementation
>>   PCI: MCFG: Add the MCFG entry parse log message
>>
>>  arch/x86/include/asm/pci_x86.h | 17 +----------
>>  arch/x86/pci/mmconfig-shared.c | 30 -------------------
>>  drivers/acpi/apei/apei-base.c  | 68 ++++++++++++++++++++++++++++++++----------
>>  drivers/acpi/pci_mcfg.c        | 46 +++++++++++++++-------------
>>  drivers/pci/pci.c              |  2 ++
>>  drivers/pci/quirks.c           |  2 ++
>>  include/linux/pci.h            | 18 +++++++++++
>>  7 files changed, 101 insertions(+), 82 deletions(-)
>>
>> -- 
>> 2.9.5
>>
Krzysztof Wilczyński Nov. 5, 2021, 1:57 a.m. UTC | #3
Hi,

[...]
> > Thanks.  I see this and will look at it after getting the v5.16
> > changes merged.
> 
> Ah, Bjorn, I also notice this series is in your patchwork now, hmmm, I don't know why
> the previous iterations are not there either, seems something doesn't work as expected
> in my side. Probably my fault for the unpeaceful interlude :-)
[...]

You can check your previous submissions using the following:

  https://patchwork.kernel.org/project/linux-pci/list/?submitter=201963&archive=both&state=*

This changes the default filters to include everything you submitted.

	Krzysztof
Xuesong Chen Nov. 5, 2021, 2:55 a.m. UTC | #4
On 05/11/2021 09:57, Krzysztof Wilczyński wrote:
> Hi,
> 
> [...]
>>> Thanks.  I see this and will look at it after getting the v5.16
>>> changes merged.
>>
>> Ah, Bjorn, I also notice this series is in your patchwork now, hmmm, I don't know why
>> the previous iterations are not there either, seems something doesn't work as expected
>> in my side. Probably my fault for the unpeaceful interlude :-)
> [...]
> 
> You can check your previous submissions using the following:
> 
>   https://patchwork.kernel.org/project/linux-pci/list/?submitter=201963&archive=both&state=*

Ah, yes, it does show all. I thought the previous versions haven't been queued to the patchwork...

Thanks,
Xuesong

> 
> This changes the default filters to include everything you submitted.
> 
> 	Krzysztof
>