From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MEfkF-0003cl-1g for qemu-devel@nongnu.org; Thu, 11 Jun 2009 04:34:47 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MEfkA-0003ZJ-00 for qemu-devel@nongnu.org; Thu, 11 Jun 2009 04:34:46 -0400 Received: from [199.232.76.173] (port=34753 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MEfk9-0003Yn-Fh for qemu-devel@nongnu.org; Thu, 11 Jun 2009 04:34:41 -0400 Received: from mx2.redhat.com ([66.187.237.31]:36098) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MEfk9-0005VO-03 for qemu-devel@nongnu.org; Thu, 11 Jun 2009 04:34:41 -0400 Subject: Re: [Qemu-devel] Re: Networking patches queue From: Mark McLoughlin In-Reply-To: <4A305D6B.3070905@codemonkey.ws> References: <1243523971.4046.206.camel@blaa> <1244583818.7164.19.camel@blaa> <4A305D6B.3070905@codemonkey.ws> Content-Type: text/plain Date: Thu, 11 Jun 2009 09:34:33 +0100 Message-Id: <1244709273.7752.2.camel@blaa> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit 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 On Wed, 2009-06-10 at 20:27 -0500, Anthony Liguori wrote: > Mark McLoughlin wrote: > > 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 > > > > This broke the build with vde enabled. Because of this line: > > +static ssize_t vde_receive(VLANClientState *vc, const uint8_t *buf, > size_t size) > { > VDEState *s = vc->opaque; > - int ret; > - for(;;) { > - ret = vde_send(s->vde, (const char *)buf, size, 0); > - if (ret < 0 && errno == EINTR) { > - } else { > - break; > - } > - } > + ssize ret; > > Obvious typo. I've pushed a fix. Gah, my apologies - I'll make sure to build with vde in future. Thanks, Mark.