The introduction of system technologies that improve devices capabilities and performance (eg PCI ATS (Address Translation Service)/PRI(Page Request Interface), enabling Shared Virtual Memory (SVM) between devices and CPUs) is making PCI devices, the system IOMMUs they are connected to and the VFIO layer used to managed them (for userspace and device passthrough) more and more tightly coupled, with related kernel interfaces that have to be designed in-sync for all three subsystems.

The kernel patches aimed at enabling the related technologies affect VFIO/IOMMU/PCI subsystems and interfaces, which require a certain amount of coordination between kernel subsystems to make sure that the related interfaces are designed to work in a seamless manner.

The Linux Plumbers 2017 VFIO/IOMMU/PCI track will therefore focus on promoting discussions on the current kernel patches aimed at VFIO/IOMMU/PCI subsystems with specific sessions targeting discussion for kernel patches that enable technology (ie Shared Virtual Memory - SVM) requiring the three subsystems coordination; the microconference will also cover VFIO/IOMMU/PCI subsystem specific tracks to debate patches status for the respective subsystems plumbing.

Tentative Schedule

The tentative schedule will provide an update on the current state of VFIO/IOMMU/PCI kernel subsystems followed by discussion of current issues in the proposed topics, starting with a joint discussion on patches aimed at enabling Shared Virtual Memory (SVM) technologies.

Topics that are under consideration for this microconf include (but are not limited to):


  • Shared Virtual Memory (SVM) interface
    • Sharing host or guest page tables with devices
    • Reporting I/O page faults to userspace


  • IOMMU drivers SVM interface consolidation
  • IOMMUs virtualization


  • PCI ATS (Address Translation Service)/PASID (Process Address Space ID)/PRI (Page Request Interface) interface
  • PCI resources allocation refactoring
    • Consolidation of different arches resource allocation code into PCI core code
    • Improvements/refactoring of the current resources allocation code (PCI_PROBE_ONLY, IORESOURCE_PCI_FIXED handling, PCIe Enhanced Allocation)
    • FW/OS resource handover interface (BIOS PCI BARs allocation and related kernel policy for resources claiming)
    • Bridges apertures sizing
    • Resources resizing
  • PCI resets management improvements
  • peer-to-peer enablement

* NVMe Surprise Removal

  • Discuss issues around supporting NVMe surprise removal
  • PCIe DPC, PCIe error handling, PCIe non-posted transactions, Platform considerations, Test cases/scenarios
  • NVMe specific usecases

Proposed topics

Please add your topics here:

* SVM Virtualization (Yi Liu yi.l.liu@intel.com): status update based on Intel vIOMMU implementation. take the chance to finalize IOMMU/VFIO APIs which should support both emulated IOMMUs and also virtio-IOMMU.

* IOMMU API (Jacob Pan jacob.jun.pan@linux.intel.com): IOMMU API extensions for supporting guest SVM, bind PASID, fault notifications, and invalidation passdown.

* Zero-copy Receive API (Kalman Methmeth@il.ibm.com): Define interfaces needed to leverage receive-side steering abilities of modern high speed network cards to implement zero-copy receive for virtio-net and vhost.

* PCI error reporting (Kyle McMartin jkkm@fb.com, Jes Sorensen jsorensen@fb.com): PCI Express Root Port Advanced Error Reporting currently only supports reporting errors to the console. Having to monitor console logs is tedious and complicated when running a large data centre. We would like to propose adding software counters to the PCIAER driver and make these accessible via sysfs.

* NVMe Surprise removal (Shyam Iyer shyam.iyer@dell.com): Discuss issues related to supporting NVMe surprise removal.

Key Attendees (add yourself)

  • Jean-Philippe Brucker
  • Keith Busch
  • Will Deacon
  • Bjorn Helgaas
  • Yinghai Lu
  • Lorenzo Pieralisi
  • Joerg Roedel
  • Alex Williamson
  • Marc Zyngier
  • Leon Romanovsky
  • Alexander Deucher
  • Ashok Raj
  • Kevin Tian
  • Yi L.Liu
  • Myron Stowe
  • Jacob Jun Pan
  • Don Dutile
  • Kalman Meth
  • Ben Serebrin
  • Jes Sorensen
  • Kyle McMartin
  • Kishon Vijay Abraham I
  • Shyam Iyer
  • Jon Derrick
  • Jonathan Cameron


Bjorn Helgaas bhelgaas@google.com Lorenzo Pieralisi lorenzo.pieralisi@arm.com Joerg Roedel joro@8bytes.org Alex Williamson alex.williamson@redhat.com

2017/vfio_iommu_pci.txt · Last modified: 2017/09/13 00:30 by
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki