I just put in three quite small tweaks to cake:

1) Codel now has a saturating increment for count, rather than a wrapping one.

2) The active flow counter is now an atomic-access variable.  This is really 
just an abundance of caution.

3) The overload drop routine should now be somewhat more efficient in most 
cases, since it iterates over the active flows rather than the entire array.  I 
haven’t measured how much of a difference it makes in practice, but it should 
be positive.

Point 1 turns out to matter rather a lot under unresponsive loads, given that 
count is only 16 bits.

The “50 up 1 down asymmetric” test now produces the desired results for the 
download stream *without* the need to prioritise the acks; Codel now reaches a 
steady-ish state where it drops enough of them to keep everything moving, and 
this leaves more bandwidth in the up direction for the 50 streams.

The version of that test with a prioritised download stream reveals that quite 
a lot of drops (as well as marks) are still occurring in the 50 streams.  This, 
to my mind, is a sign of too much aggression in the switch from marking to 
dropping, but I need to work out the numbers to be more confident about 
adjusting that.

 - Jonathan Morton

_______________________________________________
Bloat mailing list
[email protected]
https://lists.bufferbloat.net/listinfo/bloat

Reply via email to