Qualcomm Fast Path For LEDE

SQM doesn't work properly at this time with Fast Path?
It's a shame. I really need it.

I tried this patch on 2 devices. On my MT7621 I am seeing LAN-WAN speeds around 930Mbps as expected with the sirq maximum at 47%. But if I do a reverse iPerf (only difference adding -R) my WAN - LAN speed is only 250. Without fast path LAN - WAN around 350 so definitely a good improvement to use the patch and WAN-LAN the same around 250. My ISP only gives me 200/20 so no problem, but seems strange to me.

On an MT7628 with only 100M ports, speeds are more or less the same with or without, but SIRQ is about 15% lower with fastpath. Does it still make sense to use it (to reduce system resources used)?

With which patch? gwlim's or dissent1's?

Ah..sorry good point: I used the patches from @dissent1. No offence to @gwlim, but it seemed to me that those are more generic and since I'm using them on a different SOC that made more sense to me.

@drbrains Did the patch apply cleanly to your mt7621 build or did it require a lot of extra work?

Your results are weird indeed. When I benchmarked my dir-860l it did 930 Mbit/sec in both directions. That was months ago I last tried that though (without fastpath).

Patched clean. Only thing it's complaining (warning) about cross dependence. Might be something I did. Builds just fine. Need to do extra testing for the WAN - LAN issue. Might be something with iPerf?? Doing reserve between a Windows and a Mac version. The only 2 devices I have with gigabit Ethernet. Laptops no longer have any wired connection.

@drbrains for which mt7621 device did you build it? If it is the dir-860l I can help testing.

No, sorry. ZBT WE1326. Came originally with some "home brew" openwrt 15.05 and a Pandorabox Uboot variant.

piece_of_cake.qos will ignore the qdisc option, override it with cake. Though I should remove the qdisc option for clarity.

How do I apply it and build LEDE with it?

Sorry for the delay. I can confirm that it works perfectly with the latest patches without having to download the netlink module. I am currently using it in both x86 and x86_64 without any inconvenience. Great job.

I have a doubt. If I wanted all the connections to be downloaded I would have to use:

"echo 0 > /sys/fast_classifier/offload_at_pkts or "echo 1 > /sys/fast_classifier/offload_at_pkts?

I was reading in this thread that implementing Fast Path is more for higher throughput on internet connections with more bandwidth. I am using a WNDR4300v1 and saw some succesfully implented Fast Path, my internet connection is 40/4 Mbit will I notice any difference or is it more for 100+ Mbit?

Thanks in advance.

I've made a clean commit to form a pull request. Could you guys test it, I haven't found any problem myself.
You can choose either fast-classifier (recommended) or sfe-cm. Both shouldn't be loaded at once. If both are loaded then sfe-cm takes the lead and fast-classifier (more advanced) doesn't do anythithing.

edit: forgot to mention that there are no functional changes, just a cleanup.
@davidzodelin
echo 1 > /sys/fast_classifier/offload_at_pkts
But why do you want to lower it? It's at 128 on purpose :slight_smile:

I haven't came across this anywhere so I'm just gonna ask.
Let's say we build an image with both fast-classifier and sfe-cm. Is there a way to enable one and disable the other or disable Fast Path entirely?

Can mips24k-ar71xx-lede-patch,mips74k-ar71xx-lede-patch and mpc85xx-lede-patch run in 1 lede tree ?

and for saving space, Can I remove ddns,openvpn and sqm ?

thank you @gwlim

1 Like

use kmod-ath10k-ct

You are correct sir, my Dlink 860L can do 930Mbits on WAN-LAN as you described, both directions with current LEDE trunk. So there must be some problem with @drbrains measurment, if he only gets 250-350Mbits. Remember to test with parallel TCP streams (at least 4), as a single TCP stream can only use a single core, so to see the full potential, you need to use at least 4 TCP sessions for iperf test (MT7621 has 2 cores and 4 threads via VPE).

I also have this question,I just patched one 74kc's patch,Can I make the 24kc's patch in same branch?Or bigin with a clean branch?
thank you!

I did my testing again, the other way around: my mini-mac as "wan" and the dell-i7 windows as "lan". For some reason its more stable like that. However. If I do a lot of iperf3 test in a row, the speed is always the same (or similar). Sometimes there is 100-150mbps difference in the tests (when all else is the same).

I tried playing a bit with multiple streams since it has a multi-core. Using a lot of streams will not really improve anything (sofar).

However...even if my measurements are a little bit off. I am still a big fan of this project, since it does improve at least 2x or 2.5x my throughput :smile:

No because patches to improve 1 architecture can cause performance regression in another architecture so I keep them separate and test them separately.
Yes you can remove anything you don't want.
Just edit the default package patch before running the patch script
You need to select yourself ath10k driver and the firmware it is not selected by default