Raspberry Pi 4 | System is freezing up

You can also try packet steering (if you haven’t already), I’m not sure of the differences between it and irqbalance, but it serves the same purpose (network>interfaces>global network options).

System

Hostname OpenWrt
Model Raspberry Pi 4 Model B Rev 1.4
Architecture ARMv8 Processor rev 3
Firmware Version OpenWrt 21.02.0-rc2 r16122-c2139eef27 / LuCI openwrt-21.02 branch git-21.148.49484-14511e5
Kernel Version 5.4.119
Local Time 2021-10-25 10:15:35
Uptime 10h 19m 33s
Load Average 0.40, 0.45, 0.43

Are there any commands that I can run via the CLI that will help to diagnose/isolate this issue.

The router has been stable since I removed irqbalance, but I'm not sure if that is just a coincidence.

The problem first occurred when I enabled both 'packet steering' and irqbalance. Should both things be run at the same time?

try disabling one, then the other

Which is 'better'?

The one that works without issue :smiley:

I've read both are rather ineffective anyway

Without either Packet Steering or irqbalance enabled, the download speed maxes out at around 520Mbps with SQM enabled, so they are definitely effective.


I think I have resolved the issue.

The syslog contained a lot of errors relating to the 'wan' connection, which is my previous PPPoE broadband. I had unplugged the cable, but left the configuration alone. Adblock was also running very slowly and may have been experiencing conflicts.

I've now completely deleted the PPPoE interface and luci is very responsive and appears to be stable with both irqbalance and packet steering enabled.

SQM Enabled

SQM Disabled

Good for you! For any future readers looking for Pi help, I run packet steering and irqbalance and have not had a problem with them on my Pi4B, however as always YMMV.

I personally found packet steering to slightly hinder performance on the Pi 4. irqbalance is good (and necessary!) but can be achieved through manual pinning of interrupts as well without risking them shifting around later.

Do you have a link to a guide that explains how to do this?

Thanks.

  1. Disable or uninstall irqbalance :slight_smile:
  2. Add the following to /etc/rc.local (which just does what irqbalance does, except as a one-shot versus having them potentially shift later):
echo 2 > /proc/irq/31/smp_affinity
echo 8 > /proc/irq/32/smp_affinity
  1. Execute the above lines manually or reboot

Thanks.

I've added that to my startup options and it seems to be working.

image

the way you added it to local startup means it is doing nothing, since you added the commands AFTER the exit 0

Believe it or not, I did wonder about that!

Can you explain the command in a bit more detail.

This post uses echo 2 for both commands.

What is the significance of the echo 2 vs echo 8 and irq/31 vs irq/32?

Thanks,

I'd be interested in how those irq's are relevant to "Raspberry Pi 4" .. .since 31 doesn't exist on the pi4 and 32 is the "VCHIQ doorbell"

Can you suggest some more appropriate commands for the Raspberry Pi 4?

No ... the commands are fine - the irq's are invalid or not relevant - but that's OK, since you aren't actually running them - but somehow, adding two lines of incorrect code that doesn't even run ... "seems to be working"

If it's working, then don't fix it

What are the valid irqs for a Raspberry Pi? Don't be a tease...

cat /proc/interrupts

31 and 32 appear to be the correct values.

Now, what is the significance of echo 2 vs echo 8?...

Just to give some context on what's possible, I can easily get 800+ Mbps through my squid proxy on my RPi4 while running my custom HFSC shaper. Just regular routing and SQM should be no problem once you spread the load over the CPUs.