From KVM
Line 51: Line 51:
  
 
=== projects involing other kernel components and/or networking stack ===
 
=== projects involing other kernel components and/or networking stack ===
 +
* guest programmable mac/vlan filtering with macvtap
 +
 +
* bridge without promisc mode in NIC
 +
  given hardware support, teach bridge
 +
  to program mac/vlan filtering in NIC
 +
 
* rx mac filtering in tun
 
* rx mac filtering in tun
 
         the need for this is still not understood as we have filtering in bridge
 
         the need for this is still not understood as we have filtering in bridge

Revision as of 16:55, 21 September 2010

This page should cover all networking related activity in KVM, currently most info is related to virtio-net.

Stabilization is highest priority currently. DOA test matrix (all combinations should work):

       vhost: test both on and off, obviously
       test: hotplug/unplug, vlan/mac filtering, netperf,
            file copy both ways: scp, NFS, NTFS
       guests: linux: release and debug kernels, windows
       conditions: plain run, run while under migration,
               vhost on/off migration
       networking setup: simple, qos with cgroups
       host configuration: host-guest, external-guest

vhost-net driver projects

  • iovec length limitations
      Developer: Jason Wang <jasowang@redhat.com>
      Testing: guest to host file transfer on windows.
  • mergeable buffers: fix host->guest BW regression
      Testing: netperf host to guest default flags
  • scalability tuning: threading for guest to guest
      Developer: MST
     Testing: netperf guest to guest

qemu projects

  • fix hotplug issues
     Developer: MST
     https://bugzilla.redhat.com/show_bug.cgi?id=623735
  • migration with multiple macs/vlans
       qemu only sends ping with the first mac/no vlan:
       need to send it for all macs/vlan
  • bugfix: crash with illegal fd= value on command line
      Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=581750

virtio projects

  • suspend/resume support
  • API extension: improve small packet/large buffer performance:
 support "reposting" buffers for mergeable buffers,
 support pool for indirect buffers
  • ring redesign:
     find a way to test raw ring performance 
     fix cacheline bounces 
     reduce interrupts
     Developer: MST
     see patchset: virtio: put last seen used index into ring itself

projects involing other kernel components and/or networking stack

  • guest programmable mac/vlan filtering with macvtap
  • bridge without promisc mode in NIC
 given hardware support, teach bridge
 to program mac/vlan filtering in NIC
  • rx mac filtering in tun
       the need for this is still not understood as we have filtering in bridge
       we have a small table of addresses, need to make it larger
       if we only need filtering for unicast (multicast is handled by IMP filtering)
  • vlan filtering in tun
       the need for this is still not understood as we have filtering in bridge
       for small # if vlans we can use BPF
  • vlan filtering in bridge
       IGMP snooping in bridge should take vlans into account
  • zero copy tx/rx for macvtap
      Developers: tx zero copy Shirley Ma; rx zero copy Xin Xiaohui
  • multiqueue (involves all of vhost, qemu, virtio, networking stack)
      Developer: Krishna Jumar
      Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=632751
  • kvm MSI interrupt injection fast path
      Developer: MST
  • kvm eventfd support for injecting level interrupts
  • DMA emgine (IOAT) use in tun
  • allow handling short packets from softirq context
 Testing: netperf TCP STREAM guest to host
          netperf TCP RR
  • irq affinity:
    networking goes much faster with irq pinning:
    both with and without numa.
    what can be done to make the non-pinned setup go faster?

testing projects

  • Cover test matrix with autotest
  • Test with windows drivers, pass WHQL

non-virtio-net devices

  • e1000: stabilize
     Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=602205

bugzilla entries for bugs fixed

  • verify these are ok upstream
    https://bugzilla.redhat.com/show_bug.cgi?id=623552
    https://bugzilla.redhat.com/show_bug.cgi?id=632747
    https://bugzilla.redhat.com/show_bug.cgi?id=632745


abandoned projects:

  • Add GSO/checksum offload support to AF_PACKET(raw) sockets.
     status: incomplete
  • guest kernel 2.6.31 seems to work well. Under certain workloads,
     virtio performance has regressed with guest kernels 2.6.32 and up
     (but still better than userspace). A patch has been posted:
     http://www.spinics.net/lists/netdev/msg115292.html
     status: might be fixed, need to test