Historic archive of defunct list bloat-devel@lists.bufferbloat.net
 help / color / mirror / Atom feed
* cake: changing bandwidth on the rate limiter dynamically
@ 2014-12-12 15:52 Dave Taht
  2014-12-12 15:59 ` Jonathan Morton
  0 siblings, 1 reply; 6+ messages in thread
From: Dave Taht @ 2014-12-12 15:52 UTC (permalink / raw)
  To: cerowrt-devel, bloat-devel

One of the nice things that the gargoyle-qos system does is that it
attempts to measure the bandwidth actively and modify the actual
bandwidth in the rate limiter to suit.

It does this with some very hairy code into the htb/hfsc subsystem,
and measuring ping to either a server elsewhere or short ttl udp +
icmp returns.... (can't remember which)

dealing with the measurements correctly when traffic is possibly
bottlenecking in both directions I think it fails on. As does
streamboost.

Now, it turns out that cake makes altering the bandwidth really easy,
you can just change it from the command line.

http://pastebin.com/Jr9s6EBW

I am pretty sure changing it is currently pretty damaging to stuff in
flight (don't remember), but
it needent be.

I think dynamically sensing the underlying bandwidth would be a great
boon, rather than having to set it so explicitly, and perhaps by
sensing some other parameters like ack clocks or overall traffic flow
at a depth that bpf could resolve, might be a valid approach.


-- 
Dave Täht

http://www.bufferbloat.net/projects/bloat/wiki/Upcoming_Talks

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: cake: changing bandwidth on the rate limiter dynamically
  2014-12-12 15:52 cake: changing bandwidth on the rate limiter dynamically Dave Taht
@ 2014-12-12 15:59 ` Jonathan Morton
  2014-12-12 17:44   ` Dave Taht
  0 siblings, 1 reply; 6+ messages in thread
From: Jonathan Morton @ 2014-12-12 15:59 UTC (permalink / raw)
  To: Dave Taht; +Cc: bloat-devel, cerowrt-devel

> On 12 Dec, 2014, at 17:52, Dave Taht <dave.taht@gmail.com> wrote:
> 
> Now, it turns out that cake makes altering the bandwidth really easy,
> you can just change it from the command line.
> 
> http://pastebin.com/Jr9s6EBW
> 
> I am pretty sure changing it is currently pretty damaging to stuff in
> flight (don't remember), but it needent be.

I don’t think it is harmful.  All that happens is that the packet issue deadlines start to be advanced at a different rate with each packet transmitted.  A change in the rate by that mechanism doesn’t cause any packet flushing or other trouble.

The flow-discrimination mode and the diffserv mode can also be changed in the same way, but this is more disruptive; it may at least result in some packets arriving out of order within flows, if not also some spurious drops.  But the network can tolerate that happening occasionally.

 - Jonathan Morton


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: cake: changing bandwidth on the rate limiter dynamically
  2014-12-12 15:59 ` Jonathan Morton
@ 2014-12-12 17:44   ` Dave Taht
  2014-12-13  2:55     ` Jonathan Morton
  0 siblings, 1 reply; 6+ messages in thread
From: Dave Taht @ 2014-12-12 17:44 UTC (permalink / raw)
  To: Jonathan Morton; +Cc: bloat-devel, cerowrt-devel

