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

Alexey Kardashevskiy aik at ozlabs.ru
Tue Dec 20 18:22:38 AEDT 2016


On 01/12/16 13:32, Alexey Kardashevskiy wrote:
> On 15/11/16 13:53, Yongji Xie wrote:
>> 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.
> 
> 
> Could anyone please comment on this? Thanks!


Anyone, please?


> 
> 
> 
>>
>>
>> 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(-)
>>>
>>
> 
> 


-- 
Alexey


More information about the Linuxppc-dev mailing list