From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony Liguori Subject: Re: [PATCH] Increase the tx queue to 512 descriptors to fix performance problem. Date: Wed, 09 Jan 2008 08:51:52 -0600 Message-ID: <4784DF88.9010402@codemonkey.ws> References: <1199885016.4382.22.camel@localhost.localdomain> <4784DA51.7080507@us.ibm.com> <1199889527.4382.28.camel__11785.4029442698$1199889627$gmane$org@localhost.localdomain> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Cc: kvm-devel , "virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org" To: dor.laor-atKUWr5tajBWk0Htik3J/w@public.gmane.org Return-path: In-Reply-To: <1199889527.4382.28.camel__11785.4029442698$1199889627$gmane$org-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org Errors-To: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org List-Id: kvm.vger.kernel.org Dor Laor wrote: > On Wed, 2008-01-09 at 08:29 -0600, Anthony Liguori wrote: >> Dor Laor wrote: >>> Now that we have a host timer based tx wakeup it waits for 64 >>> packets or timeout before processing them. >>> This might cause the guest to run out of tx buffers while the host >>> holds them up. >>> >> There's a proper fix that Rusty added last night. > > This is with his latest patch, without it I got a lot of > "printk("Unlikely: restart svq failed\n");" > + The performance is much better now. How are you getting that? What are you running and what is your guest kernel? I've not seen that before. >>> This is a temporal solution to quickly bring back performance to 800mbps. >>> But a better fix will soon be sent (its not the only problem). >>> >> How are you doing performance testing? > > Not really, this was just to stabilize the module. > It needs some more work, disable/enable of the device is broken. What do you mean by disable/enable? FWIW, your patch really hurts netperf performance which is why I asked how you were measuring 800mbps. Regards, Anthony Liguori >> Regards, >> >> Anthony Liguori >> >>> Signed-off-by: Dor Laor >>> --- >>> qemu/hw/virtio-net.c | 2 +- >>> 1 files changed, 1 insertions(+), 1 deletions(-) >>> >>> diff --git a/qemu/hw/virtio-net.c b/qemu/hw/virtio-net.c >>> index 777fe2c..3d07b65 100644 >>> --- a/qemu/hw/virtio-net.c >>> +++ b/qemu/hw/virtio-net.c >>> @@ -293,7 +293,7 @@ void *virtio_net_init(PCIBus *bus, NICInfo *nd, int devfn) >>> n->vdev.update_config = virtio_net_update_config; >>> n->vdev.get_features = virtio_net_get_features; >>> n->rx_vq = virtio_add_queue(&n->vdev, 512, virtio_net_handle_rx); >>> - n->tx_vq = virtio_add_queue(&n->vdev, 128, virtio_net_handle_tx); >>> + n->tx_vq = virtio_add_queue(&n->vdev, 512, virtio_net_handle_tx); >>> n->can_receive = 0; >>> memcpy(n->mac, nd->macaddr, 6); >>> n->vc = qemu_new_vlan_client(nd->vlan, virtio_net_receive, >>> ------------------------------------------------------------------------- Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace