Thread (4 messages) 4 messages, 4 authors, 2012-11-05

Re: [PATCH RFC] pkt_sched: enable QFQ to support TSO/GSO

flat view

From: David Miller <davem@davemloft.net>
Date: 2012-11-05 16:46:25
Also in: lkml

From: Cong Wang <redacted>
Date: Mon, 5 Nov 2012 16:41:49 +0800
On Tue, Oct 30, 2012 at 10:24 PM, Stephen Hemminger
[off-list ref] wrote:
quoted
On Tue, 30 Oct 2012 07:00:56 +0100
Paolo Valente [off-list ref] wrote:
quoted
Hi,
if the max packet size for some class (configured through tc) is
violated by the actual size of the packets of that class, then QFQ
would not schedule classes correctly, and the data structures
implementing the bucket lists may get corrupted. This problem occurs
with TSO/GSO even if the max packet size is set to the MTU, and is,
e.g., the cause of the failure reported in [1]. Two patches have been
proposed to solve this problem in [2], one of them is a preliminary
version of this patch.

This patch addresses the above issues by: 1) setting QFQ parameters to
proper values for supporting TSO/GSO (in particular, setting the
maximum possible packet size to 64KB), 2) automatically increasing the
max packet size for a class, lmax, when a packet with a larger size
than the current value of lmax arrives.

The drawback of the first point is that the maximum weight for a class
is now limited to 4096, which is equal to 1/16 of the maximum weight
sum.

Finally, this patch also forcibly caps the timestamps of a class if
they are too high to be stored in the bucket list. This capping, taken
from QFQ+ [3], handles the unfrequent case described in the comment to
the function slot_insert.

[1] http://marc.info/?l=linux-netdev&m=134968777902077&w=2
[2] http://marc.info/?l=linux-netdev&m=135096573507936&w=2
[3] http://marc.info/?l=linux-netdev&m=134902691421670&w=2

Signed-off-by: Paolo Valente <redacted>
Tested-by: Cong Wang <redacted>
Acked-by: Stephen Hemminger <redacted>

David, could you take this patch? Stephen acked it.
It's "RFC" so it needs to be explicitly reposted.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help