On Fri, Dec 12, 2014 at 7:59 AM, Jonathan Morton <chromatix99@gmail.com> wrote:
>> On 12 Dec, 2014, at 17:52, Dave Taht <dave.taht@gmail.com> wrote:
>>
>> Now, it turns out that cake makes altering the bandwidth really easy,
>> you can just change it from the command line.
>>
>> http://pastebin.com/Jr9s6EBW
>>
>> I am pretty sure changing it is currently pretty damaging to stuff in
>> flight (don't remember), but it needent be.
>
> I don’t think it is harmful.  All that happens is that the packet issue deadlines start to be advanced at a different rate with each packet transmitted.  A change in the rate by that mechanism doesn’t cause any packet flushing or other trouble.
>
> The flow-discrimination mode and the diffserv mode can also be changed in the same way, but this is more disruptive; it may at least result in some packets arriving out of order within flows, if not also some spurious drops.  But the network can tolerate that happening occasionally.

Good to know.

While fiddling with the idea a bit, I found that you can add a
bandwidth limit to cake on the fly, but once added you cant remove it
with the syntax at hand.

I plan to start up a new debloat-testing tree after the new year,
containing bits of cake, and wireless-next,
where it might be easier to fiddle. I do plan to stick to x86_64 for a
while on that until something lands that is solid and useful on an
embedded system.

(It is long past time I shelled out some cash for github (as storing a
kernel there would wipe out my disk space allocation), and will
probably store the new tree there, unless someone objects)

... in the meantime, my current patchset for cake, cake variants, and
for all the other qdisc work under test is here:

http://snapon.lab.bufferbloat.net/~d/codel_patches/

It applies against net-next, and linux-3.14. The *.deb files are a
kernel build for the latest ubuntu release.

And I did do a build of chaos calmer as a test containing a slightly
older version of that patch set

http://snapon.lab.bufferbloat.net/~cero3/chaos_calmer/ar71xx/

Which I have been running for nearly 2 weeks now on a test wndr 4300 box.

Sadly, although cake works great, it seems to have about the same cpu
limitations as htb+fq_codel, so further work on the ingress path seems
needed on these low end cpus (or we need to give up and just find
faster hardware).

>  - Jonathan Morton
>



-- 
Dave Täht

thttp://www.bufferbloat.net/projects/bloat/wiki/Upcoming_Talks

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: cake: changing bandwidth on the rate limiter dynamically
  2014-12-12 17:44   ` Dave Taht
@ 2014-12-13  2:55     ` Jonathan Morton
  2014-12-13  3:57       ` Dave Taht
  0 siblings, 1 reply; 6+ messages in thread
From: Jonathan Morton @ 2014-12-13  2:55 UTC (permalink / raw)
  To: Dave Taht; +Cc: bloat-devel, cerowrt-devel


> On 12 Dec, 2014, at 19:44, Dave Taht <dave.taht@gmail.com> wrote:
> 
> While fiddling with the idea a bit, I found that you can add a
> bandwidth limit to cake on the fly, but once added you cant remove it
> with the syntax at hand.

Yes you can:

# tc qdisc change dev ifb0 handle 2: cake unlimited

 - Jonathan Morton


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: cake: changing bandwidth on the rate limiter dynamically
  2014-12-13  2:55     ` Jonathan Morton
@ 2014-12-13  3:57       ` Dave Taht
  2014-12-14  8:30         ` Jonathan Morton
  0 siblings, 1 reply; 6+ messages in thread
From: Dave Taht @ 2014-12-13  3:57 UTC (permalink / raw)
  To: Jonathan Morton; +Cc: bloat-devel, cerowrt-devel

On Fri, Dec 12, 2014 at 6:55 PM, Jonathan Morton <chromatix99@gmail.com> wrote:
>
>> On 12 Dec, 2014, at 19:44, Dave Taht <dave.taht@gmail.com> wrote:
>>
>> While fiddling with the idea a bit, I found that you can add a
>> bandwidth limit to cake on the fly, but once added you cant remove it
>> with the syntax at hand.
>
> Yes you can:
>
> # tc qdisc change dev ifb0 handle 2: cake unlimited

I guess all that is needed is a marie antoinette mode, then, huh?

>  - Jonathan Morton
>



-- 
Dave Täht

thttp://www.bufferbloat.net/projects/bloat/wiki/Upcoming_Talks

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: cake: changing bandwidth on the rate limiter dynamically
  2014-12-13  3:57       ` Dave Taht
@ 2014-12-14  8:30         ` Jonathan Morton
  0 siblings, 0 replies; 6+ messages in thread
From: Jonathan Morton @ 2014-12-14  8:30 UTC (permalink / raw)
  To: Dave Taht; +Cc: bloat-devel, cerowrt-devel


> On 13 Dec, 2014, at 05:57, Dave Taht <dave.taht@gmail.com> wrote:
> 
> I guess all that is needed is a marie antoinette mode, then, huh?

For that, we would need to have something called “bread” for cake to be an alternative to.  But then again, what was the French for bread again?  ;-)

 - Jonathan Morton


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2014-12-14  8:30 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-12-12 15:52 cake: changing bandwidth on the rate limiter dynamically Dave Taht
2014-12-12 15:59 ` Jonathan Morton
2014-12-12 17:44   ` Dave Taht
2014-12-13  2:55     ` Jonathan Morton
2014-12-13  3:57       ` Dave Taht
2014-12-14  8:30         ` Jonathan Morton

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox