[Question] Flint 3 (BE9300): Load average consistently ~2.0 on idle despite ~0% actual CPU usage, hardware acceleration enabled

New GL.iNet user here. Really loving the forum discussions (why I chose the router) and also my Flint 3 (GL-BE9300). While the Flint 3 doesn’t have true OpenWRT support due to the chipset, it’s a great router and I’m okay giving up OpenWRT just for a solid product within my price range.

Question regarding CPU Average Load… I’m coming from an ASUS BE router on the same WAN connection and roughly the same client load, but the steady ~2.0 load seems very high to me given my setup.

The observation

The System Overview dashboard shows CPU Average Load sitting steady around 2.0 to 2.1 (never lower) on a 4-core system, even with no additional plugins, no VPN, no AdGuard Home, and DPI Engine disabled. Hardware Network Acceleration is enabled. On the previous router (ASUS RT-BE90U, same client count, same encrypted DNS setup), reported CPU usage sat around 10% percent, so this felt like a big jump.

I SSH'd in to check more directly:

cat /proc/loadavg
2.00 2.03 2.00 1/215 6973
top -n 1 -b
Mem: 557472K used, 325616K free, 3616K shrd, 56952K buff, 92372K cached
CPU:   0% usr   2% sys   0% nic  97% idle   0% io   0% irq   0% sirq
Load average: 2.01 2.02 2.00 2/216 8288

So actual CPU usage is near zero (97% idle), but load average is locked at ~2.0 regardless. Nothing in the process table shows meaningful %CPU, the process list is dominated by idle daemons (dnsproxy, hostapd, nginx, netifd, etc.) all sitting at 0%.

Scanning the process list, I noticed a few threads in D state (uninterruptible sleep):

29152     2 root     DW       0   0%   0   0% [kworker/u8:2+ec]
 1568      2 root     DW       0   0%   2   0% [kworker/u8:6+ec]

And the NSS/PPE hardware offload management threads are present and active:

7847  ecm_sfe_ipv6_wo
7846  ecm_ppe_ipv6_wo
7787  ecm_ppe_ipv4_wo
7788  ecm_sfe_ipv4_wo

My guess is the load average figure is being inflated by these offload/ECM threads sitting in a wait state, rather than reflecting genuine CPU work, since actual usr/sys time is near zero. But I wanted to check with people who know the NSS/PPE offload driver better before assuming that's the explanation.

Questions

  1. Is a load average of ~2.0 at true idle (0-3% actual CPU usage) expected behavior with hardware Network Acceleration enabled on this platform, tied to how the ECM/offload threads report state?

  2. Is the System Overview dashboard's "CPU Average Load" metric intended to be read as a Linux load average (relative to core count) rather than a direct percentage? It's not labeled either way on the dashboard itself, which made the ASUS comparison a bit misleading at first (ASUSWRT shows direct percentage, not load average).

  3. Is there a way to confirm hardware offload is actively handling flows rather than falling back to software forwarding, short of what's visible in top?

Happy to pull additional diagnostics if useful (dmesg, ecm module status, etc).

Setup for reference:

  • GL-BE9300 (Flint 3), firmware v4.9.0

  • WAN: PPPoE, VLAN 100, MTU 1492

  • DNS: Encrypted DNS, Quad9, DNS over TLS

  • WiFi: MLO (2.4/5/6 GHz) + separate 6 GHz, 5 GHz, 2.4 GHz bands, all WPA3-SAE, plus one 5 GHz guest network, mixed

  • 7 online clients at time of test (5 clients on MLO, 2 client on 5G guest)

  • Hardware Network Acceleration: enabled

  • DPI Engine, AdGuard Home, VPN, plugins: all disabled

  • No Mesh, or repeater setup

  • Uptime at time of test: ~1 day 19 hours

  • CPU temp: 64°C / 147°F, fan 0 RPM

Hi,

Thank you for the report.

Please see our responses below:

  1. Yes. When ECM SFE is enabled, the related processes may enter the D state (uninterruptible sleep) for handling device I/O operations. This increases the number of tasks counted in the load average. As you mentioned, this does not represent actual CPU utilization.

    Freezing of tasks — The Linux Kernel documentation

  2. Yes. The CPU value shown under System → Overview is the load average, rather than the CPU usage percentage.

  3. Please SSH into the router and check the following:

    cat /sys/kernel/debug/ecm/ecm_ppe_ipv4/accelerated_count
    cat /sys/kernel/debug/ecm/ecm_sfe_ipv4/accelerated_count
    

Please note that even in Hardware Acceleration mode, SFE may still be used, for example to accelerate 2.4GHz performance.

If you would like to disable SFE completely, you can run:

uci set ecm.global.acceleration_engine='ppe'
uci commit
/etc/init.d/qca-nss-ecm restart
1 Like