Raspberry Pi 4 | Possible to overclock with OpenWrt?

I am running SQM QoS on a symmetrical 1 Gbps WAN link.

The CPU frequency is boosting to 1.5 GHz during speed tests.

The load is hitting 99.8% on a single core - that is with irqbalance and packet steering enabled.

Would it benefit from a mild overclock to, for example, 1.8 GHz?

I am using this case, which acts as a passive heat sink and the case is barely getting warm during my testing.

Is it possible overclock a Raspberry Pi 4 when running OpenWrt?

Yes, you can follow the instruction here, but essentially you'd just edit /boot/config.txt with -

arm_freq=2147
gpu_freq=750
over_voltage=6

Mines been stable at that speed and hasn't gotten above 40c, you can add force_turbo=1 if you want to keep the speed at 2147, but it's not necessary and it will void the pi's warranty.

OpenWRT won't care, but the Pi 4 might...

Not only is it possible but its downright easy!, fool proof, and if you go too high or don't give her enough of the voltage and she won't boot you can simply pop out the sd card edit the config.txt on a computer then put it back in and you are good to go!

I found a sweet spot for my Pi4B and I am at 2ghz cpu, voltage set to 3 and gpu at 750. I am using a cheap-o $5usd clear case I drilled about 25 holes in all 4 of the sides and the top of the case with a 10mm drill mounted in my drill press because I do not want to use a fan but desire great cooling at dirt cheap cost. Besides that, little fans can be very noisy they have to spin at high speed to make up for small size. Any ways I have a heat sink off of a dead router shoehorned in to the case and I epoxied it into place with special thermal epoxy! I stumbled onto the fact that the double sided thermal tape is nowhere near as good as a quality thermal paste or epoxy. My idle temps are right around 50C, full load (using stress-ng on all 4 cores) brings her up to about 65C and I am happy with that. I also have epoxied a heat sink on the ram chip, the USB controller chip and the ethernet chip. (I had extra heat sinks so I figure why not). The only part I have left to do is figure out a way to put a heat sink on the voltage regulators. I have read many sources that state they are a weak link in overclocking the Pi4B and I must say they do get very hot to the finger.

At first glance you would think the gpu freq would not matter in OpenWRT because we do not use graphics but the gpu speed is tied to other parts of the device like the cache I think it was? My memory is a bit foggy on that but it's something like the cache. I tried to duckduckgo search that but strangely I am coming up empty. So in other words, overclocking the gpu increases the performance of the cpu!

I've read that boosting GPU can have a negative impact on some performance here

I haven't delved too deeply into it ... there's gains and losses to be had with overclocked GPU ... now, how does that impact OpenWRT is the question :stuck_out_tongue:

I did read that guide before posting my question, but I wasn't sure if it applied to OpenWrt or just Raspbian.

Do I need to update the firmware? Do I need to create a new SD card to complete that step?

Edit

I tried applying an overclock of 1750 MHz which is, apparently, the limit on the original firmware. I didn't increase the voltage or GPU speed.

https://forums.raspberrypi.com/viewtopic.php?t=243994

My settings

image

Speed test with SQM

The CPU is maxing out at 1,797 MHz.

Is there a way to pull the CPU temperature readings from OpenWrt? I'm using this as my 24/7 home router, so stability is the key objective.

Have you not tried irqbalance? That should significantly improve performance, right?

I have irqbalance and packet steering enabled.

The CPU load still seems to be heavily loaded onto a single core - sometimes 'flat lining' at 100% usage.

I thought a bit of extra oomph, might help with the SQM load.

1 Like

What USB Ethernet device are you using? This makes a big difference in my tests

1 Like

USB device = UE300

I've bumped it up to

arm_freq=2000
over_voltage=3

CPU is running at 2000MHz under load.

CPU utilisation is flat lining at 100% on a single core.

Do irqbalance and packet steering attempt to load balance across all cores or do they only kick in when a CPU core runs out of resources - i.e. 100% utilised?

Did you actually run irqbalance or maybe it's installed but not enabled?

Also RPS evidently isn't enabled either, it should be moving your interrupts to other cores.

What does CPU usage look like without SQM?

1 Like

I restarted irqbalance and ran another speedtest.

I thought it was supposed to start at system boot?

Packet steering is enabled.

image

How about with SQM off?

SQM off.

With SQM off it should be spreading packet handling among multiple CPUs through RPS. Which speed test are you using? Perhaps you are connecting to just one IP? RPS keeps packets on the same stream together on the same CPU

Yeah that may be just one server. Try a dslreports test I know they use multiple servers. Let's see if at least RPS is doing anything

This appears to suggest that RPS isn't working for whatever reason. Those packets should be distributed among all 4 cores.