From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wanlong Gao Subject: Re: [Qemu-devel] [PATCH 10/12] virtio-net: multiqueue support Date: Tue, 08 Jan 2013 18:00:57 +0800 Message-ID: <50EBEE59.6040209@cn.fujitsu.com> References: <1356690724-37891-1-git-send-email-jasowang@redhat.com> <1356690724-37891-11-git-send-email-jasowang@redhat.com> <50EBE1BE.3000500@cn.fujitsu.com> <50EBE6F5.9010300@redhat.com> <50EBEB91.8010604@cn.fujitsu.com> <50EBEC20.3070805@redhat.com> Reply-To: gaowanlong@cn.fujitsu.com Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: krkumar2@in.ibm.com, aliguori@us.ibm.com, kvm@vger.kernel.org, mst@redhat.com, mprivozn@redhat.com, rusty@rustcorp.com.au, qemu-devel@nongnu.org, stefanha@redhat.com, jwhan@filewood.snu.ac.kr, shiyer@redhat.com To: Jason Wang Return-path: Received: from cn.fujitsu.com ([222.73.24.84]:13166 "EHLO song.cn.fujitsu.com" rhost-flags-OK-FAIL-OK-OK) by vger.kernel.org with ESMTP id S1755088Ab3AHKAe (ORCPT ); Tue, 8 Jan 2013 05:00:34 -0500 In-Reply-To: <50EBEC20.3070805@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: On 01/08/2013 05:51 PM, Jason Wang wrote: > On 01/08/2013 05:49 PM, Wanlong Gao wrote: >> On 01/08/2013 05:29 PM, Jason Wang wrote: >>> On 01/08/2013 05:07 PM, Wanlong Gao wrote: >>>> On 12/28/2012 06:32 PM, Jason Wang wrote: >>>>> + } else if (nc->peer->info->type != NET_CLIENT_OPTIONS_KIND_TAP) { >>>>> + ret = -1; >>>>> + } else { >>>>> + ret = tap_detach(nc->peer); >>>>> + } >>>>> + >>>>> + return ret; >>>>> +} >>>>> + >>>>> +static void virtio_net_set_queues(VirtIONet *n) >>>>> +{ >>>>> + int i; >>>>> + >>>>> + for (i = 0; i < n->max_queues; i++) { >>>>> + if (i < n->curr_queues) { >>>>> + assert(!peer_attach(n, i)); >>>>> + } else { >>>>> + assert(!peer_detach(n, i)); >>>> I got a assert here, >>>> qemu-system-x86_64: /work/git/qemu/hw/virtio-net.c:330: virtio_net_set_queues: Assertion `!peer_detach(n, i)' failed. >>>> >>>> Any thoughts? >>>> >>>> Thanks, >>>> Wanlong Gao >>> Thanks for the testing, which steps or cases did you met this assertion, >>> migration, reboot or just changing the number of virtqueues? >> I use the 3.8-rc2 to test it again, I saw this tag has the multi-tap support. >> >> I just can't start the QEMU use -netdev tap,id=hostnet0,queues=2,fd=%d,fd=%d -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:ce:7b:29,bus=pci.0,addr=0x3 >> >> I pre-opened two tap fds, did I missing something? > > Nothing missed :) It should work. > > Could you please try not use fd=X and let qemu to create the file > descriptors by itself? Btw, how did you create the two tap fds? Can it create descriptors itself? I get qemu-system-x86_64: -netdev tap,id=hostnet0,queues=2: Device 'tap' could not be initialized I create the tap fd like this, and dup create the second fd, third fd, right? int tap_fd = open("/dev/net/tun", O_RDWR); int vhost_fd = open("/dev/vhost-net", O_RDWR); char *tap_name = "tap"; char cmd[2048]; char brctl[256]; char netup[256]; struct ifreq ifr; if (tap_fd < 0) { printf("open tun device failed\n"); return -1; } if (vhost_fd < 0) { printf("open vhost-net device failed\n"); return -1; } memset(&ifr, 0, sizeof(ifr)); memcpy(ifr.ifr_name, tap_name, sizeof(tap_name)); ifr.ifr_flags = IFF_TAP | IFF_NO_PI; /* * setup tap net device */ if (ioctl(tap_fd, TUNSETIFF, &ifr) < 0) { printf("setup tap net device failed\n"); return -1; } sprintf(brctl, "brctl addif virbr0 %s", tap_name); sprintf(netup, "ifconfig %s up", tap_name); system(brctl); system(netup); Thanks, Wanlong Gao > > Thanks >> >> Thanks, >> Wanlong Gao >> >>>>> + } >>>>> + } >>>>> +} >>>>> + >>>>> +static void virtio_net_set_multiqueue(VirtIONet *n, int multiqueue, int ctrl); >>>>> + >>>> -- >>>> To unsubscribe from this list: send the line "unsubscribe kvm" in >>>> the body of a message to majordomo@vger.kernel.org >>>> More majordomo info at http://vger.kernel.org/majordomo-info.html >>> >> > >