We are pleased to announce that the VFIO/IOMMU/PCI Microconference has been accepted into the 2020 Linux Plumbers Conference!
The PCI interconnect specification, the devices implementing it, and the system IOMMUs providing memory/access control to them are incorporating more and more features aimed at high performance systems (eg PCI ATS (Address Translation Service)/PRI(Page Request Interface), enabling Shared Virtual Addressing (SVA) between devices and CPUs), that require the kernel to coordinate the PCI devices, the IOMMUs they are connected to and the VFIO layer used to manage them (for userspace access and device passthrough) with related kernel interfaces that have to be designed in-sync for all three subsystems.
The kernel code that enables these new system features requires coordination between VFIO/IOMMU/PCI subsystems, so that kernel interfaces and userspace APIs can be designed in a clean way.
The following was a result of last years successful Linux Plumbers microconference:
- Software defined Non-Transparent Bridges (NTB) can now be implemented using the PCIe endpoint subsystem NTB using PCIe endpoints can now be represented using configfs rather than using device tree.
- User interfaces for per-group default IOMMU domain type patches have been merged.
- IO Address Space Identifier (IOASID) allocator has been merged and later support was added for custom allocator for guest use.
Last year’s Plumbers resulted in a write-up justifying the dual-stageSMMUv3 integration but more work is needed to persuade the relevant maintainers.
Topics for this year include (but not limited to):
- VFIO
- 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
- IOMMUs virtualization: Partially discussed at LPC19 but further discussion needed for virtio-iommu firmware bindings (ie ACPI) and vSMMUv3 development
- IOMMU drivers SVA interface consolidation:
- Possible IOMMU core changes (like splitting up iommu_ops, better integration with device-driver core)
- DMA-API layer interactions and how to get towards generic dma-ops for IOMMU drivers
- Sharing Extended Page Tables with VT-d 2nd level
- PCI
- Untrusted/External devices management
- INTX/MSI IRQ domain consolidation
- PCI native host controllers/endpoints drivers sore points and improvements
- CCIX/CXL expansion memory and accelerators management
- Resource assignment:
- Method for preserving resources at boot was merged[12] but there is still a lot to discuss to refactor the kernel resource allocation mechanism, very complex topic
- Managing settings for Max Payload Size(MPS) and Max Read Request Size(MRRS)
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!
Leave a Reply
You must be logged in to post a comment.