000125975 001__ 125975
000125975 005__ 20190316234319.0
000125975 02470 $$2ISI$$a000266820200026
000125975 037__ $$aCONF
000125975 245__ $$aTwinDrivers: Semi-Automatic Derivation of Fast and Safe Hypervisor Network Drivers from Guest OS Drivers
000125975 269__ $$a2009
000125975 260__ $$bACM$$c2009$$aWashington, DC
000125975 336__ $$aConference Papers
000125975 520__ $$aIn 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.
000125975 6531_ $$avirtualization
000125975 6531_ $$anetworking
000125975 6531_ $$aperformance optimization
000125975 6531_ $$aXen
000125975 6531_ $$adevice drivers
000125975 700__ $$aMenon, Aravind
000125975 700__ $$0243090$$g179110$$aSchubert, Simon
000125975 700__ $$aZwaenepoel, Willy$$g155705$$0243160
000125975 7112_ $$dMarch 7-11, 2009$$cWashington, DC$$a14th ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS)
000125975 773__ $$tProceedings of the 14th ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS)
000125975 8564_ $$uhttp://www.cs.virginia.edu/asplos09/$$zURL
000125975 8564_ $$uhttps://infoscience.epfl.ch/record/125975/files/paper.pdf$$zn/a$$s159188
000125975 909C0 $$xU10700$$0252226$$pLABOS
000125975 909CO $$qGLOBAL_SET$$pconf$$ooai:infoscience.tind.io:125975$$pIC
000125975 937__ $$aLABOS-CONF-2008-011
000125975 973__ $$rREVIEWED$$sPUBLISHED$$aEPFL
000125975 980__ $$aCONF