LVC21F-217 Shared Virtual Addressing for high performance Arm Infrastructure platforms

Session Abstract

Level: Intermediate Faster memory accesses is key in large enterprise systems that deploy a mix of high performance accelerators and multi-core processors. Shared Virtual Addressing or SVA allows sharing same virtual address space across host processors and accelerators. It gives accelerator devices the ability to perform DMA on a process address space rather than a separate DMA address space, thereby reducing the programming complexity and avoiding buffer duplication. This talk presents a solution to enable SVA for PCIe pass-through devices in a virtual machine (VM) or guest kernel on Arm Neoverse platforms. SVA in a guest builds on top of the Linux kernel frameworks such as, VFIO, IOMMU, and PCI and few other components such as, a) Kernel based Virtual Machines (KVM) and kvmtool virtual machine manager to manage VMs, b) PCIe devices with ATS (Address Translation Service), PRI (Page Request Interface) and PASID (Process Address Space ID) support, c) Arm SMMU-v3 to provide two stage translation support. d) virtio-iommu, a paravirtualized iommu providing DMA remapping in guests and handling I/O page faults. This presentation also provides a platform to discuss the current contributions made in IOMMU drivers in Linux kernel - virtio-iommu and arm-smmu-v3 to implement SVA in guests.

Session Speakers

Vivek Gautam

Staff Software Engineer at Arm Limited (Arm Ltd.)

Vivek Gautam is a Staff Software Engineer in the Open Source Software group at Arm. He works on platform software development for Arm's Neoverse infrastructure reference platforms. His main focus has been on developing technology for Virtualization on infrastructure platforms by harnessing power of Arm IPs.

Level: Intermediate Faster memory accesses is key in large enterprise systems that deploy a mix of high performance accelerators and multi-core processors. Shared Virtual Addressing or SVA allows sharing same virtual address space across host processors and accelerators. It gives accelerator devices the ability to perform DMA on a process address space rather than a separate DMA address space, thereby reducing the programming complexity and avoiding buffer duplication.

This talk presents a solution to enable SVA for PCIe pass-through devices in a virtual machine (VM) or guest kernel on Arm Neoverse platforms. SVA in a guest builds on top of the Linux kernel frameworks such as, VFIO, IOMMU, and PCI and few other components such as,

a) Kernel based Virtual Machines (KVM) and kvmtool virtual machine manager to manage VMs, b) PCIe devices with ATS (Address Translation Service), PRI (Page Request Interface) and PASID (Process Address Space ID) support, c) Arm SMMU-v3 to provide two stage translation support. d) virtio-iommu, a paravirtualized iommu providing DMA remapping in guests and handling I/O page faults.

This presentation also provides a platform to discuss the current contributions made in IOMMU drivers in Linux kernel - virtio-iommu and arm-smmu-v3 to implement SVA in guests.

comments powered by Disqus

Recent Posts

Other Posts

Sign up. Receive Updates. Stay informed.

Sign up to our mailing list to receive updates on the latest Linaro Connect news!