My actions
What's your PUBLISHER policy?
Check with SHERPA/ROMEO whether your PUBLISHER allows you to put your own papers online.
Access
Contact
Format
Export
I want to...

Search


   
Close
Limit to these document types:
Publications
 Journal Articles
 Reviews
 Conference Papers
Monographs
 Books
 Thesis
 Book chapters
 Conference Proceedings
Reports
 Technical Reports
 Working papers
Presentations & Talks
 Posters
 Presentations & Talks
Standards & Patents
 Standards
 Patents
Lectures & Teaching Material
 Teaching documents
 Student projects
Filter by publication status Filter by origin Fulltext availability
 Peer-reviewed publications
 Published  Accepted  Submitted
 Work produced at EPFL
 Publicly available  Restricted access
CONFERENCE PAPER

TwinDrivers: Semi-Automatic Derivation of Fast and Safe Hypervisor Network Drivers from Guest OS Drivers

Menon, Aravind ; Schubert, Simon ; Zwaenepoel, Willy

Presented at: 14th ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), Washington, DC, March 7-11, 2009.

In: Proceedings of the 14th ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), 2009

Washington, DC: ACM, 2009.

In a virtualized environment, device drivers are often run inside a virtual machine (VM) rather than in the hypervisor. Doing so protects the hypervisor from bugs in the driver, and also allows the reuse of the device driver and its support infrastructure in the VM. Unfortunately, this approach results in poor performance for I/O intensive devices such as network cards. The alternative approach is to run device drivers directly in the hypervisor. Although this approach results in better performance, it suffers from the loss of safety guarantees for the hypervisor, and incurs the software engineering cost of maintaining the driver support infrastructure. In this paper we present TwinDrivers, a framework which allows us to automatically create safe and efficient hypervisor drivers from guest OS drivers. The hypervisor driver runs directly in the hypervisor, but its data resides completely in the driver VM address space. A Software Virtual Memory mechanism allows the driver to access its VM data efficiently from the hypervisor running in any guest context, and also protects the hypervisor from invalid memory accesses from the driver. An upcall mechanism allows the hypervisor to largely reuse the driver support infrastructure present in the VM. The TwinDriver system thus combines the performance benefits of hypervisor-driver based approaches with the safety and software engineering benefits of VM driver based approaches. Using the TwinDrivers hypervisor driver, we are able to improve the guest domain networking performance in Xen by a factor of 2.4 for transmit workloads, and 2.1 for receive workloads. The resulting transmit perfomance is within 64% of native Linux performance, and the receive performance is within 67% of Linux performance.

Keyword(s): virtualization, networking, performance optimization, Xen, device drivers

Reference: LABOS-CONF-2008-011

URL: http://www.cs.virginia.edu/asplos09/

Record created on 2008-08-16, modified on 2009-10-27