TL;DR: What is the best way to manage memory usage on my MR7350? Maybe others out there running ath11k on 512MB routers could share.
===========================================
I have two MR7350’s that I use as bridged APs. I had flashed them w/ a snapshot that was available at the time that I bought them (early Dec 2025).
They worked great, although, as some users here note, the ath11k drivers seem to (over)utilize memory. The 512MB of RAM onboard is reported as markedly less than that. [Yes, each WiFi client attaching exacts a chunk of RAM… you can watch available RAM drop as clients latch on…]
They were set up as bridged AP’s, with a single 5Ghz SSID and two 2.4Ghz SSID’s. I also had usteer running on them to handle the roaming/fast-switching function. They also served as Ethernet switches to connect computers and devices. I set up ZRAM with defaults (16MB and LZO).
After 12.0.rc5 came out, I upgraded to it and everything seemed fine. Two days later, I noticed my Debian build station had a strange ip address and something wasn’t right. It turns out both routers had soft-bricked at roughly the same time. I initially thought that they were bricked completely, but I got them booting again. My observations lead me to believe that they were just running out of memory.
When I restored them with the latest saved config, they each soft-bricked again within 5 minutes. I got around this by disabling the 5Ghz radio and only activating one of the two 2.4Ghz SSID’s. This seems to work (knock on wood), and memory usage is staying within bounds ATM.
ALL services are disabled except the bare minimum necessary to provide 802.11rkv, and ZRAM.
It seems kind of draconian to have to cut back a router to JUST a single 2.4 SSID to keep it from running out of RAM.
Ideas on how to get around this and make this (without tossing the MR7350’s)?
================================================================
Solutions/findings:
-
This was not a OOM problem, for the greatest part. Kernel messages pointed to questionable interrupts being thrown around. Sifting through some github and forum posts, it seems the problem may have been with “packet steering” (PS) in Network>Interfaces>Global Network options. Once I disabled PS, I had no more issues. This has not appreciably affected network speed for me, wired or wireless.
-
For my use case, ZRAM swap turns out to be essential, and works very well.
- set
vm.swappiness = 100withsysctland make it permanent in/etc/sysctl.conf - swap settings in
/etc/config/system:config system ...
option zram_comp_algo 'lzo'NOTE: my 24.10.x config wasLZ4
option zram_size_mb '512'
- While 512MB seemed like an inflated amount, it has worked well. I have about 30 IoT devices, and this router ends up handling about a dozen of them usually.
- there was also a change in defaults from 24.10.5 to 25.12.0.
LZ4/ZSTDwere removed from ZRAM swap options, leaving onlyLZO. I did see an error pop up:Errors
zram_start: activating '/dev/zram0' for swapping (189 MiB)
zram_reset: enforcing defaults via /sys/block/zram0/reset
zram_comp_algo: set compression algorithm 'lzo' for zram '/dev/zram0'
I didn't interpret this error correctly or see the connection to the change in the ZRAM swap defaults - an oversight on my part.
- set
-
There is a replacement for
qca_nss_dpandqca_ssdkin the works. I don’t know what the timeline is, but progress is being made and there is mention of the MR7350. -
I am unsure if Hardware Offloading can help with speed. In my understanding, it is performed w/o any CPU draw, so I may try that and see (using
iperf) any difference in performance.