From Fedora Project Wiki

< Features

Revision as of 04:00, 4 February 2010 by Poelstra (talk | contribs)

Enable kernel acceleration for kvm networking


Enable kernel acceleration for kvm networking


Current status

  • Targeted release: Fedora 13
  • Last updated: 2010-01-26
  • Percentage of completion: code complete, changes in response to upstream review are being incorporated

Detailed Description

vhost net moves the task of converting virtio descriptors to skbs and back from qemu userspace to the kernel driver. It is activated by using -netdevice options (instead of -net) and adding vhost=on flag.

Benefit to Fedora

Using a kernel module reduces latency and improves packets per second for small packets.


The work is all upstream in the kernel and qemu. Guest code is already upstream. Host/qemu work is in progress. For Fedora 13 will likely have to backport some of it.

Milestones Reached

- Guest Kernel:

 MSI-X support in virtio net

- Host Kernel:

 iosignalfd, irqfd, eventfd polling
 finalize kernel/user interface    
 socket polling                    
 virtio transport with copy from/to user
 TX credits using destructor (or: poll device status)
 profile and tune                                    

- qemu:

 MSI-X support in virtio net
 connect to kernel backend with MSI-X     
 PCI interrupts emulation                 
 profile and tune

In progress

- finalize qemu command line - qemu: migration

Code posted, but won't be upstream in time and probably not important enough to backport

 raw sockets support in qemu, promisc mode

Delayed, will likely not make it by F13 ship date

 mergeable buffers
 programming MAC/vlan filtering

Test Plan


  • WHQL networking tests


  • Various MTU sizes
  • Broadcasts, multicasts,
  • Ethtool
  • Latency tests
  • Bandwidth tests
  • UDP testing
  • Guest to guest communication
  • More types of protocol testing
  • Guest vlans
  • Tests combination of multiple vnics on the guests
  • With/without {IP|TCP|UDP} offload


  • Live migration

Kernel side:

  • Load/unload driver

User Experience

Users should see faster networking at least in cases of SRIOV or a dedicated per-guest network device.


  • kernel acceleration is implemented in the kernel rpm and depends on changes in qemu-kvm to work correctly.

Contingency Plan

  • We don't turn it on by default if it turns out to be unstable.



Release Notes

  • FIXMEKVM networking is enhanced by kernel acceleration

Comments and Discussion