Subject: Re: [PATCH RFC 2/3] virtio_net: fix tx capacity checks using new API

From: Rusty Russell <rusty-8n+1lVoiYb80n/[email-masked]>
Date: Thu, 02 Jun 2011 11:40:26 +0930

On Wed, 1 Jun 2011 12:49:54 +0300, "Michael S. Tsirkin" <[email-masked]> wrote:
> In the (rare) case where new descriptors are used
> while virtio_net enables vq callback for the TX vq,
> virtio_net uses the number of sg entries in the skb it frees to
> calculate how many descriptors in the ring have just been made
> available.  But this value is an overestimate: with indirect buffers
> each skb only uses one descriptor entry, meaning we may wake the queue
> only to find we still can't transmit anything.

This is a bit misleading.

The value is an overestimate, but so is the requirement for
2+MAX_SKB_FRAGS, *unless* we suddenly drop into direct mode due to OOM.

Thanks,
Rusty.