• Corpus ID: 368435

Utilizing IOMMUs for Virtualization in Linux and Xen Muli

  title={Utilizing IOMMUs for Virtualization in Linux and Xen Muli},
  author={Ben-Yehuda and Jimi Xenidis},
IOMMUs are hardware devices that translate device DMA addresses to proper machine physical addresses. IOMMUs have long been used for RAS (prohibiting devices from DMA’ing into the wrong memory) and for performance optimization (avoiding bounce buffers and simplifying scatter/gather). With the increasing emphasis on virtualization, IOMMUs from IBM, Intel, and AMD are being used and re-designed in new ways, e.g., to enforce isolation between multiple operating systems with direct device access… 

IOMMU Para-Virtualization for Efficient and Secure DMA in Virtual Machines

Experimental evaluations on three kinds of network devices show that, PVIOMMU introduces little overhead on DMA transactions, and in general the network I/O performance is close to that in the native KVM implementation without IOMMU virtualization.

Demon: An Efficient Solution for on-Device MMU Virtualization in Mediated Pass-Through

Demon, an efficient solution for on-DEvice MMU virtualizatiON in mediated pass-through, takes advantage of IOMMU to construct a two-dimensional address translation and dynamically switches the 2nd-dimensional page table to a proper candidate when the device owner switches.

A lightweight hypervisor library for Barrelfish by Raffaele Sandrini Due date 2 September

VMkit is a virtual machine monitor for the x86-64 architecture, integrated into the Barrelfish operating system, which allows unmodified guest operating systems to be run and makes use of the virtualization extensions available in recent x64 implementations.

Speeding up packet I/O in virtual machines

This paper demonstrates how rates of millions of packets per second can be achieved even within VMs, with limited but targeted modifications on device drivers, hypervisors and the host's virtual switch, and shows that emulation of conventional NICs is perfectly capable of achieving such packet rates, without requiring completely different device models.

vIOMMU: Efficient IOMMU Emulation

Two novel optimizations are employed to make vIOMMU perform well: waiting a few milliseconds before tearing down an IOMMU mapping in the hope it will be immediately reused ("optimistic teardown"), and running the vI OMMU on a sidecore, and thereby enabling for the first time the use of a side core by unmodified guests.

Bridging the Gap between Software and Hardware Techniques for I/O Virtualization

This paper reduces execution costs for conventional NICs by 56% on the receive path, and achieves close to direct I/O performance for network devices supporting multiple hardware receive queues, making the Xen driver domain model an attractive solution for I/o virtualization for a wider range of scenarios.

Standardized But Flexible I/O for Self-Virtualizing Devices

This paper proposes an alternative approach which does not require additional silicon and provides significantly higher flexibility than SR-IOV, and is compatible with the higher layers of the PCI device stack of modern operating systems and hypervisors.

Redesigning xen's memory sharing mechanism for safe and efficient I/O virtualization

An implementation of the new grant mechanism that fully supports driver domains, but not yet IOMMUs is developed, and performance results show that the new mechanism reduces per-packet overhead by up to 31% and increases network throughput byUp to 52%.

Direct Device Assignment for Untrusted Fully-Virtualized Virtual Machines

Direct device assignment for untrusted, fully-virtualized virtual machines in the Linux/KVM environment using Intel’s VT-d IOMMU is implemented and shows that with large-enough messages direct device access throughput is statistically indistinguishable from native, albeit with CPU utilization that is slightly higher.

Protection Strategies for Direct Access to Virtualized I/O Devices

Surprisingly, a software-only strategy that does not use an IOMMU at all performs competitively, and sometimes better than, hardware-based strategies while maintaining strict inter-guest isolation.



IA-64 Linux Kernel: Design and Implementation

This book describes the hardware abstraction interfaces used by Linux and, finally, their IA-64 implementations, and believes that the interface descriptions in this book are among the most accurate and most comprehensive descriptions in existence.

Live migration of virtual machines

The design options for migrating OSes running services with liveness constraints are considered, the concept of writable working set is introduced, and the design, implementation and evaluation of high-performance OS migration built on top of the Xen VMM are presented.

Safe Hardware Access with the Xen Virtual Machine Monitor

The new Safe Hardware Interface is presented, an isolation architecture used within the latest release of Xen which allows unmodified device drivers to be shared across isolated operating system instances, while protecting individual OSs, and the system as a whole, from driver failure.

Intel ® Virtualization Technology for Directed I/O

This paper surveys a variety of established and emerging techniques for I/O virtualization and outlines their associated problems and challenges, then details the architecture of VT-d and describes how it enables the industry to meet the future challenges of I/o virtualization.

IOMMU) Specification

  • IOMMU) Specification
  • 2006

Proceedings of the 2005 Ottawa Linux Symposium (OLS)

  • Proceedings of the 2005 Ottawa Linux Symposium (OLS)
  • 2005

Proceedings of the 19th ASM Symposium on Operating Systems Principles (SOSP)

  • Proceedings of the 19th ASM Symposium on Operating Systems Principles (SOSP)
  • 2003


  • Documentation/DMA-mapping.txt

Software Optimization Guide for the AMD64 Processors

  • Software Optimization Guide for the AMD64 Processors
  • 2005

Kyle McMartin Authors retain copyright to all submitted papers, but have granted unlimited redistribution rights to all as a condition of submission