NetworkingTodo: Difference between revisions

From KVM
No edit summary
 
No edit summary
Line 15: Line 15:
=== vhost-net driver projects ===
=== vhost-net driver projects ===
* iovec length limitations
* iovec length limitations
  Developer: Jason Wang <jasowang@redhat.com>
  Testing: guest to host file transfer on windows.


* mergeable buffers: fix host->guest BW regression
* mergeable buffers: fix host->guest BW regression
  Developer: David Stevens <dlstevens@us.ibm.com>
  Testing: netperf host to guest default flags


* scalability tuning: figure out the best threading model to use
* scalability tuning: threading for guest to guest
  Developer: MST
  Testing: netperf guest to guest


=== qemu projects ===
=== qemu projects ===
* fix hotplug issues
* fix hotplug issues
  Developer: MST
  https://bugzilla.redhat.com/show_bug.cgi?id=623735


* migration with multiple macs/vlans
* migration with multiple macs/vlans
         qemu only sends ping with the first mac/no vlan:
         qemu only sends ping with the first mac/no vlan:
         need to send it for all macs/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 ===
=== virtio projects ===
* suspend/resume support
* suspend/resume support
* API extension: improve small packet/large buffer performance:
* API extension: improve small packet/large buffer performance:
   support "reposting" buffers for mergeable buffers,
   support "reposting" buffers for mergeable buffers,
Line 35: Line 48:
       fix cacheline bounces  
       fix cacheline bounces  
       reduce interrupts
       reduce interrupts
   Developer: Michael
   Developer: MST
       see patchset: virtio: put last seen used index into ring itself
       see patchset: virtio: put last seen used index into ring itself


Line 50: Line 63:


* zero copy tx/rx for macvtap
* 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)
* 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
* kvm MSI interrupt injection fast path
  Developer: MST


* kvm eventfd support for injecting level interrupts
* kvm eventfd support for injecting level interrupts
Line 59: Line 77:


* allow handling short packets from softirq context
* allow handling short packets from softirq context
  Testing: netperf TCP STREAM guest to host
          netperf TCP RR


* irq affinity:
* irq affinity:
Line 68: Line 88:
* Cover test matrix with autotest
* Cover test matrix with autotest
* Test with windows drivers, pass WHQL
* Test with windows drivers, pass WHQL
== Short term plans
* multiqueue Krishna Jumar
* tx zero copy Shirley Ma
* rx zero copy Xin Xiaohui


== non-virtio-net devices
== non-virtio-net devices
e1000: bug in dealing with short frames (affect sun guests)
e1000: stabilize
  Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=602205


== bugzilla entries
== bugzilla entries for bugs fixed (listed here to verify)


should be fixed upstream (must verify):
https://bugzilla.redhat.com/show_bug.cgi?id=623552
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=632747
https://bugzilla.redhat.com/show_bug.cgi?id=632745
https://bugzilla.redhat.com/show_bug.cgi?id=632745


known minor bug in qemu:
https://bugzilla.redhat.com/show_bug.cgi?id=581750
need to fix (mst is working on it):
https://bugzilla.redhat.com/show_bug.cgi?id=623735
feature request (multiqueue):
https://bugzilla.redhat.com/show_bug.cgi?id=632751
e1000 bug:
https://bugzilla.redhat.com/show_bug.cgi?id=602205


== abandoned projects:
== abandoned projects:

Revision as of 11:28, 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
 Developer: David Stevens <dlstevens@us.ibm.com>
 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

=

  • 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
  • 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 (listed here to verify)

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