skip to main content
10.1145/2150976.2151020acmconferencesArticle/Chapter ViewAbstractPublication PagesasplosConference Proceedingsconference-collections
research-article

ELI: bare-metal performance for I/O virtualization

Authors Info & Claims
Published:03 March 2012Publication History

ABSTRACT

Direct device assignment enhances the performance of guest virtual machines by allowing them to communicate with I/O devices without host involvement. But even with device assignment, guests are still unable to approach bare-metal performance, because the host intercepts all interrupts, including those interrupts generated by assigned devices to signal to guests the completion of their I/O requests. The host involvement induces multiple unwarranted guest/host context switches, which significantly hamper the performance of I/O intensive workloads. To solve this problem, we present ELI (ExitLess Interrupts), a software-only approach for handling interrupts within guest virtual machines directly and securely. By removing the host from the interrupt handling path, ELI manages to improve the throughput and latency of unmodified, untrusted guests by 1.3x-1.6x, allowing them to reach 97%-100% of bare-metal performance even for the most demanding I/O-intensive workloads.

References

  1. ABRAMSON, D., JACKSON, J., MUTHRASANALLUR, S., NEIGER, G., REGNIER, G., SANKARAN, R., SCHOINAS, I., UHLIG, R., VEMBU, B., AND WIEGERT, J. Intel virtualization technology for directed I/O. Intel Technology Journal 10, 3 (2006), 179--192.Google ScholarGoogle ScholarCross RefCross Ref
  2. ADAMS, K., AND AGESEN, O. A comparison of software and hardware techniques for x86 virtualization. In ACM Architectural Support for Programming Languages & Operating Systems (ASPLOS) (2006). Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. AGESEN, O., MATTSON, J., RUGINA, R., AND SHELDON, J. Software techniques for avoiding hardware virtualization exits. Tech. rep., VMware, 2011.Google ScholarGoogle Scholar
  4. AHMAD, I., GULATI, A., AND MASHTIZADEH, A. vIC: Interrupt coalescing for virtual machine storage device IO. In USENIX Annual Technical Conference (ATC) (2011). Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. AMD INC. AMD64 Architecture Programmer's Manual Volume 2: System Programming, 2011.Google ScholarGoogle Scholar
  6. AMIT, N., BEN-YEHUDA, M., TSAFRIR, D., AND SCHUSTER, A. vIOMMU: efficient IOMMU emulation. In USENIX Annual Technical Conference (ATC) (2011). Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. BARHAM, P., DRAGOVIC, B., FRASER, K., HAND, S., HARRIS, T., HO, A., NEUGEBAUER, R., PRATT, I., AND WARFIELD, A. Xen and the art of virtualization. In ACM Symposium on Operating Systems Principles (SOSP) (2003). Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. BEN-YEHUDA, M., BOROVIK, E., FACTOR, M., ROM, E., TRAEGER, A., AND YASSOUR, B.-A. Adding advanced storage controller functionality via low-overhead virtualization. In USENIX Conference on File & Storage Technologies (FAST) (2012). Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. BEN-YEHUDA, M., DAY, M. D., DUBITZKY, Z., FACTOR, M., HAR'EL, N., GORDON, A., LIGUORI, A., WASSERMAN, O., AND YASSOUR, B.-A. The Turtles project: Design and implementation of nested virtualization. In USENIX Symposium on Operating Systems Design & Implementation (OSDI) (2010). Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. BETAK, T., DULEY, A., AND ANGEPAT, H. Reflective virtualization improving the performance of fully-virtualized x86 operating systems. http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.129.7868.Google ScholarGoogle Scholar
  11. BHARGAVA, R., SEREBRIN, B., SPADINI, F., AND MANNE, S. Accelerating two-dimensional page walks for virtualized systems. In ACM Architectural Support for Programming Languages & Operating Systems (ASPLOS) (2008). Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. BOVET, D., AND CESATI, M. Understanding the Linux Kernel, Second Edition. O'Reilly & Associates, Inc., 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. CODD, E. F. Advances in Computers, vol. 3. New York: Academic Press, 1962, pp. 77--153.Google ScholarGoogle Scholar
  14. DONG, Y., XU, D., ZHANG, Y., AND LIAO, G. Optimizing network I/O virtualization with efficient interrupt coalescing and virtual receive side scaling. In IEEE International Conference on Cluster Computing (CLUSTER) (2011). Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. DONG, Y., YANG, X., LI, X., LI, J., TIAN, K., AND GUAN, H. High performance network virtualization with SR-IOV. In IEEE International Symposium on High Performance Computer Architecture (HPCA) (2010).Google ScholarGoogle ScholarCross RefCross Ref
  16. DONG, Y., YU, Z., AND ROSE, G. SR-IOV networking in Xen: architecture, design and implementation. In USENIX Workshop on I/O Virtualization (WIOV) (2008). Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. DOVROLIS, C., THAYER, B., AND RAMANATHAN, P. HIP: hybrid interrupt-polling for the network interface. ACM SIGOPS Operating Systems Review (OSR) 35 (2001), 50--60. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. FITZPATRICK, B. Distributed caching with memcached. Linux Journal, 124 (2004). Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. GAVRILOVSKA, A., KUMAR, S., RAJ, H., SCHWAN, K., GUPTA, V., NATHUJI, R., NIRANJAN, R., RANADIVE, A., AND SARAIYA, P. High performance hypervisor architectures: Virtualization in HPC systems. In Workshop on System-level Virtualization for HPC (HPCVirt) (2007).Google ScholarGoogle Scholar
  20. INTEL CORPORATION. Intel 64 Architecture x2APIC Specification, 2008.Google ScholarGoogle Scholar
  21. INTEL CORPORATION. Intel 64 and IA-32 Architectures Software Developer's Manual, 2010.Google ScholarGoogle Scholar
  22. ITZKOVITZ, A., AND SCHUSTER, A. MultiView and MilliPage-fine-grain sharing in page-based DSMs. In USENIX Symposium on Operating Systems Design & Implementation (OSDI) (1999). Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. JONES, R. A. A network performance benchmark (revision 2.0). Tech. rep., Hewlett Packard, 1995.Google ScholarGoogle Scholar
  24. KELLER, E., SZEFER, J., REXFORD, J., AND LEE, R. B. Nohype: virtualized cloud infrastructure without the virtualization. In ACM/IEEE International Symposium on Computer Architecture (ISCA) (2010), ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. KIVITY, A., KAMAY, Y., LAOR, D., LUBLIN, U., AND LIGUORI, A. KVM: the Linux virtual machine monitor. In Ottawa Linux Symposium (OLS) (2007).Google ScholarGoogle Scholar
  26. LANDAU, A., BEN-YEHUDA, M., AND GORDON, A. SplitX: Split guest/hypervisor execution on multi-core. In USENIX Workshop on I/O Virtualization (WIOV) (2011). Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. LANGE, J. R., PEDRETTI, K., DINDA, P., BRIDGES, P. G., BAE, C., SOLTERO, P., AND MERRITT, A. Minimal-overhead virtualization of a large scale supercomputer. In ACM/USENIX International Conference on Virtual Execution Environments (VEE) (2011). Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. LARSEN, S., SARANGAM, P., HUGGAHALLI, R., AND KULKARNI, S. Architectural breakdown of end-to-end latency in a TCP/IP network. In International Symposium on Computer Architecture and High Performance Computing (2009).Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. LEVASSEUR, J., UHLIG, V., STOESS, J., AND GÖTZ, S. Unmodified device driver reuse and improved system dependability via virtual machines. In USENIX Symposium on Operating Systems Design & Implementation (OSDI) (2004). Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. LIAO, G., GUO, D., BHUYAN, L., AND KING, S. R. Software techniques to improve virtualized I/O performance on multi-core systems. In ACM/IEEE Symposium on Architectures for Networking and Communications Systems (ANCS) (2008). Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. LIU, J. Evaluating standard-based self-virtualizing devices: A performance study on 10 GbE NICs with SR-IOV support. In IEEE International Parallel & Distributed Processing Symposium (IPDPS) (2010).Google ScholarGoogle ScholarCross RefCross Ref
  32. LIU, J., HUANG, W., ABALI, B., AND PANDA, D. K. High performance VMM-bypass I/O in virtual machines. In USENIX Annual Technical Conference (ATC) (2006), pp. 29--42. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. MENON, A., SANTOS, J. R., TURNER, Y., JANAKIRAMAN, G., AND ZWAENEPOEL, W. Diagnosing performance overheads in the Xen virtual machine environment. In ACM/USENIX International Conference on Virtual Execution Environments (VEE) (2005), pp. 13--23. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. MOGUL, J. C., AND RAMAKRISHNAN, K. K. Eliminating receive livelock in an interrupt-driven kernel. ACM Transactions on Computer Systems (TOCS) 15 (1997), 217--252. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. NAVARRO, J., IYER, S., DRUSCHEL, P., AND COX, A. Practical, transparent operating system support for superpages. In USENIX Symposium on Operating Systems Design & Implementation (OSDI) (2002). Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. POPEK, G. J., AND GOLDBERG, R. P. Formal requirements for virtualizable third generation architectures. Communications of the ACM (CACM) 17 (1974), 412--421. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. RAJ, H., AND SCHWAN, K. High performance and scalable I/O virtualization via self-virtualized devices. In International Symposium on High Performance Distributed Computer (HPDC) (2007). Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. RAM, K. K., SANTOS, J. R., TURNER, Y., COX, A. L., AND RIXNER, S. Achieving 10Gbps using safe and transparent network interface virtualization. In ACM/USENIX International Conference on Virtual Execution Environments (VEE) (2009). Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. ROSS, T. L., WASHABAUGH, D. M., ROMAN, P. J., CHEUNG, W., TANAKA, K., AND MIZUGUCHI, S. Method and apparatus for performing interrupt frequency mitigation in a network node. US Patent 6,115,775, 2000.Google ScholarGoogle Scholar
  40. RUMBLE, S., ONGARO, D., STUTSMAN, R., ROSENBLUM, M., AND OUSTERHOUT, J. It's time for low latency. In USENIX Workshop on Hot Topics in Operating Systems (HOTOS) (2011). Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. RUSSELL, R. virtio: towards a de-facto standard for virtual I/O devices. ACM SIGOPS Operating Systems Review (OSR) 42, 5 (2008), 95--103. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. RUSSINOVICH, M. E., AND SOLOMON, D. A. Microsoft Windows Internals, Fourth Edition: Microsoft Windows Server(TM) 2003,Windows XP, and Windows 2000 (Pro-Developer). Microsoft Press, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. SALAH, K. To coalesce or not to coalesce. International Journal of Electronics and Communications 61, 4 (2007), 215--225.Google ScholarGoogle ScholarCross RefCross Ref
  44. SALAH, K., AND QAHTAN, A. Boosting throughput of Snort NIDS under Linux. In International Conference on Innovations in Information Technology (IIT) (2008).Google ScholarGoogle ScholarCross RefCross Ref
  45. SALIM, J. H., OLSSON, R., AND KUZNETSOV, A. Beyond Softnet. In Anual Linux Showcase & Conference (2001). Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. SANTOS, J. R., TURNER, Y., JANAKIRAMAN, J. G., AND PRATT, I. Bridging the gap between software and hardware techniques for I/O virtualization. In USENIX Annual Technical Conference (ATC) (2008). Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. SUGERMAN, J., VENKITACHALAM, G., AND LIM, B.-H. Virtualizing I/O devices on Vmware workstation's hosted virtual machine monitor. In USENIX Annual Technical Conference (ATC) (2001), pp. 1--14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. SZEFER, J., KELLER, E., LEE, R. B., AND REXFORD, J. Eliminating the hypervisor attack surface for a more secure cloud. In ACM Conference on Computer and Communications Security (CCS) (2011). Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. TSAFRIR, D., ETSION, Y., FEITELSON, D. G., AND KIRKPATRICK, S. System noise, OS clock ticks, and fine-grained parallel applications. In ACM International Conference on Supercomputing (ICS) (2005), pp. 303--312. Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. UHLIG, R., NEIGER, G., RODGERS, D., SANTONI, A. L., MARTINS, F. C. M., ANDERSON, A. V., BENNETT, S. M., KAGI, A., LEUNG, F. H., AND SMITH, L. Intel virtualization technology. Computer 38, 5 (2005), 48--56. Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. WILLMANN, P., SHAFER, J., CARR, D., MENON, A., RIXNER, S., COX, A. L., AND ZWAENEPOEL, W. Concurrent direct network access for virtual machine monitors. In IEEE International Symposium on High Performance Computer Architecture (HPCA) (2007). Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. WOJTCZUK, R., AND RUTKOWSKA, J. Following the White Rabbit: Software attacks against Intel VT-d technology. http://invisiblethingslab.com/resources/2011/Software%20Attacks%20on%20Intel%20VT-d.pdf. (Accessed Jul, 2011).Google ScholarGoogle Scholar
  53. YASSOUR, B.-A., BEN-YEHUDA, M., AND WASSERMAN, O. Direct device assignment for untrusted fully-virtualized virtual machines. Tech. Rep. H-0263, IBM Research, 2008.Google ScholarGoogle Scholar
  54. ZEC, M., MIKUC, M., AND ZAGAR, M. Estimating the Impact of Interrupt Coalescing Delays on Steady State TCP Throughput. In International Conference on Software, Telecommunications and Computer Networks (SoftCOM) (2002).Google ScholarGoogle Scholar

Index Terms

  1. ELI: bare-metal performance for I/O virtualization

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Conferences
      ASPLOS XVII: Proceedings of the seventeenth international conference on Architectural Support for Programming Languages and Operating Systems
      March 2012
      476 pages
      ISBN:9781450307598
      DOI:10.1145/2150976
      • cover image ACM SIGARCH Computer Architecture News
        ACM SIGARCH Computer Architecture News  Volume 40, Issue 1
        ASPLOS '12
        March 2012
        453 pages
        ISSN:0163-5964
        DOI:10.1145/2189750
        Issue’s Table of Contents
      • cover image ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 47, Issue 4
        ASPLOS '12
        April 2012
        453 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/2248487
        Issue’s Table of Contents

      Copyright © 2012 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 3 March 2012

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      Overall Acceptance Rate535of2,713submissions,20%

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader