Re: [Xen-devel] [PATCH] xen/netfront: raise max number of slots in xennet_get_responses()

From: Juergen Gross
Date: Tue Jun 12 2018 - 02:45:40 EST


On 11/06/18 20:59, Boris Ostrovsky wrote:
> On 06/11/2018 03:57 AM, Juergen Gross wrote:
>> The max number of slots used in xennet_get_responses() is set to
>> MAX_SKB_FRAGS + (rx->status <= RX_COPY_THRESHOLD).
>>
>> In old kernel-xen MAX_SKB_FRAGS was 18, while nowadays it is 17. This
>> difference is resulting in frequent messages "too many slots" and a
>> reduced network throughput for some workloads (factor 10 below that of
>> a kernel-xen based guest).
>>
>> Replacing MAX_SKB_FRAGS by XEN_NETIF_NR_SLOTS_MIN for calculation of
>> the max number of slots to use solves that problem (tests showed no
>> more messages "too many slots" and throughput was as high as with the
>> kernel-xen based guest system).
>>
>> Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
>
> Reviewed-by: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
>
> I wonder also whether netfront_tx_slot_available() is meant to be
>
> return (queue->tx.req_prod_pvt - queue->tx.rsp_cons) <
> ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ (NET_TX_RING_SIZE - XEN_NETIF_NR_SLOTS_MIN - 1);
>
> which is the same numeric value but provides a more accurate description
> of what is being tested.

Yes, this is a sensible idea. I'll add that, keeping your R-b.


Juergen