From: Kevin Darbyshire-Bryant <kevin@darbyshire-bryant.me.uk>
To: Jonathan Morton <chromatix99@gmail.com>
Cc: Andy Furniss <adf.lists@gmail.com>,
"Cake@lists.bufferbloat.net" <Cake@lists.bufferbloat.net>
Subject: Re: [Cake] overheads or rate calculation changed?
Date: Fri, 22 Dec 2017 07:58:09 +0000 [thread overview]
Message-ID: <32730842-8E7E-4D9E-BF63-AF320906BB7E@darbyshire-bryant.me.uk> (raw)
In-Reply-To: <F95E27A6-80BC-474A-904C-9374628F4ACE@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 4200 bytes --]
> On 22 Dec 2017, at 06:38, Jonathan Morton <chromatix99@gmail.com> wrote:
>
>> On 21 Dec, 2017, at 2:54 am, Andy Furniss <adf.lists@gmail.com> wrote:
>>
>> refactor cake_advance_shaper and ack_filter
>>
>> cake_advance_shaper now returns a modified len argument to
>> reflect cake_overhead.
>> skb_ack_filter variable replaced with ack
>
> Fixed. At one point cake_advance_shaper() was still getting a packet length with overhead correction already applied, and was then applying it a second time.
I’m confused. A diff between where cobalt was yesterday and now this morning:
diff --git a/sch_cake.c b/sch_cake.c
index 021b215..49ecf5e 100644
--- a/sch_cake.c
+++ b/sch_cake.c
@@ -151,6 +151,7 @@ struct cake_host {
u32 dsthost_tag;
u16 srchost_refcnt;
u16 dsthost_refcnt;
+ u32 pad;
};
struct cake_heap_entry {
@@ -1882,10 +1883,6 @@ retry:
b->tin_ecn_mark += !!flow->cvars.ecn_marked;
qdisc_bstats_update(sch, skb);
- len = cake_overhead(q, qdisc_pkt_len(skb));
- flow->deficit -= len;
- b->tin_deficit -= len;
-
/* collect delay stats */
delay = now - cobalt_get_enqueue_time(skb);
b->avge_delay = cake_ewma(b->avge_delay, delay, 8);
@@ -1894,7 +1891,10 @@ retry:
b->base_delay = cake_ewma(b->base_delay, delay,
delay < b->base_delay ? 2 : 8);
- cake_advance_shaper(q, b, len, now, false);
+ len = cake_advance_shaper(q, b, len, now, false);
+ flow->deficit -= len;
+ b->tin_deficit -= len;
+
if (q->time_next_packet > now && sch->q.qlen) {
u64 next = min(q->time_next_packet, q->failsafe_next_packet);
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 8, 0)
@@ -1959,7 +1959,7 @@ static void cake_set_rate(struct cake_tin_data *b, u64 rate, u32 mtu,
*/
static const u64 MIN_RATE = 64;
u64 rate_ns = 0;
- u8 rate_shft = 0;
+ u8 rate_shft = 2;
cobalt_time_t byte_target_ns;
u32 byte_target = mtu;
pad is back, and rate_shft = 2 in addition to the document overhead stuff moving.
Is this a bad merge? Which is correct?
If it helps, this is a list of the commits that are in post pull cobalt but not in pre pull cobalt.
commit dd4054684a9850d41f267f03ce758980cc4997c4
Author: Jonathan Morton <chromatix99@gmail.com>
Date: Fri Dec 22 08:36:07 2017 +0200
Fix overhead accounting after Dave's refactor.
commit 718114af963740564e7d014b5e0d56ccc7387713
Merge: 8052827 49776da
Author: Jonathan Morton <chromatix99@gmail.com>
Date: Fri Dec 22 08:33:36 2017 +0200
Merge branch 'cobalt' of https://github.com/dtaht/sch_cake into cobalt
commit 80528271b0eef37064b04d213071faf56f3f01bb
Author: Jonathan Morton <chromatix99@gmail.com>
Date: Fri Jul 21 15:18:56 2017 +0300
Improve ingress-mode failsafe behaviour under sustained prior load.
commit 06b301f3a0c7719bddfba4e7f71dc437ad53b88c
Author: Jonathan Morton <chromatix99@gmail.com>
Date: Fri Jul 21 15:07:34 2017 +0300
Add a failsafe to ingress mode, so it always delivers some packets even at high drop rates.
commit 2ed46bba1a97feb6ce728abbfbf6d18211317f33
Author: Jonathan Morton <chromatix99@gmail.com>
Date: Sat May 13 00:07:14 2017 +0300
Try to solve higher sparse latency in ingress mode when non-ECN bulk flows are present.
commit 79b9b76b5dc65e8f8d629bbe636443bf04a6b37f
Author: Jonathan Morton <chromatix99@gmail.com>
Date: Sat May 6 00:50:07 2017 +0300
Rate variables in diffserv_*() shouldn't be 64-bit; this causes difficulty with dividing them on 32-bit platforms.
commit 3ab36e8d8431eb941ceb0608b739fa02a325de88
Author: Jonathan Morton <chromatix99@gmail.com>
Date: Sat May 6 00:39:31 2017 +0300
Properly initialise the policy array.
commit 833c87c20f5de0165957326677334009d10aed37
Author: Jonathan Morton <chromatix99@gmail.com>
Date: Fri May 5 22:53:59 2017 +0300
Try to handle decaying flows and packet trains more efficiently.
commit 8978b2487b6adbc4f17612e5e123125971eed4fa
Author: Jonathan Morton <chromatix99@gmail.com>
Date: Fri May 5 18:02:45 2017 +0300
Proper fix for diffserv-llt mode.
Cheers,
Kevin D-B
012C ACB2 28C6 C53E 9775 9123 B3A2 389B 9DE2 334A
[-- Attachment #2: Message signed with OpenPGP --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2017-12-22 7:58 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-18 20:32 Andy Furniss
2017-12-21 0:54 ` Andy Furniss
2017-12-22 6:38 ` Jonathan Morton
2017-12-22 7:58 ` Kevin Darbyshire-Bryant [this message]
[not found] ` <CAJq5cE3e-CbJ8X_Bpu3AhwbVmq-yD89HGe7rSNMTYqj+KSaBUg@mail.gmail.com>
2017-12-22 10:00 ` Jonathan Morton
2017-12-22 12:58 ` Kevin Darbyshire-Bryant
2017-12-22 15:55 ` Dave Taht
2017-12-22 23:38 ` Andy Furniss
2017-12-23 9:41 ` Sebastian Moeller
2017-12-23 9:59 ` Andy Furniss
2017-12-23 12:55 ` Sebastian Moeller
2017-12-23 13:11 ` Ryan Mounce
2017-12-23 14:21 ` Sebastian Moeller
2017-12-23 21:03 ` Sebastian Moeller
2017-12-23 21:20 ` Jonathan Morton
2017-12-24 10:34 ` Kevin Darbyshire-Bryant
2017-12-24 10:39 ` Jonathan Morton
2017-12-24 10:46 ` Kevin Darbyshire-Bryant
2017-12-24 12:19 ` Sebastian Moeller
2017-12-24 12:14 ` Sebastian Moeller
2018-01-06 20:44 ` Jonathan Morton
2018-01-06 22:46 ` Sebastian Moeller
2018-01-07 0:33 ` Jonathan Morton
2018-01-07 8:19 ` Sebastian Moeller
2018-01-07 15:21 ` Jonathan Morton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://lists.bufferbloat.net/postorius/lists/cake.lists.bufferbloat.net/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=32730842-8E7E-4D9E-BF63-AF320906BB7E@darbyshire-bryant.me.uk \
--to=kevin@darbyshire-bryant.me.uk \
--cc=Cake@lists.bufferbloat.net \
--cc=adf.lists@gmail.com \
--cc=chromatix99@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox