[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20130906101635.GI14104@zion.uk.xensource.com>
Date: Fri, 6 Sep 2013 11:16:35 +0100
From: Wei Liu <wei.liu2@...rix.com>
To: Eric Dumazet <eric.dumazet@...il.com>
CC: <wei.liu2@...rix.com>,
Jonathan Davies <Jonathan.Davies@...citrix.com>,
Ian Campbell <ian.campbell@...rix.com>,
<netdev@...r.kernel.org>, <xen-devel@...ts.xenproject.org>
Subject: TSQ accounting skb->truesize degrades throughput for large packets
Hi Eric
I have some questions regarding TSQ and I hope you can shed some light
on this.
Our observation is that with the default TSQ limit (128K), throughput
for Xen network driver for large packets degrades. That's because we now
only have 1 packet in queue.
I double-checked that skb->len is indeed <64K. Then I discovered that
TSQ actually accounts for skb->truesize and the packets generated had
skb->truesize > 64K which effectively prevented us from putting 2
packets in queue.
There seems to be no way to limit skb->truesize inside driver -- the skb
is already constructed when it comes to xen-netfront.
My questions are:
1) I see the comment in tcp_output.c saying: "TSQ : sk_wmem_alloc
accounts skb truesize, including skb overhead. But thats OK", I
don't quite understand why it is OK.
2) presumably other drivers will suffer from this as well, is it
possible to account for skb->len instead of skb->truesize?
3) if accounting skb->truesize is on purpose, does that mean we only
need to tune that value instead of trying to fix our driver (if
there is a way to)?
Thanks
Wei.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists