[Cerowrt-devel] openwrt moves to Linux 3.18 for the ar71xx (wndr3800, ubnt, etc)

Dave Taht dave.taht at gmail.com
Mon Feb 16 02:58:06 EST 2015


see https://www.mail-archive.com/openwrt-devel@lists.openwrt.org/msg29493.html
for details.

This starts making doing a version bump of cerowrt a bit more
worthwhile, and will make doing make-wifi-fast a bit less painful
backport from mainline.

However as with any major (2 years!) kernel update there will
undoubtably be bugs, and in particular, I would suspect the
unaligned_hacks code to need more testing and hacks to handle some new
cases.  Those of you building openwrt might want to take a look at
this.

It looked like adding xmit_more support will be straightforward, also,
though I don't know if it will be of any benefit. Untested patch:

diff --git a/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71x
index 5ef324e..24607a4 100644
--- a/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.
+++ b/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.
@@ -786,8 +786,10 @@ static netdev_tx_t ag71xx_hard_start_xmit(struct sk_buff *s

        DBG("%s: packet injected into TX queue\n", ag->dev->name);

-       /* enable TX engine */
-       ag71xx_wr(ag, AG71XX_REG_TX_CTRL, TX_CTRL_TXE);
+       /* enable TX engine if no more data pending */
+       if(!skb->xmit_more ||
+          netif_xmit_stopped(netdev_get_tx_queue(ag, 0)))
+               ag71xx_wr(ag, AG71XX_REG_TX_CTRL, TX_CTRL_TXE);

        return NETDEV_TX_OK;

If it isn't obvious, I'm not planning on doing any builds for a couple
days or more, myself, but a big thanks to john crispin for the version
bump!

Moving further forward...

About the most promising thing in the current (3.20/4.0) kernel that
could maybe use a backport to 3.18 is the vastly sped up fib_trie

code: http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=e495f78d787b56ad249946b191406f4521b58150

Very good talk about how difficult it is to do routing lookups and
other stuff at 10GigE here, which the above work documents (and
applies to our teeny little
home router world to some extent)

https://plus.google.com/u/0/103747673045238156202/posts/cxbCbqaNHkN

There were also a metric ton of good tcp changes (stretch ack
handling, improvements to sch_fq) in the current linux head, but those
are not really relevant to routing.

-- 
Dave Täht

http://www.bufferbloat.net/projects/bloat/wiki/Upcoming_Talks



More information about the Cerowrt-devel mailing list