Computer Science Department

Technion - Israel Institute of Technology

vIOMMU: Efficient IOMMU Emulation

Speaker:

Nadav Amit, M.Sc. Thesis Seminar

Date:

Sunday, 6.3.2011, 15:00

Place:

Taub 601

Advisor:

Prof. A. Schuster

Direct device assignment, where a guest virtual machine directly
interacts with an I/O device without host intervention, is appealing,
because it allows an unmodified (non-hypervisor-aware) guest to
achieve near-native performance. But device assignment for unmodified
guests suffers from two serious deficiencies: (1) it requires pinning
of all the guest's pages, thereby disallowing memory overcommitment,
and (2) it exposes the guest's memory to buggy device drivers.
We solve these problems by designing, implementing, and exposing an
emulated IOMMU (vIOMMU) to the unmodified guest. We employ two novel
optimizations to make vIOMMU perform well: (1) waiting a few
milliseconds before tearing down an IOMMU mapping in the hope it will
be immediately reused (``optimistic teardown''), and (2) running the
vIOMMU on a sidecore, and thereby enabling for the first time the use
of a sidecore by unmodified guests. Both optimizations are highly
effective in isolation. The former allows bare-metal to achieve 100%
of a 10Gbps line rate. The combination of the two allows an unmodified
guest to do the same.