Thread (8 messages) flat view 8 messages, 4 authors, 2012-03-16

Re: [PATCH] sch_sfq: revert dont put new flow at the end of flows

From: Dave Taht <hidden>
Date: 2012-03-14 06:07:58

On Wed, Mar 14, 2012 at 5:02 AM, Eric Dumazet [off-list ref] wrote:
Le mercredi 14 mars 2012 à 04:52 +0000, Dave Taht a écrit :
quoted
I had some hope for a semi-random alternating queue
I spent some time implementing two queues, one for new flows, one for
old flows. As soon as a new flow uses its initial quantum, its moved at
the tail of 'old flows queue'.

But I always could find a way to starve some flows, even adding some
kind of persistence. Right now, as soon as we empty one flow, we forget
its history.

Next packet coming will create a "new flow" with a full quantum credit,
even if we nearly consume all flow quantum in the last micro second.

Thats definitely not a trivial problem.
I've expended brain cells on this too (nobody has any experience with head drop,
aqm managed queues!), and was unable to come up with a way of dealing with
the corner case of too many new streams inside of sfq's current architecture.

But I gotta say that the overall effect of this on optimizing sparse streams
(dns,dhcp,tcp syn,ra,other routing packets,gaming packets,etc) was pretty
freaking amazing, and it nearly eliminated any need for classification and
prioritization, BE, and BK were enough.

Ah, well. The other stuff in 3.3 is really good, too.

Sometimes you win, sometimes you lose, sometimes... it rains.


-- 
Dave Täht
SKYPE: davetaht
US Tel: 1-239-829-5608
http://www.bufferbloat.net
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help