We are pleased to announce that the VFIO/IOMMU/PCI Microconference has been accepted into the 2021 Linux Plumbers Conference. Today’s high speed components commonly utilize the devices that implement the PCI interconnect specification and the system IOMMUs that provide memory and access control between the devices and the system resources. The features of this domain are constantly increasing with such features as:
- Address Translation Service (ATS)/Page Request Interface (PRI)
- Single-root I/O Virtualization (SR-IOV)/Process Address Space ID (PASID)
- Shared Virtual Addressing (SVA)
- Remote Direct Memory Access (RDMA)
- Peer-to-Peer DMA (P2PDMA)
- Cache Coherent Interconnect for Accelerators (CCIX)
- Compute Express Link (CXL)
- Data Object Exchange (DOE)
- Gen-Z
Last year’s meetup achieved the following:
- A path towards converting the Intel IOMMU driver for it to use DMA-IOMMU was defined
- Support for exposing devices to userspace using either VFIO mdev or userspace DMA was debated and brought a solution forward
- A discussion was held concerning drivers ability to enable PCI capabilities explicitly without current implicit support through the IOMMU drivers so that the number of newly added quirks can be reduced should there be a broken or buggy feature present. This discussion paved the way closer to a working solution
- The groundwork for improving security and management of both the internal and external (“trusted” and “untrusted”) devices was discussed defining changes that have to be completed going forward
- To ease problems with the hot-plug support, two concepts were presented and reviewed: movable BARs and movable bus number. A discourse followed during which the current issues were widely discussed and a possible solution was debated setting a tone for future work
- A proposal put forward to address the lack of endpoint function drivers ability to perform data transfer between the Root Complex (RC) and Endpoint (EP) leveraging the existing VirtIO infrastructure was reviewed and debated, where then a path forward has been identified
- A series of enhancements to IOMMU and VFIO user APIs for guest Shared Virtual Address (SVA) have been discussed with work already pending inclusion into the mainline kernel
This year’s topics to be discussed include:
- VFIO
- Write-combine on non-x86 architectures
- I/O Page Fault (IOPF) for passthrough devices
- Shared Virtual Addressing (SVA) interface
- Single-root I/O Virtualization(SRIOV)/Process Address Space ID (PASID) integration
- PASID in SRIOV virtual functions
- Device assignment/sub-assignment
- IOMMU
- IOMMU virtualization
- IOMMU drivers SVA interface
- I/O Address Space ID Allocator (IOASID) and /dev/ioasid userspace API (uAPI) proposal
- Possible IOMMU core changes (e.g., better integration with device-driver core, etc.)
- PCI
- Cache Coherent Interconnect for Accelerators (CCIX)/Compute Express Link (CXL) expansion memory and accelerators management
- I/O Address Space ID Allocator (IOASID)
- INTX/MSI IRQ domain consolidation
- Gen-Z interconnect fabric
- ARM64 architecture and hardware
- PCI native host controllers/endpoints drivers current challenges and improvements (e.g., state of PCI quirks, etc.)
- PCI error handling and management e.g., Advanced Error Reporting (AER), Downstream Port Containment (DPC), ACPI Platform Error Interface (APEI) and Error Disconnect Recover (EDR)
- Power management and devices supporting Active-state Power Management (ASPM)
- Peer-to-Peer DMA (P2PDMA)
- Resources claiming/assignment consolidation
- Prefetchable vs non-prefetchable BAR address mappings
- Untrusted/external devices management
- Thunderbolt, DMA, RDMA and USB4 security
Come and join us in the discussion in helping Linux keep up with the new features being added to the PCI interconnect specification.
We hope to see you there.