From: Dave Taht <dave.taht@gmail.com>
To: cake@lists.bufferbloat.net
Subject: [Cake] a little bit of cake testing
Date: Thu, 4 Jun 2015 10:11:24 -0700 [thread overview]
Message-ID: <CAA93jw5Zi5Yj2tPNBy5nAE4ysrLQGCW=+tBYzdSHwAj_f3W+CA@mail.gmail.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 1049 bytes --]
My network here is in flux (new modem, signal strength problems, cable
problems) and toke's testbed is presently doing wifi work, so I did a
quick mod to fishcake to make it do linux 4.0 (note I am not sure if
this was a 4.1 or a 4.0 change) - attached. (and we lose a few cake
options due to me not grokking the new API)
Cake did well on this, but the behavior at the tail end of the test
was disturbing:
http://www.dslreports.com/speedtest/611312
Need to do some work to emulate the dslreports tests.
And it dropped LOT more packets than fq_codel did. fq_codel marked 33
packets for it's result, cake marked 600 and dropped 200, for its.
I did some rrul testing as well, but was fighting with a modem that
used to get 140Mbits, and now only gets 70mbits, and behaves very
differently overall with pfifo_fast than i had ever seen before. And
along the way snapon got upgraded a bit too... sigh...
--
Dave Täht
What will it take to vastly improve wifi for everyone?
https://plus.google.com/u/0/explore/makewififast
[-- Attachment #2: 0001-Make-compile-on-linux-4.0-and-later.patch --]
[-- Type: text/x-patch, Size: 2099 bytes --]
From ac49485b29519fb1a4a88bc07e715ea232058397 Mon Sep 17 00:00:00 2001
From: Dave Taht <dave.taht@bufferbloat.net>
Date: Thu, 4 Jun 2015 10:04:46 -0700
Subject: [PATCH] Make compile on linux 4.0 and later
---
sch_cake.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/sch_cake.c b/sch_cake.c
index 242333c..538d090 100644
--- a/sch_cake.c
+++ b/sch_cake.c
@@ -49,10 +49,12 @@
#include <linux/vmalloc.h>
#include <linux/reciprocal_div.h>
#include <net/netlink.h>
+#include <linux/version.h>
#include "pkt_sched.h"
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,0,0)
#include <net/flow_keys.h>
+#endif
#include "codel5.h"
-
/* The CAKE Principle:
* (or, how to have your cake and eat it too)
*
@@ -205,12 +207,15 @@ enum {
static inline unsigned int
cake_fqcd_hash(struct cake_fqcd_sched_data *q, const struct sk_buff *skb, int flow_mode)
{
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,0,0)
struct flow_keys keys;
+#endif
u32 hash, reduced_hash;
if(unlikely(flow_mode == CAKE_FLOW_NONE || q->flows_cnt < CAKE_SET_WAYS))
return 0;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,0,0)
skb_flow_dissect(skb, &keys);
if(flow_mode != CAKE_FLOW_ALL) {
@@ -227,6 +232,9 @@ cake_fqcd_hash(struct cake_fqcd_sched_data *q, const struct sk_buff *skb, int fl
hash = jhash_3words((__force u32)keys.dst,
(__force u32)keys.src ^ keys.ip_proto,
(__force u32)keys.ports, q->perturbation);
+#else
+ hash = skb_get_hash_perturb(skb, q->perturbation);
+#endif
reduced_hash = reciprocal_scale(hash, q->flows_cnt);
@@ -416,7 +424,7 @@ static int cake_enqueue(struct sk_buff *skb, struct Qdisc *sch)
* Split GSO aggregates if they're likely to impair flow isolation
* or if we need to know individual packet sizes for framing overhead.
*/
- if(unlikely((len * max(fqcd->flow_count, 1)) > q->peel_threshold && skb_is_gso(skb)))
+ if(((len * max((fqcd->flow_count), 1)) > q->peel_threshold && skb_is_gso(skb)))
{
struct sk_buff *segs, *nskb;
netdev_features_t features = netif_skb_features(skb);
--
2.1.0
next reply other threads:[~2015-06-04 17:11 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-04 17:11 Dave Taht [this message]
2015-06-04 18:10 ` Dave Taht
2015-06-04 18:11 ` Dave Taht
2015-06-04 20:31 ` 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='CAA93jw5Zi5Yj2tPNBy5nAE4ysrLQGCW=+tBYzdSHwAj_f3W+CA@mail.gmail.com' \
--to=dave.taht@gmail.com \
--cc=cake@lists.bufferbloat.net \
/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