Skip to content
  • Yongji Xie's avatar
    PCI: Add pcibios_default_alignment() for arch-specific alignment control · 0a701aa6
    Yongji Xie authored
    
    
    When VFIO passes through a PCI device to a guest, it does not allow the
    guest to mmap BARs that are smaller than PAGE_SIZE unless it can reserve
    the rest of the page (see vfio_pci_probe_mmaps()). This is because a page
    might contain several small BARs for unrelated devices and a guest should
    not be able to access all of them.
    
    VFIO emulates guest accesses to non-mappable BARs, which is functional but
    slow. On systems with large page sizes, e.g., PowerNV with 64K pages, BARs
    are more likely to share a page and performance is more likely to be a
    problem.
    
    Add a weak function to set default alignment for all PCI devices.  An arch
    can override it to force the PCI core to place memory BARs on their own
    pages.
    
    Signed-off-by: default avatarYongji Xie <elohimes@gmail.com>
    Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
    0a701aa6