On Wed, Feb 02, 2011 at 12:04:37PM +0530, Krishna Kumar2 wrote: > > On Tue, 2011-02-01 at 22:05 -0800, Shirley Ma wrote: > > > > > > The way I am changing is only when netif queue has stopped, then we > > > start to count num_free descriptors to send the signal to wake netif > > > queue. > > > > I forgot to mention, the code change I am making is in guest kernel, in > > xmit call back only wake up the queue when it's stopped && num_free >= > > 1/2 *vq->num, I add a new API in virtio_ring. > > FYI :) > > I have tried this before. There are a couple of issues: > > 1. the free count will not reduce until you run free_old_xmit_skbs, > which will not run anymore since the tx queue is stopped. > 2. You cannot call free_old_xmit_skbs directly as it races with a > queue that was just awakened (current cb was due to the delay > in disabling cb's). > > You have to call free_old_xmit_skbs() under netif_queue_stopped() > check to avoid the race. > > I got a small improvement in my testing upto some number of threads > (32 or 48?), but beyond that I was getting a regression. > > Thanks, > > - KK > > > However vhost signaling reduction is needed as well. The patch I > > submitted a while ago showed both CPUs and BW improvement. Yes, I think doing this in the host is much simpler, just send an interrupt after there's a decent amount of space in the queue. Having said that the simple heuristic that I coded might be a bit too simple. -- MST -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html