Re: [PATCH] virtio_net tx performance fix
From: Anthony Liguori <hidden>
Date: 2008-01-28 15:32:56
Hi Dor, How are you measuring performance? The numbers I've gotten with netperf before and after your patch are: tx - 647.27mbit rx - 89.22 tx - 27.82 rx - 79.93 So this patch is pretty much killing performance for netperf. Dor Laor wrote:
There was a problem with the location of the notify call in add_buff function: When VRING_USED_F_NO_NOTIFY is set, the host does not kick the guest when packets were transmitted, as a result the guest runs out of tx buffers sometimes.
But even if F_NO_NOTIFY is set, if the tx buffer is full, we notify the guest, so this prevents that from happening.
This is fine but the problem lies when add_buf fails, it called notify and the host sends all the pending tx pkts. When enable_cb was called, more_used(vq) returned false so eventually the skb was dropped.
I'm having a tough time following this part. If add_buf fails, we notify unconditionally (which is, I think what we want). I'm not sure how that relates to a packet getting dropped though. Regards, Anthony Liguori