How can we make the lantiq xrx200 devices faster

I'm not sure going into much detail would yield any more benefits. The switch is working at a decent speed and I'm sure from such a lower end device asking for more would be a overkill. But anyways thanks for your help.

1 Like

As an interested member of public, but not a developer, can I ask a (possibly silly) question: do you intend to merge your commits into the mainline OpenWrt code, and when is it likely to happen?

1 Like

Yes I would like to, I'm just bad at making clean patches :-D.

Problem with these upgrades are they are written only from observation of the hardware behaviour and some common sense how the hardware usually works. Without documentation there may be unexpected bugs. For example I don't know why there is not full 100M in @ahmar16 case, the first implementation of IRQ SMP is fundamentally buggy (the 3.10 kernel from @paldier's repo). I have already contacted developers of openwrt, but usually you must be really sure what does the patch do (and there must be some measurable improvement) before it can be commited into main tree.

BTW You guys can join openwrt mailing list too and post your reviews (benchmarks before and after patching). Testing reports always helps.

1 Like

Another question xD:

Are there also other non-SMP-related fix in your driver? I'm asking this because my router is more stable on LEDE which does not have SMP, so I was thinking if you could add those fixes, if any, also to LEDE drivers.

I tested further and to me it seems iperf is buggy at least for OpenWrt because iperf in Linux 18.10 seems to be working. In OpenWrt iperf doesnt want to handle udp packets and if you try to connect from Linux to iperf it shows speeds in a few kbits. While the server in OpenWrt shows no activity at all. Same applies for iperf3 and iperf. Although Tcp seems fine and shows data transfer between the routers around 120mbps~15mb/s UL/DL. Router to client is 2x faster because I use 100mbps LAN I was only able to transfer data @ 40-50mbps~5-6mb/s before and now I can achieve full 100mbps~11-12mb/s. It meanse basically 2 times faster connection than before when patches were not applied.

I am not sure if this is feasible in terms of backporting. I mean it is possible but with newer kernels there are new features/fixes which can improve overall stability of a device. After all these patches have been coded for kernel 4.14 at least and will be working for at least a year or so until some fundamental changes break them maybe (not sure about this). Anyway what xrx200 device are you using and what is your use case? Any heavy packages installed, like samba, AdBlock etc? Why do you think your device is not stable in 18.06?

My setup is HH5A as ADSL gateway running VPR, OpenVPN, SQM and AdBlock then TD-W8980 connected through LAN within same subnet and it has a 500gb drive connected to it with Samab4 and transmission running on it. While the HH5A's wifi is disabled and on W8980 provides 2.4G wifi. I am happy to say that it meets all my needs for now because I am on a 4mb ADSL connection and with these patches I can go up as far as maybe 25mb in future without any issues. Anyway I am getting decent wifi speeds as before and they are around 80-100 mbps on a 150mbps connection which is roughly around 10mb/s while before these patches it was just 2mb/s. So a massive increase there.

1 Like

The ethernet driver should have some gain even in non SMP mode. If the kernel is similar enough (4.14.xx).

BTW iperf 2 seems to be completelly replaced by rewritten iperf3. The UDP could be a problem. I will post here when I will send the final patch on mailing list. If you are receiving mailing list it should be easy to just reply with benchmark.

Actually I've found lots of bugs in openwrt kernel for xrx200 when I was playing with tickless system and some spinlock debugging settings (it was crashing and there was many warnings about bad code like sleeping in atomic sections ...). But it will be a similar problem in LEDE too.

@Vento : is there wave300 wifi on your board? :smiley:

AFAIK No, I have a buggy TD-W8970 v1 it's not my main device since it crashes sometimes but I still use it to learn linux/opwenwrt stuffs. Your eth drivers helped with the stability problems :smile:

Well I am not receiving mailing list as of now but I can subscribe if need to. How should I subscribe to it, do you have a link? I'll gladly post the related benchmarks but I will not have any old benchmarks though and devs will need to rely on my word for that. I can also post generic results from samba4 and loadavg for the router. That should be enough for now.

Probably by this form. Or you can send me your email (in PM or my mail from wave300 git) and I will CC you.

@Plonk34

Could you share your newest image and knowledge about the situation with Easybox 904 atm? It looks like that there is unfortunately still no official support and community for this really nice device (in my eyes). Unfortunately the hint for BT Hub 5a wasn't as good as I expected since it's still a pain in the ass to update this device easiely. It seems to be very complex and also there is still the problem about the througput that is below 80 MBit/s from WAN <-> LAN and also LAN <-> Wifi seems to be a bit slow. - Does Software offloading NAT also increase the LAN <-> Wifi Speed in general or is that just something for WAN <-> LAN?

@ahmar16 and others:

Would you please also share informations about how to use HH5A or EB904 with high performance on every interface?

I dont have a high-end internet to test the WAN to LAN but I am actually happy with the LAN to clients including LAN to WIFI. I think I have provided much information about this above. If you need something else you can ask.

@suppenkasper0815
now see the Easybox 904 thread
I 100% agree with you but QAuge are the developer
see:

and this:

May I simply flash your image of the thread from my openwrt version via TFTP boot method with your provided version?

I think it could be a faulty flash that's causing crashes. There's a thread here with the same crashing issues and the OP there solved it with a ExtRoot but you’ll need to copy both /rom and /overlay to ExtRoot and it shouldn't cause crashes afterwards. There are two commands to setup the ExtRoot this way instead of one as in documentation.

# mount the usb drive
mount /dev/sda1 /mnt
mkdir /mnt/upper

tar -C /rom -cvf - . | tar -C /mnt/upper -xf -
tar -C /overlay -cvf - . | tar -C /mnt -xf -
# do the above two commands after setting up the /etc/config/fstab with your USB as /overlay and then reboot the router

" Try to replace the 0904-backport-vanilla-eth-driver.patch with new version https://pastebin.com/raw/WYrJGw0e ... lots of unused code there"

I wonder if there are a definitive set of patches available at this time, for both IRQ balancing and the ethernet driver?

TIA.

Edit: I updated the entire post.

0904-backport-vanilla-eth-driver.patch
0905-increase-dma-descriptors.patch
0906-increase-dma-burst-size.patch

Then you need 3 more patches that relate to CPU stability / irq balancing.

Find these patches: Xrx200 IRQ balancing between VPEs

2 Likes

@ahmar16, I greatly appreciate your prompt assistance. Thank you.

It will be done, I would say after I will manage to reverse engineer command rings of one other driver on my modem :smiley: .

Great work. Just to report that the patches apply just fine to the current version of trunk :slight_smile:

I would like to point out a simple thing. If anyone uses the patches then please use iperf/iperf3 to test Wireless /Wired performance of your roiter and post the before and after results here. It will be really helpful to streamline the integration in OpenWrt.

Edit: @pc2005 Any progress on mainline integration?