[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <5698CA9D.5040707@citrix.com>
Date: Fri, 15 Jan 2016 10:31:57 +0000
From: David Vrabel <david.vrabel@...rix.com>
To: David Miller <davem@...emloft.net>, <david.vrabel@...rix.com>
CC: <netdev@...r.kernel.org>, <wei.liu2@...rix.com>,
<ian.campbell@...rix.com>, <xen-devel@...ts.xenproject.org>
Subject: Re: [Xen-devel] [PATCHv1 net] xen-netback: use skb to determine number
of required guest Rx requests
On 14/01/16 21:54, David Miller wrote:
> From: David Vrabel <david.vrabel@...rix.com>
> Date: Thu, 14 Jan 2016 15:18:30 +0000
>
>> - needed = xenvif_rx_ring_slots_needed(queue->vif);
>> + skb = skb_peek(&queue->rx_queue);
>> + if (!skb)
>> + return false;
>> +
>> + needed = DIV_ROUND_UP(skb->len, XEN_PAGE_SIZE);
>> + if (skb_is_gso(skb))
>> + needed++;
>
> If I am not mistaken, we moved away from this kind of test exactly because
> it is inaccurate and may under-estimate the needs.
>
> It is possible for an N byte SKB to require N segments. Therefore, the:
>
> DIV_ROUND_UP(skb->len, XEN_PAGE_SIZE);
>
> calculation doesn't cut it.
After 1650d5455bd2dc6b5ee134bd6fc1a3236c266b5b (xen-netback: always
fully coalesce guest Rx packets) we always fully pack a packet into its
guest Rx slots. Each slot has space for XEN_PAGE_SIZE bytes so this
calculation for the number of slots is correct.
Shall I resend with a more description changelog?
David
Powered by blists - more mailing lists