[PATCH v3 0/7] PCI: Add support for enforcing all MMIO BARs not to share PAGE_SIZE

Yongji Xie xyjxie at linux.vnet.ibm.com
Tue Jul 12 15:09:38 AEST 2016

Hi Bjorn,

Any comment on V3?



On 2016/6/30 18:53, Yongji Xie wrote:
> This series aims to add an option for PCI resource allocator to
> force BARs not to share PAGE_SIZE. This would make sense to VFIO
> driver. Because current VFIO implementation disallows to mmap
> sub-page(size < PAGE_SIZE) MMIO BARs which may share the same page
> with other BARs for security reasons. Thus, we have to handle mmio
> access to these BARs in QEMU emulation rather than in guest which
> will cause some performance loss.
> To achieve that, we would like to make use of the existing
> resource_alignment kernel parameter and force a minimum alignment
> of PAGE_SIZE. It's flexible. And we can enable it by default on
> some archs which may easily hit the performance issue because of
> their 64K page.
> In this series, patch 1,2,3 fixed bugs of using resource_alignment;
> patch 4,5 tried to add a new option for resource_alignment to use
> IORESOURCE_STARTALIGN to specify the alignment of PCI BARs; patch 6
> modified resource_alignment to support syntax which can be used to
> enforce the alignment of all MMIO BARs to be at least PAGE_SIZE;
> patch 7 enabled this feature by default on PowerNV platform.
> Changelog v3:
> - Ignore enforced alignment to fixed BARs
> - Fix issue that disabling memory decoding when reassigning the alignment
> - Only enable default alignment on PowerNV platform
> Changelog v2:
> - Ignore enforced alignment to VF BARs on pci_reassigndev_resource_alignment()
> Yongji Xie (7):
>    PCI: Ignore enforced alignment when kernel uses existing firmware setup
>    PCI: Ignore enforced alignment to VF BARs
>    PCI: Do not disable memory decoding in pci_reassigndev_resource_alignment()
>    PCI: Add a new option for resource_alignment to reassign alignment
>    PCI: Do not use IORESOURCE_STARTALIGN to identify bridge resources
>    PCI: Add support for enforcing all MMIO BARs to be page aligned
>    PCI: Add a macro to set default alignment for all PCI devices
>   Documentation/kernel-parameters.txt |    7 +-
>   arch/powerpc/include/asm/pci.h      |    4 ++
>   drivers/pci/pci.c                   |  123 +++++++++++++++++++++++++++--------
>   drivers/pci/setup-bus.c             |    9 ++-
>   4 files changed, 111 insertions(+), 32 deletions(-)

More information about the Linuxppc-dev mailing list