We have had our Zen provided FTTP line updated to 900/100. This works well with the 7530 router using stock firmware with Ookla speed test results of 920/103 fairly normally.
I have installed Openwrt 22.03.3 as that is what I generally use for routers and although it works well it appears to max out at 522/105. That is with "Packet Steering", "Software flow offloading" and "Hardware flow offloading" enabled.
Although that is really fine, it would be nice to see the 900
I have VLAN's, 1 and 2 with 2 going to LAN1 and the PPPoe interface tied to that. It looks like the overall CPU usage is about 40% while the download is going on, but not sure how to see specific CPU core usages.
Are there any settings I can use that might tweak the speed up ?
I also note there is a PPPoe-WAN tunnel deice present. What is the purpose of that (I don't think I am using that) ?
I believe with the IPQ4019 some of the IP filtering can be handled in hardware, at least the NAT can (with "Hardware flow offloading" enabled ?). I also believe that PPPoe can have hardware assist, possibly using the same IP filtering hardware but I don't know if Openwrt is using this.
Log into the router via ssh, then if htop is not installed already do opkg update ; opkg install htop' and then run htop`, which will show per CPU load data (you might want to configure the display option (F2-> setup : Detailed CPU time (System/IO-Wait/Hard-IRQ/Soft-IRQ/Steal/Guest)) to show detailed CPU usage, especially softinterrupts (SIRQ) are relevant):
here is an example from my 2 core router and here from my fritzbox 7520 in Setup window showing the relevant option to check:
0[ 0.0%] Tasks: 34, 16 thr, 82 kthr; 1 running
1[||| 3.3%] Load average: 0.24 0.15 0.09
2[||||| 5.4%] Uptime: 14:09:13
Categories Display options
Display options For current screen tab: Main
Header layout [ ] Tree view
Meters [ ] - Tree view is always sorted by PID (htop 2 behavior)
Screens [ ] - Tree view is collapsed by default
Colors Global options:
[x] Show tabs for screens
[ ] Shadow other users' processes
[x] Hide kernel threads
[ ] Hide userland process threads
[ ] Hide processes running in containers
[x] Display threads in a different color
[ ] Show custom thread names
[x] Show program path
[ ] Highlight program "basename"
[ ] Highlight out-dated/removed programs (red) / libraries (yellow)
[ ] Shadow distribution path prefixes
[ ] Merge exe, comm and cmdline in Command
[x] - Try to find comm in cmdline (when Command is merged)
[x] - Try to strip exe from cmdline (when Command is merged)
[x] Highlight large numbers in memory counters
[x] Leave a margin around header
[x] Detailed CPU time (System/IO-Wait/Hard-IRQ/Soft-IRQ/Steal/Guest)
[ ] Count CPUs from 1 instead of 0
[ ] Update process names on every refresh
[ ] Add guest time in CPU meter percentage
[x] Also show CPU percentage numerically
[ ] Also show CPU frequency
[ ] Also show CPU temperature (requires libsensors)
[ ] - Show temperature in degree Fahrenheit instead of Celsius
[x] Enable the mouse
[1.5] Update interval (in seconds)
[ ] Highlight new and old processes
 - Highlight time (in seconds)
 Hide main function bar (0 - off, 1 - on ESC until next input, 2 - permanently)
F1 F2 F3 F4 F5 F6 F7 F8 F9 F10Done
Please also post the output of:
a) cat /proc/softirqs
b) cat /proc/interrupts
The problem is that the ARM a7 cores in the 7530/7520 @~700MHz are really a bit under powered for a gigabit link. I bet the AVM firmware works-around that by using more offloads than openwrt.
Personally I would get a more powerful router for a gigabit link...
Thanks for the reply.
I do understand that the 7530 is a bit underpowered for the task, but I also know that it can achieve 900/100 with reasonably optimised software using the available hardware modules and it reasonable low energy at 4.5 Watts, which is important to me. Also 500 Mbits/s is more than enough for my needs (greater upstream would be nice though!). But any recommendations for a low energy router capable of 900/100 (no special requirements just PPPoe/NAT and a touch of static routing) ?
Thanks for the htop info I have played with this and can see that one CPU core is maxing out with the others at < 10% during the download. On a newly booted router I see /proc/softirqs and /proc/interrupts as below.
An interesting thing is I see kstoftirqd/0 taking 133% cpu. Sometimes I see the load being shared by kstoftirqd/0, kstoftirqd/1 and kstoftirqd/2 for a short time then it all goes to kstoftirqd/0. When I see the load being shared by separate softirq's for a short time I see a larger download speed (500 - 600). Maybe there is a slight softirq load sharing issue ?
Any idea what is the main task holding up the system doing this download, I have presumed the PPPoe and NAT is offloaded to hardware, but is that the case ?
I was wondering if an qos work was going on that I could disable etc.
As I said, not big deal on this just wondered if a tweak on something might improve things to get the flashy numbers
Aslo is there any way I can edit the Openwrt 7520 / 7530 hardware page to add the fact that the LAN port numbers are reversed in Openwrt to the labels on the router in 22.03.03. Took me a bit of time tracking down.
There is no guarantee that any hardware offload engine is ever supported by OpenWrt, the SoC vendors typically fail to put effort into getting support into the upstream Linux kernel, and often treat their offloads as "secrets". Some offload engines are supported by OpenWrt, but not all. Also almost all of these offloads do not offer the generality of the Linux network stack but only work under special conditions (although these often apply to normal home links, after all that is the main market the SoC makers target with their designs).
Interesting, AVM claims average ~6 Watt with the maximum being 18 Watt, so if your measurement come out at 4.5 that might imply that the (not used by you) DSL part take ~1.5Watt.
Have a look at the openwrt wiki page for irqbalance, that might help in spreading the interrupts around a bit. But generally /proc/interrupts is more interesting after some uptime.
According to the OpenWrt page for 7530/7520 VLANs 1/2 might be special and it is recommended to avoid these for one's own VLANs. I have simply followed that advice on my 7520, so this might or might not be a real issue (I do not intend to ever test this, VLAN 42 is fine and obvious the correct answer according to Douglas Adams).
Yes, I understand about hardware offload engines etc. I work on embedded systems a fair amount and have seen quite a few of the issues, especially available documentation.
Note the 4.5 Watts was idle and also measured with a cheap plug in monitor that is probably not that accurate at low watts! But the power usage was about the same as my older TL-WDR3600 routers.
On the VLAN 1, 2, I think, from a bit of reading, this would only apply to ipq40xx SOC's that have "two" Ethernet interfaces. I believe they actually only have one real one split into two virtual ones and the VLAN tags 1, 2 are hardcoded/used to signify which of these "interfaces" the packets came from or are going to from the switch end. As the 7530 only has once such Ethernet interface I don't think it applies, but I will change them just in case.
I will look at the irqbalance. The points I note are:
The 7530 seems to manage 500 Mbits/s downstream using just one CPU core mainly.
I see ksoftirqd/0 using around 130% of CPU usage. As far as I know the ksoftirqd/ tasks should be locked to the 4 separate cores so I don't see how one can do 130%. Maybe the stats measurements are off or I've got that wrong.
The ksoftirqd/ tasks are sometimes seen sharing some of the load for about a second or two and when they do the overall bit rate is higher (seen 600 Mbits/s over about 15 secs when this happens).
There may be some good reasons why the other CPU cores are not sharing the load (actually waiting on hardware not really CPU processing?), and the stats may be misleading, but from the above it seems like the 7530 with Openwrt could share the load across cores better and might approach the 900 Mbits/s then. It is obviously offloading some work to hardware to do as well as it does.
Ah, OK we have a thread for such measurements, so if you have the details, maybe add them here:
As I said, I just saw it in the OpenWrt wiki and thought I mention it even though I did not confirm it,, your explanation makes some sense, thanks.
Some things n networking are inherently single threaded (at least in Linux) so if multiple things like PPPoE en/de-capsulation and ethernet interrupt processing pile up on a single CPU that might limit you, and that is where irqbalance might actually help (or manually assigning some important IRQs to different CPUs) but that is not guaranteed. It tends to be a safer bet to use a router where the main CPUs are beefy enough to handle the load (and even x86 routers can be power frugal if mainly idling around). But that clearly is your decision to make.
(I run my 7520 as bridged modem under OpenWrt and am quite happy with that, and am contemplating of also using its WiFi to get better coverage, but so far did not do that yet.)