[Cake] [PATCH] - I dont know when reciprocal_scale entered the kernel however

Dave Taht dave.taht at gmail.com
Wed Apr 22 12:29:55 EDT 2015


diff --git a/codel5.h b/codel5.h
index 2ccc65a..a3876ca 100644
--- a/codel5.h
+++ b/codel5.h
@@ -60,6 +60,14 @@

 /* Backport some stuff. FIXME: I dont know when these entered
    the kernel exactly. */
+#if LINUX_VERSION_CODE <= KERNEL_VERSION(3,14,0)
+
+static inline u32 reciprocal_scale(u32 val, u32 ep_ro)
+{
+       return (u32)(((u64) val * ep_ro) >> 32);
+}
+
+#endif

 #if LINUX_VERSION_CODE <= KERNEL_VERSION(3,16,0)
 static inline void qdisc_qstats_backlog_dec(struct Qdisc *sch,
--
1.9.1

On Wed, Apr 22, 2015 at 9:29 AM, Dave Taht <dave.taht at gmail.com> wrote:
> jonathon: please do try to meet kernel coding standards....
>
>
> ---------- Forwarded message ----------
> From: Stephen Hemminger <stephen at networkplumber.org>
> Date: Wed, Apr 22, 2015 at 8:50 AM
> Subject: Re: [Cake] out of tree "cake" now buildable on multiple linux versions
> To: Dave Taht <dave.taht at gmail.com>
>
>
> Run checkpatch and scream.
>
> On Wed, Apr 22, 2015 at 8:49 AM, Stephen Hemminger
> <stephen at networkplumber.org> wrote:
>>
>> You do know the sch_cake source needs a pass through the indentor to keep the style gods at bay.
>>
>> On Wed, Apr 22, 2015 at 1:16 AM, Dave Taht <dave.taht at gmail.com> wrote:
>>>
>>> Do a:
>>>
>>> git clone https://github.com/dtaht/sch_cake.git
>>>
>>>  # IF you have kernel source installed to leverage, adding cake is as easy as:
>>>
>>> cd sch_cake
>>> make; sudo make install
>>>
>>> # How do you install kernel headers on various linuxes?
>>>
>>> NOTE: I did not take the time to get the linux version checks
>>> exactly correct, but did manage to get it to compile on linux
>>> 3.13 and linux 3.18 without error, on x86_64.
>>>
>>> To use it properly, you will also need to build and install the
>>> iproute with cake support:
>>>
>>> git clone git://kau.toke.dk/cake/iproute2/ iproute2-cake
>>> cd iproute2-cake
>>> #edit out the sfq_codel entry in tc/Makefile (for now)
>>> make
>>> make install
>>>
>>> #Then:
>>>
>>> tc qdisc add dev whatever root cake # and whatever options
>>>
>>> Some example results while a rrul test was running:
>>>
>>> d at nuc-client:~/git/iproute2-cake$ ./tc/tc -s qdisc show dev eth0
>>> qdisc cake 8002: root refcnt 2 unlimited diffserv4 flows
>>>  Sent 13895939355 bytes 9605458 pkt (dropped 194, overlimits 0 requeues 0)
>>>  backlog 318798b 26p requeues 0
>>>            Class 0     Class 1     Class 2     Class 3
>>>   rate          0bit        0bit        0bit        0bit
>>>   target       5.0ms       5.0ms       5.0ms       5.0ms
>>> interval     105.0ms     105.0ms     105.0ms     105.0ms
>>> Pk delay       6.0ms       5.0ms         1us       2.3ms
>>> Av delay       1.5ms       1.4ms         0us       654us
>>> Sp delay       317us       201us         0us       141us
>>>   pkts        128068      316663          56      236467
>>> way inds           0           0           0           0
>>> way miss           3          40           3           7
>>> way cols           0           0           0           0
>>>   bytes     45317244 11531124242        5524  2320607748
>>>   drops          173          21           0           0
>>>   marks            0           0           0           0
>>>
>>> A problem I have is in reconciling the netperf-wrapper plots which hit
>>> a minimum of 2ms for sparse flows, where I typically see ~200us delay
>>> in the qdiscs themselves. I have generally not cared at all about
>>> about anything less than 3ms prior to now.
>>>
>>> qdisc cake 8003: root refcnt 2 bandwidth 920Mbit diffserv4 flows
>>>  Sent 2298586363 bytes 1826648 pkt (dropped 45, overlimits 474931 requeues 0)
>>>  backlog 468331b 25p requeues 0
>>>            Class 0     Class 1     Class 2     Class 3
>>>   rate       920Mbit  862500Kbit     690Mbit     230Mbit
>>>   target       5.0ms       5.0ms       5.0ms       5.0ms
>>> interval     105.0ms     105.0ms     105.0ms     105.0ms
>>> Pk delay       4.6ms       3.2ms         0us       5.2ms
>>> Av delay       1.5ms       1.2ms         0us       1.6ms
>>> Sp delay       303us       290us         0us       191us
>>>   pkts        110498      111953           0      181478
>>> way inds           0           0           0           0
>>> way miss           3          31           0           6
>>> way cols           0           0           0           0
>>>   bytes    347279080  1377499174           0   574954712
>>>   drops           14           0           0          31
>>>   marks            0           0           0           0
>>>
>>> Have I mentioned how much I hate offloads? see the backlog relative to
>>> the number of "packets".
>>>
>>> Still, I do think developing this out of tree will help a lot, after
>>> we get kernel versions straightened out more. Next up is trying to get
>>> it to build on openwrt, also out of tree.
>>>
>>> --
>>> Dave Täht
>>> Open Networking needs **Open Source Hardware**
>>>
>>> https://plus.google.com/u/0/+EricRaymond/posts/JqxCe2pFr67
>>> _______________________________________________
>>> Cake mailing list
>>> Cake at lists.bufferbloat.net
>>> https://lists.bufferbloat.net/listinfo/cake
>>
>>
>
>
>
> --
> Dave Täht
> Open Networking needs **Open Source Hardware**
>
> https://plus.google.com/u/0/+EricRaymond/posts/JqxCe2pFr67



-- 
Dave Täht
Open Networking needs **Open Source Hardware**

https://plus.google.com/u/0/+EricRaymond/posts/JqxCe2pFr67



More information about the Cake mailing list