I have flashed the master trunk and applied the two patches above to the target/linux/lantiq/patches-5.4 directory and ensured in make menuconfig I selected Use the testing kernel version under Global build settings.

I can confirm with Packet Steering enabled under Network > Interfaces > Global network options I can achieve 132mbps on a 80MHz, 5GHz WiFi channel so there is definitely an improvement! :+1:

Can I ask whether you plan to include these patches to snapshots and ultimately to the upcoming stable version?

2 Likes

You dont need to enable Packet Steering to get the above speeds because those patches work without it. But anyway what speed do you get without Packet Steering?

I get 108Mbps at a peak. However, putting the packet steering on bumped the speeds up again. Is there a way I can do some debugging to check whether the patch has worked or not?

Well if you can change irq then the patch was applied successfully and is working.

This is the output from the cat /proc/interrupts commands

root@OpenWrt:~# cat /proc/interrupts
           CPU0       CPU1
  7:     478233     478875      MIPS   7  timer
  8:       7087       8006      MIPS   0  IPI call
  9:      27235      40157      MIPS   1  IPI resched
 30:          0          0       icu  30  ath9k
 62:          0          0       icu  62  1e101000.usb, dwc2_hsotg:usb1
 63:      20342          0       icu  63  mei_cpe
 72:      49593          0       icu  72  xrx200-net rx0
 73:      37006          0       icu  73  xrx200-net tx0
 75:      38250          0       icu  75  xrx200-net tx1
112:        379          0       icu 112  asc_tx
113:          0          0       icu 113  asc_rx
114:          0          0       icu 114  asc_err
126:          0          0       icu 126  gptu
127:          0          0       icu 127  gptu
128:          0          0       icu 128  gptu
129:          0          0       icu 129  gptu
130:          0          0       icu 130  gptu
131:          0          0       icu 131  gptu
144:     144286          0       icu 144  ath10k_pci
161:          6          0       icu 161  ifx_pcie_rc0
ERR:          1                                

ath9k under both CPU's is showing as 0

are You using 2.4Ghz radio ? seems not.
but You may push 5Ghz to 2nd core using command

echo 2 > /proc/irq/144/smp_affinity

1 Like

I'll have to hold off on testing it now as my router has bricked itself and my serial to USB converter has decided to die on me.

In the meantime I'm going to compile my own firmware for the BT HH5 but before I do, I would like to stay on the 19.07.2 builds rather than the master trunk. Which patches do I need to apply for 19.07.2, the ones from this post

https://forum.openwrt.org/t/how-can-we-make-the-lantiq-xrx200-devices-faster/9724/54

or this post

https://forum.openwrt.org/t/how-can-we-make-the-lantiq-xrx200-devices-faster/9724/121

I think stick to the testing branch as it enable SMP and IRQ management and "packet_steering" by default and only latest pc2005 patches are needed . It's totally rock solid for me @w8970 and my build is from march 28th. Be brave :slight_smile:

The testing kernel seems to be quite a bit bigger, I'm not able to build the sysupgrade image with all the packages I was able to include previously. Does anyone have a similar experience there?

You can always ext-root .. But Yes it is getting bigger and bigger

I am running the testing kernel with the patches applied now. All seems OK so far. Will report back if I see any weirdness. Thanks for all of your efforts, everyone!

A little trick.. Router Easybox 904 xDSL.

opkg update
opkg install bc coreutils-nproc

In /etc/rc.local:

echo "obase=16;2^$(nproc)-1" | bc > /sys/class/net/eth0/queues/rx-0/rps_cpus
echo "obase=16;2^$(nproc)-1" | bc > /sys/class/net/eth0.1/queues/rx-0/rps_cpus
echo "obase=16;2^$(nproc)-1" | bc > /sys/class/net/dsl0/queues/rx-0/rps_cpus
echo "obase=16;2^$(nproc)-1" | bc > /sys/class/net/br-wan/queues/rx-0/rps_cpus

Restart and result:
256448741
Edit:
Kernel 5.4.60 SMP.

3 Likes

What were the rates before applying your trick? Is there much improvement?

I think post #70 is what you are looking for. But it may have issues if kernel has been updated in the meanwhile. I can confirm that patches are working for v5.4 because I tried them yesterday.

~90-100 Mbps.

Patches don't work with kernel 5.4.60.

it would be great if someone could update the dsl components for these devices

it seems like Intel kept releasing updates but everything got kept at a certain level

I had a quick go myself just taking the 3headeddevs vrx518 branch and changing the Makefiles to only use the updated drivers but the repos must have changed

One thing that I don't understand is that in the code there's mention of an "RA_MODE 4" and that this is "save our showtime + seamless rate adaption" but the dsl pipe app won't accept a value of 4, only up to 3. If anyone knows more about updating this stuff it would be awesome to actually get it done.

That means they have updated the drivers/APIs. I am not sure if we can use it with xrx200 devices though. But someone with enough experience and know-how will need to look at it first.

I am using v5.4.59 so patches are working

As far as I am aware, and someone please correct me if I'm wrong, there is not much anyone outside of manufacturers can do to "update" the firmware.

OpenWrt is already using what was once released as open source, resulting in the modem firmware blob that comes with OpenWrt by default. But it's a relatively old and less capable version (e.g. no vectoring support).

Anything more modern or capable than what we get by default was, as far as I am aware, never open-sourced (or maybe can't even be open-sourced, licenses and all.) You can of course extract and use modem firmware blobs from manufacturer's firmware images, but those don't seem to get much update love anymore either.