[Cake] cake breaks against net-next

Dave Taht dave.taht at gmail.com
Mon Sep 19 16:32:53 EDT 2016

there has been an awful lot of work around reworking the qdiscs in the
latest linux to eliminate cache hit problems, and locks. This breaks
cake, and I'm too deep in wifi to look at it for a while. Jon?

 It was my hope that cake would defeat the ping spike I saw in


If anyone wants a working bbr patchset that goes on top of net-next,
you can find the v2+1 patch here: http://www.taht.net/~d/bbr.tgz .

make -C /lib/modules/4.8.0-rc6-toke-6/build
SUBDIRS=/home/dave/git/sch_cake modules
make[1]: Entering directory '/usr/src/linux-headers-4.8.0-rc6-toke-6'
  CC [M]  /home/dave/git/sch_cake/sch_cake.o
/home/dave/git/sch_cake/sch_cake.c: In function ‘cake_hash’:
/home/dave/git/sch_cake/sch_cake.c:321:16: error: ‘struct
flow_dissector_key_tags’ has no member named ‘vlan_id’
  host_keys.tags.vlan_id    = 0;
/home/dave/git/sch_cake/sch_cake.c: In function ‘cake_enqueue’:
/home/dave/git/sch_cake/sch_cake.c:697:11: error: implicit declaration
of function ‘qdisc_reshape_fail’
    return qdisc_reshape_fail(skb, sch);
In file included from /home/dave/git/sch_cake/cobalt.c:50:0,
                 from /home/dave/git/sch_cake/sch_cake.c:59:
/home/dave/git/sch_cake/sch_cake.c: In function ‘cake_dequeue’:
/home/dave/git/sch_cake/cobalt.h:59:45: error: too many arguments to
function ‘qdisc_watchdog_schedule_ns’
 #define codel_watchdog_schedule_ns(a, b, c) qdisc_watchdog_schedule_ns(a, b, c)
/home/dave/git/sch_cake/sch_cake.c:862:3: note: in expansion of macro
   codel_watchdog_schedule_ns(&q->watchdog, q->time_next_packet,
In file included from /home/dave/git/sch_cake/cobalt.c:45:0,
                 from /home/dave/git/sch_cake/sch_cake.c:59:
./include/net/pkt_sched.h:70:6: note: declared here
 void qdisc_watchdog_schedule_ns(struct qdisc_watchdog *wd, u64 expires);
/home/dave/git/sch_cake/sch_cake.c:1002:3: error: too few arguments to
function ‘qdisc_drop’
   qdisc_drop(skb, sch);
In file included from ./include/net/pkt_sched.h:7:0,
                 from /home/dave/git/sch_cake/cobalt.c:45,
                 from /home/dave/git/sch_cake/sch_cake.c:59:
./include/net/sch_generic.h:746:19: note: declared here
 static inline int qdisc_drop(struct sk_buff *skb, struct Qdisc *sch,
/home/dave/git/sch_cake/sch_cake.c: At top level:
/home/dave/git/sch_cake/sch_cake.c:1813:13: error: initialization from
incompatible pointer type [-Werror=incompatible-pointer-types]
  .enqueue = cake_enqueue,
/home/dave/git/sch_cake/sch_cake.c:1813:13: note: (near initialization
for ‘cake_qdisc_ops.enqueue’)
/home/dave/git/sch_cake/sch_cake.c:1816:2: error: unknown field ‘drop’
specified in initializer
  .drop  = cake_drop,
/home/dave/git/sch_cake/sch_cake.c:1816:11: error: initialization from
incompatible pointer type [-Werror=incompatible-pointer-types]
  .drop  = cake_drop,
/home/dave/git/sch_cake/sch_cake.c:1816:11: note: (near initialization
for ‘cake_qdisc_ops.init’)

Dave Täht
Let's go make home routers and wifi faster! With better software!

More information about the Cake mailing list