Eliminating receive livelock in an interrupt-driven kernel
ACM Transactions on Computer Systems (TOCS)
Storage Performance Virtualization via Throughput and Latency Control
MASCOTS '05 Proceedings of the 13th IEEE International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems
Fast interrupt priority management in operating system kernels
moas'93 USENIX Symposium on USENIX Microkernels and Other Kernel Architectures Symposium - Volume 4
Performance analysis and comparison of interrupt-handling schemes in gigabit networks
Computer Communications
Implementation and experimental performance evaluation of a hybrid interrupt-handling scheme
Computer Communications
Easy and Efficient Disk I/O Workload Characterization in VMware ESX Server
IISWC '07 Proceedings of the 2007 IEEE 10th International Symposium on Workload Characterization
PARDA: proportional allocation of resources for distributed storage access
FAST '09 Proccedings of the 7th conference on File and storage technologies
BASIL: automated IO load balancing across storage devices
FAST'10 Proceedings of the 8th USENIX conference on File and storage technologies
Communications of the ACM
ELI: bare-metal performance for I/O virtualization
ASPLOS XVII Proceedings of the seventeenth international conference on Architectural Support for Programming Languages and Operating Systems
Adding advanced storage controller functionality via low-overhead virtualization
FAST'12 Proceedings of the 10th USENIX conference on File and Storage Technologies
Towards exitless and efficient paravirtual I/O
Proceedings of the 5th Annual International Systems and Storage Conference
Romano: autonomous storage management using performance prediction in multi-tenant datacenters
Proceedings of the Third ACM Symposium on Cloud Computing
The Journal of Supercomputing
Hi-index | 0.02 |
Interrupt coalescing is a well known and proven technique for reducing CPU utilization when processing high IO rates in network and storage controllers. Virtualization introduces a layer of virtual hardware for the guest operating system, whose interrupt rate can be controlled by the hypervisor. Unfortunately, existing techniques based on high-resolution timers are not practical for virtual devices, due to their large overhead. In this paper, we present the design and implementation of a virtual interrupt coalescing (vIC) scheme for virtual SCSI hardware controllers in a hypervisor. We use the number of commands in flight from the guest as well as the current IO rate to dynamically set the degree of interrupt coalescing. Compared to existing techniques in hardware, our work does not rely on high-resolution interrupt-delay timers and thus leads to a very efficient implementation in a hypervisor. Furthermore, our technique is generic and therefore applicable to all types of hardware storage IO controllers which, unlike networking, don't receive anonymous traffic. We also propose an optimization to reduce inter-processor interrupts (IPIs) resulting in better application performance during periods of high IO activity. Our implementation of virtual interrupt coalescing has been shipping with VMware ESX since 2009. We present our evaluation showing performance improvements in micro benchmarks of up to 18% and in TPC-C of up to 5%.