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 http://blog.cerowrt.org/post/bbrs_basic_beauty/ 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 LDFLAGS_MODULE="--build-id=0x2371a6a9eec25520382a69b81f6b3ef26161bead" CFLAGS_MODULE="-DCAKE_VERSION=\\\"2371a6a9eec25520382a69b81f6b3ef26161bead\\\"" 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’ [-Werror=implicit-function-declaration] 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’ 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! http://blog.cerowrt.org _______________________________________________ Cake mailing list [email protected] https://lists.bufferbloat.net/listinfo/cake
