Abstract
When receiving network traffic on guest VMs (virtual machines) running on the KVM hypervisor, data is copied from hypervisor buffers to guest buffers. This copy incurs CPU and latency overhead. It seems desirable to avoid this copy, if possible, and to use guest buffers directly to receive network data. A number of challenges must be overcome in order to accomplish this zero-copy receive, and some additional overhead is incurred in setting it up. We present the technical details on a zero-copy receive design and implementation and discuss the resulting performance degradation. In our implementation, the savings in CPU from avoiding the copy is overshadowed by the extra handling required for the smaller and often underutilized buffers .
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
KVM: Kernel Virtual Machine (2007). https://www.linux-kvm.org/page/Main_Page
Russell, R.: Virtio: towards a de-facto standard for virtual I/O devices. SIGOPS Oper. Syst. Rev. 42, 95–103 (2008)
Intel: Frequently Asked Questions for SR-IOV on Intel® Ethernet Server Adapters. Intel Inc., 8 March 2018. https://www.intel.com/content/www/us/en/support/articles/000005722/network-and-i-o/Ethernet-products.html
Robison, C.B.: Configure SR-IOV Network Virtual Functions in Linux* KVM*. Intel Inc., June 2017. https://software.intel.com/en-us/articles/configure-sr-iov-network-virtual-functions-in-linux-kvm
KernelNewbies.org: LinuxVirt: MacVTap, KernelNewbies.org, 30 December 2017. https://virt.kernelnewbies.org/MacVTap
Ronciak, J.A., Brandeburg, J., Venkatesan, G.: Page-flip technology for use within the linux networking stack. In: Ottawa Linux Symposium, Ottawa (2004)
Miller, D.: David Miller’s Google + Public Blog, 18 October 2016. https://plus.google.com/+DavidMiller/posts/EUDiGoXD6Xv
The Linux Foundation: Data Plane Development Kit. Intel Inc. (2016). http://dpdk.org/
Rizzo, L.: Netmap: a novel framework for fast packet I/O. In: Proceedings of the 2012 USENIX Annual Technical Conference, Boston (2012)
Rottenkolber, M.: Snabb Snabbco, 18 September 2013. https://github.com/snabbco/snabb
The Linux Foundation: vmxnet3-usermap. VMWare Inc. http://dpdk.org/doc/vmxnet3-usermap
Tsirkin, M.S.: tun zerocopy support. Red Hat Inc., 20 July 2012. https://lwn.net/Articles/507716/
de Bruijn, W.: socket sendmsg MSG_ZEROCOPY. Google Inc., 18 June 2017. https://lwn.net/Articles/725825/
Töpel, B.: Introducing AF_XDP support. Intel Inc., 31 Jan 2018. https://lwn.net/Articles/745934/
Beaupré, A.: New approaches to network fast paths. LWN.net, 13 April 2017. https://lwn.net/Articles/719850/
Gorman, M.: Fast noirq bulk page allocator. LKML.ORG, 4 January 2017. https://lkml.org/lkml/2017/1/4/251
Brouer, J.D.: The page_pool documentation (2016). http://prototype-kernel.readthedocs.io/en/latest/vm/page_pool/introduction.html
Duyck, A.: macvlan/macvtap: Add support for L2 forwarding offloads with macvtap. Intel Inc., 17 October 2017. https://patchwork.ozlabs.org/patch/826704/
Acknowledgment
This work is part of the OPERA project, which has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement No 688386 (OPERA) and 645402 (Mikelangelo).
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this paper
Cite this paper
Meth, K., Nider, J., Rapoport, M. (2019). Zero-Copy Receive for Virtualized Network Devices. In: Arai, K., Bhatia, R., Kapoor, S. (eds) Proceedings of the Future Technologies Conference (FTC) 2018. FTC 2018. Advances in Intelligent Systems and Computing, vol 881. Springer, Cham. https://doi.org/10.1007/978-3-030-02683-7_45
Download citation
DOI: https://doi.org/10.1007/978-3-030-02683-7_45
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-02682-0
Online ISBN: 978-3-030-02683-7
eBook Packages: Intelligent Technologies and RoboticsIntelligent Technologies and Robotics (R0)