From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1ME96l-0007kx-Nl for qemu-devel@nongnu.org; Tue, 09 Jun 2009 17:43:51 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1ME96g-0007gB-8L for qemu-devel@nongnu.org; Tue, 09 Jun 2009 17:43:50 -0400 Received: from [199.232.76.173] (port=42731 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1ME96f-0007fv-Vg for qemu-devel@nongnu.org; Tue, 09 Jun 2009 17:43:46 -0400 Received: from mx2.redhat.com ([66.187.237.31]:33261) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1ME96f-0005ot-Ee for qemu-devel@nongnu.org; Tue, 09 Jun 2009 17:43:45 -0400 From: Mark McLoughlin In-Reply-To: <1243523971.4046.206.camel@blaa> References: <1243523971.4046.206.camel@blaa> Content-Type: text/plain Date: Tue, 09 Jun 2009 22:43:38 +0100 Message-Id: <1244583818.7164.19.camel@blaa> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] Re: Networking patches queue Reply-To: Mark McLoughlin List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: Jan Kiszka , qemu-devel , Alex Williamson Hi Anthony, On Thu, 2009-05-28 at 16:19 +0100, Mark McLoughlin wrote: > Recently, Jan has posted 11 networking patches and I've posted 17, so I > thought I'd push out a tree with these queued up. Perhaps you want to > pull from there? > > Some notes: > > - I've taken the first 6 of Jan's patches, but left 7-11 for now; see > the review comments I just posted. I expect Jan will be able to > fix them up fairly quickly > > - I've tried my best to fix up the param checking saga by reverting > Kevin's patch, going with Jan's rollback to something closer to > what was there originally and applying a small fixup patch > > - Not all of these patches are completely isolated to networking > code - e.g. the fork_exec() patch adds a SIGCHLD handler > > - I haven't reviewed the slirp changes in great detail, but they > look okay at a glance I've re-based the queue and pulled in Alex's rx filtering patches. I've tested the tree as follows: - Mostly just with --enable-kvm - F-11 host and guest - Basic functional testing (dhcp, ping, ssh, scp) with tap, slirp, virtio-net and e1000 - Some quick host<->guest netperf benchmarks (results in Mb/s): | TCP TX | UDP TX | TCP RX | UDP RX --------------+--------+--------+--------+------- virtio before | 386 | 1545 | 190 | 410 after | 760 | 1540 | 1100 | 860* e1000 before | 220 | 155 | 88 | 160 after | 400 | 165 | 1255 | 180* * - these UDP RX results show the received figures; the sent figures are much higher since the host is sending so fast it is overflowing the socket buffers in the guest - Pushed it through a basic kvm-autotest run, to see if e.g. the SIGCHLD handler had side-effects not thrown up by networking tests - Confirmed that invalid parameter and hotplug errors are working as expected after Jan's changes - Basic testing of slirp redirs - Basic testing of promisc, allmuti, mac table filtering etc. - Alex clearly has tested this in more detail, though - Attempted to test old->new virtio-net migrations (given the version_id bumps), but virtio migration is still broken on HEAD Pull request below. Cheers, Mark. The following changes since commit 98ba2632fc2695838657a972fce69270cb79dc77: Gerd Hoffmann (1): qdev: c99 initilaizers for bus_type_names are available in the git repository at: git://git.et.redhat.com/qemu-net.git queue Alex Williamson (7): virtio-net: Add version_id 7 placeholder for vnet header support virtio-net: Use a byte to store RX mode flags virtio-net: reorganize receive_filter() virtio-net: Fix MAC filter overflow handling virtio-net: MAC filter optimization virtio-net: Add new RX filter controls virtio-net: Increase filter and control limits Jan Kiszka (6): net: Don't deliver to disabled interfaces in qemu_sendv_packet net: Fix and improved ordered packet delivery slirp: Avoid zombie processes after fork_exec net: Real fix for check_params users net: Improve parameter error reporting slirp: Reorder initialization Mark McLoughlin (15): Revert "Fix output of uninitialized strings" net: fix error reporting for some net parameter checks net: factor tap_read_packet() out of tap_send() net: move the tap buffer into TAPState net: vlan clients with no fd_can_read() can always receive net: only read from tapfd when we can send net: add fd_readv() handler to qemu_new_vlan_client() args net: re-name vc->fd_read() to vc->receive() net: pass VLANClientState* as first arg to receive handlers net: add return value to packet receive handler net: return status from qemu_deliver_packet() net: split out packet queueing and flushing into separate functions net: add qemu_send_packet_async() net: make use of async packet sending API in tap client virtio-net: implement rx packet queueing hw/dp8393x.c | 22 +- hw/e1000.c | 30 ++- hw/eepro100.c | 23 +- hw/etraxfs_eth.c | 14 +- hw/mcf_fec.c | 11 +- hw/mipsnet.c | 16 +- hw/musicpal.c | 11 +- hw/ne2000.c | 25 +- hw/pci-hotplug.c | 7 +- hw/pcnet.c | 17 +- hw/qdev.c | 9 +- hw/rtl8139.c | 39 ++-- hw/smc91c111.c | 18 +- hw/stellaris_enet.c | 20 +- hw/usb-net.c | 18 +- hw/virtio-net.c | 154 +++++++++--- hw/virtio-net.h | 14 +- hw/xen_nic.c | 26 +- net.c | 708 ++++++++++++++++++++++++++++++++++----------------- net.h | 31 ++- savevm.c | 2 +- slirp/libslirp.h | 2 +- slirp/slirp.c | 2 +- sysemu.h | 3 +- tap-win32.c | 8 +- vl.c | 57 ++-- 26 files changed, 834 insertions(+), 453 deletions(-)