Skip to main content

eBPF-based Extensible Paravirtualization

  • Conference paper
  • First Online:
High Performance Computing. ISC High Performance 2022 International Workshops (ISC High Performance 2022)

Abstract

High performance applications usually need to give many hints to the OS kernel regarding their needs. For example, CPU affinity is commonly used to pin processes to cores and avoid the cost of CPU migration, isolate performance critical tasks, bring related tasks together, and so on. However, when running inside a Virtual Machine, the (guest) OS kernel can only assign virtual resources, e.g., pinning a guest process to a virtual CPU thread (vCPU); the vCPU thread, however, is still freely scheduled by the host hypervisor, which is unaware of the guest application requests. This semantic gap is usually overcome by statically allocating virtual resources to their hardware counterparts, which is costly and inflexible, or via paravirtualization, i.e., by modifying the guest kernel to pass the hints to the host, which is cumbersome and difficult to extend. We propose to use host-injected eBPF programs as a way for the host to obtain this kind of information from the guest in an extensible way, without modifying the guest (Linux) kernel, and without statically allocating resources. We apply this idea to the example of CPU affinity and run some experiments to show its effect on several microbenchmarks. Finally, we discuss the implications for confidential computing.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 59.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 74.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    Just in Time.

  2. 2.

    Non-Uniform Memory Architecture.

  3. 3.

    Mega packets per second.

References

  1. Amit, N., Wei, M.: The design and implementation of Hyperupcalls. In: 2018 USENIX Annual Technical Conference (USENIX ATC 2018), pp. 97–112. USENIX Association, Boston, MA (2018)

    Google Scholar 

  2. Barham, P., et al.: Xen and the art of virtualization. ACM SIGOPS Oper. Syst. Rev. 37(5), 164–177 (2003)

    Article  Google Scholar 

  3. eBPF for Windows (2022). https://github.com/microsoft/ebpf-for-windows

  4. Ghatrehsamani, D., Denninnart, C., Bacik, J., Amini Salehi, M.: The art of CPU-pinning: evaluating and improving the performance of virtualization and containerization platforms. In: 49th International Conference on Parallel Processing - ICPP. ICPP 2020. Association for Computing Machinery, Edmonton, AB, Canada (2020). https://doi.org/10.1145/3404397.3404442

  5. Gutiérrez, C.S.V., Juan, L.U.S., Ugarte, I.Z., Vilches, V.M.: Real-time Linux communications: an evaluation of the Linux communication stack for real-time robotic applications. arXiv preprint arXiv:1808.10821 (2018)

  6. Krzywda, J., Ali-Eldin, A., Carlson, T.E., Östberg, P.-O., Elmroth, E.: Powerperformance tradeoffs in data center servers: DVFS, CPU pinning, horizontal, and vertical scaling. Futur. Gener. Comput. Syst. 81, 114–128 (2018)

    Article  Google Scholar 

  7. Lee, T., Eom, Y.I.: VCPU prioritization interface for improving the performance of latency-critical tasks. In: 2020 14th International Conference on Ubiquitous Information Management and Communication (IMCOM), pp. 1–4 (2020). https://doi.org/10.1109/IMCOM48794.2020.9001717

  8. Maffione, V., Lettieri, G., Rizzo, L.: Cache-aware design of general-purpose single-producer-single-consumer queues. Softw. Pract. Exp. 49, 748–779 (2018). https://doi.org/10.1002/spe.2675

  9. Vieira, M.A., Castanho, M.S., Pacífico, R.D., Santos, E.R., Júnior, E.P.C., Vieira, L.F.: Fast packet processing with EBPF and XDP: concepts, code, challenges, and applications. ACM Comput. Surv. (CSUR) 53(1), 1–36 (2020)

    Article  Google Scholar 

  10. Zhang, I., Liu, J., Austin, A., Roberts, M.L., Badam, A.: I’m not dead yet! The role of the operating system in a kernel-bypass era. In: Proceedings of the Workshop on Hot Topics in Operating Systems, pp. 73–80 (2019)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Luigi Leonardi .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2022 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Leonardi, L., Lettieri, G., Pellicci, G. (2022). eBPF-based Extensible Paravirtualization. In: Anzt, H., Bienz, A., Luszczek, P., Baboulin, M. (eds) High Performance Computing. ISC High Performance 2022 International Workshops. ISC High Performance 2022. Lecture Notes in Computer Science, vol 13387. Springer, Cham. https://doi.org/10.1007/978-3-031-23220-6_27

Download citation

  • DOI: https://doi.org/10.1007/978-3-031-23220-6_27

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-031-23219-0

  • Online ISBN: 978-3-031-23220-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics