[RFC PATCH v7 0/3] PCI: Introduce a way to enforce all MMIO BARs not to share PAGE_SIZE

Yongji Xie xyjxie at linux.vnet.ibm.com
Tue Nov 15 13:53:25 AEDT 2016


Hi Bjorn,


Kindly ping. What do you think of the way to fix the bug that 
resources's size is changed

when using resource_alignment. Thanks.


On 2016/10/26 14:53, Yongji Xie wrote:
> This series introduces a way for PCI resource allocator to force
> MMIO 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.
>
> In our solution, we try to make use of the existing code path of
> resource_alignment kernel parameter and add a macro to set default
> alignment for it. Thus we can define this macro by default on some
> archs which may easily hit the performance issue because of their
> 64K page.
>
> In this series, patch 1,2 fixed bugs of using resource_alignment;
> patch 3 adds a macro to set the default alignment of all MMIO BARs.
>
> Changelog v7:
> - Rebased against v4.9-rc2
> - Drop two merged patches
> - Rework the patch which fix a bug that resources's size is changed when
>    using resource_alignment
> - Add a patch that fix a bug for IOV BARs when using resource_alignment
>
> Changelog v6:
> - Remove the option "noresize@" of resource_alignment
>
> Changelog v5:
> - Rebased against v4.8-rc6
> - Drop the patch that forbidding disable memory decoding in
>    pci_reassigndev_resource_alignment()
>
> Changelog v4:
> - Rebased against v4.8-rc1
> - Drop one irrelevant patch
> - Drop the patch that adding wildcard to resource_alignment to enforce
>    the alignment of all MMIO BARs to be at least PAGE_SIZE
> - Change the format of option "noresize" of resource_alignment
> - Code style improvements
>
> 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 (3):
>    PCI: Ignore requested alignment for IOV BARs
>    PCI: Restore resource's size if we expand it by using resource_alignment
>    PCI: Add a macro to set default alignment for all PCI devices
>
>   arch/powerpc/include/asm/pci.h |    4 ++++
>   drivers/pci/pci.c              |    6 +++++-
>   drivers/pci/setup-bus.c        |   19 +++++++++++++++++++
>   include/linux/pci.h            |    1 +
>   4 files changed, 29 insertions(+), 1 deletion(-)
>



More information about the Linuxppc-dev mailing list