Abstract
A virtualized system generally suffers from low I/O performance, mainly caused by its inherent abstraction overhead and frequent CPU transitions between the guest and hypervisor modes. The recent research of polling-based I/O virtualization partly solved the problem, but excessive polling trades intensive CPU usage for higher performance. This article presents a power-efficient and high-performance block I/O framework for a virtual machine, which allows us to use it even with a limited number of CPU cores in mobile or embedded systems. Our framework monitors system status, and dynamically switches the I/O process mode between the exit and polling modes, depending on the amounts of current I/O requests and CPU utilization. It also dynamically controls the polling interval to reduce redundant polling. The highly dynamic nature of our framework leads to improvements in I/O performance with lower CPU usage as well. Our experiments showed that our framework outperformed the existing exit-based mechanisms by 10.8 % higher I/O throughput, maintaining similar CPU usage by only 3.1 % increment. In comparison to the systems solely based on the polling mechanism, ours reduced the CPU usage roughly down to 10.0 % with no or negligible performance loss.







Similar content being viewed by others
References
Agesen O, Mattson J, Rugina R, Sheldon J (2012) Software techniques for avoiding hardware virtualization exits. In: Proc. USENIX Conference on Annual Technical Conference, pp 373–385
Axboe J Fio-Flexible IO Tester. http://freecode.com/projects/fio
Bellard F (2005) QEMU, a fast and portable dynamic translator. In: Proc. USENIX conference on annual technical conference, FREENIX Track, pp 41–46
Dall C, Nieh J (2014) KVM/ARM: The Design and Implementation of the Linux ARM Hypervisor. In: Proceedings of international conference on architectural support for programming languages and operating systems, pp 333–348
Gordon A, Amit N, Har’El N, Ben-Yehuda M, Landau A, Schuster A, Tsafrir D (2012) ELI: bare-metal performance for I/O virtualization. In: Proceedings of architectural support for programming languages and operating systems, pp 411–422
Gordon A, Har’El N, Landau A, Ben-Yehuda M, Traeger A (2012) Towards exitless and efficient paravirtual I/O. In: Proceedings of annual international systems and storage conference, pp 10:1–10:6
HarEl N, Gordon A, Landau A, Ben-Yehuda M, Traeger A, Ladelsky R (2013) Efficient and scalable paravirtual I/O system. In: Proceedings of USENIX Conference on Annual Technical Conference, pp 231–242
Kivity A, Kamay Y, Laor D, Lublin U, Liguori A (2007) KVM: the Linux virtual machine monitor. In: Proc. Linux Symposium, pp 225–230
Landau A, Ben-Yehuda M, Gordon A (2011) SplitX: split guest/hypervisor execution on multi-core. In: Proceedings of USENIX Workshop on I/O Virtualization
Liu J, Abali B (2009) Virtualization polling engine (VPE): using dedicated CPU cores to accelerate I/O Vvirtualization. In: Proceedings of International Conference on Supercomputing. ACM, pp 225–234
Mijat R, Nightingale A (2011) Virtualization is coming to a platform near you. ARM White Paper
Neiger G, Santoni A, Leung F, Rodgers D, Uhlig R (2006) Intel virtualization technology: hardware support for efficient processor virtualization. Intel Technol J 10(3)
Pallipadi V, Starikovskiy A (2006) The Ondemand Governor. In: Proceedings of the Linux Symposium, pp 215–230
Russell R (2008) virtio: towards a de-facto standard for virtual I/O devices. ACM SIGOPS Oper Syst Rev 42(5):95–103
Tu CC, Ferdman M, Lee Ct, Chiueh Tc (2015) A comprehensive iplementation and evaluation of direct interrupt delivery. In: Proceedings of International Conference on Virtual Execution Environments. ACM, pp 1–15
Varanasi P, Heiser G (2011) Hardware-supported Virtualization on ARM. In: Proceedings of Asia-Pacific Workshop on Systems. ACM, p 11
The Hardkernel Website. http://www.hardkernel.com
(2008) Multi-root I/O virtualization and sharing specification. PCI-SIG
(2009) AMD I/O virtualization technology (IOMMU) specification. AMD Pub
(2010) Single root I/O virtualization and sharing specification. PCI-SIG
Acknowledgments
This work was supported by ICT R&D program of MSIP/IITP [R0126-15-1065, (SW StarLab) Development of UX Platform Software for Supporting Concurrent Multi-users on Large Displays] and the MSIP (Ministry of Science, ICT and Future Planning), Korea, under the ITRC (Information Technology Research Center) support program (IITP-2016-H8501-16-1015) supervised by the IITP (Institute for Information and Communications Technology Promotion). Young Ik Eom is the corresponding author of this paper.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Lee, K., Lee, D., Lee, S. et al. Power-efficient and high-performance block I/O framework for mobile virtualization systems. J Supercomput 73, 1307–1321 (2017). https://doi.org/10.1007/s11227-016-1810-z
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11227-016-1810-z