[Cake] Wifi Memory limits in small platforms

Sebastian Gottschall s.gottschall at newmedia-net.de
Fri Aug 23 02:25:43 EDT 2019


Am 23.08.2019 um 01:39 schrieb Dave Taht:
> Sebastian Gottschall <s.gottschall at newmedia-net.de> writes:
>
>>>>> but with current mac80211 versions (current means last 2-3 years). they
>>>>> are just unstable and running out of memory after a while
>>>>> the only thing which helped was cutting of the memory limit of fq_codel
>>>>> inside mac80211
>>>>> i also have another fancy testunit which is a linksys wrt400 with 32 mb
>>>>> ram and 2 ath9k based wifi chipsets. no hope here fonr running stable
>>>>> for only 5 minutes even with a single connection under load (my crashing
>>>>> test is running a hdtv iptv stream converted to unicast using a
>>>>> stateless eoip tunnel)
>>>>>
>>>>>> I try to encourage folk to run the rtt_fair tests in flent when
>>>>>> twiddling with wifi. Those really shows how bad things are when you
>>>>>> don't have ATF + FQ + Per station aggregation and lots of
>>>>>> clients. Single threaded tests are misleading.
>>>>> i know but even single threaded tests arent working good on such
>>>>> devices. so there is no need to talk about the benefits of atf,fq_codel etc.
>>>>> but there is need to talk about configurable use of it which also allows
>>>>> to disable it if required.
>>> I 110% agree that a system that can stay up for years is much better
>>> than one that is fast for 5 minutes!
>>>
>>> However I'd like a chance, in collaborating with you and your upcoming
>>> patches - to try and narrow
>>> down crash bugs to various subsystems and be able to get some
>>> benchmarks done that I simply
>>> couldn't do anymore at the financial conclusion of the make-wifi-fast
>>> and cake projects.
>>>
>>> I think I have a lot of gear that is dd-wrt compatible - apu2,
>>> wndr3700s, 3800s....
>> if its v4, these are having 128 mb (i have them too).
> These are from the cerowrt era, so, 32 or 64MB of ram.
>
>> and apu2 has 2
>> gb. so its getting real interesting
>> if you choose such a bad one with 32 mb ram which are still commonly
>> used by "freifunk"
> One thing we can start doing more 'round here is to boot the x86 boxes
> with mem=32MB or something similar (40% larger due to 64 bits? no idea,
> maybe look at free mem on a similar config) to see what shows up.
>
> For example, one of my APU2s has dual ath9/ath10k cards which is a
> a reasonable sim of one of your configs.
since x64 have alot more differen configurations the kernels are much 
bigger (drivers, drivers, drivers) . i'm sure it will not work with just 
32 mb
>
>>> The reduce truesize patch had helped a lot at the time (2012). There
>>> were all kinds of flaky bugs that disappeared.
>> i tested and it helped to make ethernet unavailable. it worked for
> thx for making me chortle in sad empathy.
>
>> wifi interfaces. but the eth0 and eth1 on my ipq8064 based
>> testboard did not work anymore. no dhcp lease, no ping. but i was able
>> to capture inbound packets. (qos was not even enabled while testing,
>> so no cake, fq_code letc. just standard sfq scheduler)
>> so i reverted and all worked again
> OK. Thx for trying. there have been so many bugs in gso/gro and hardware
> offloads that I figure that that's why the patch was dropped over time.
>
> is cake's gso-splitting working on that same hardware? I'm not sure
> to what extent that reduces packet size or not these days.
cake works yes, but i have not checked explicit for gso-splitting. it 
just worked
>
> I'll try that again on x86, maybe it needed to pullskb....
can be hw specific. but who knows.
>
>>> Pico:
>>>
>>> root at pool2:~# free
>>>                total         used         free       shared      buffers
>>> Mem:         28480        23796         4684           92         1868
>>> -/+ buffers:              21928         6552
>>> Swap:            0            0            0
>>>
>>> root at pool2:~# uptime
>>>    11:38:09 up 43 days, 21:37,  load average: 0.04, 0.03, 0.04
>>>
>>> Same workload over here, on a wndr3800, almost exactly the same config
>>>
>>> root at couch:~# free
>>>                total       used       free     shared    buffers     cached
>>> Mem:         60320      22872      37448         68       1960       6120
>>> -/+ buffers/cache:      14792      45528
>>> Swap:            0          0          0
>> NS2
>>
>> root at TRO1:~# free
>>
>>                total        used        free      shared buff/cache
>> available
>> Mem:          29124       19228        3552           0 6344        7752
>> Swap:             0           0           0
> It looks like you are running even less stuff than I am. And this
> machine is running with 256k bufs?
yes. but it may also depend what you're running. i mean openwrt and 
dd-wrt are very different.
the webserver etc. in dd-wrt might be more lightweight. i do not use lua 
or any other slow component
its all written in C including the web code.

thats my process list

   PID USER       VSZ STAT COMMAND
     1 root      1172 S    /sbin/init
     2 root         0 SW   [kthreadd]
     3 root         0 SW   [ksoftirqd/0]
     4 root         0 SW   [kworker/0:0]
     5 root         0 SW<  [kworker/0:0H]
     6 root         0 SW   [kworker/u2:0]
     7 root         0 SW<  [khelper]
     8 root         0 SW<  [writeback]
    10 root         0 SW<  [crypto]
    12 root         0 SW<  [bioset]
    64 root         0 SW<  [kblockd]
    65 root         0 SW   [kswapd0]
    66 root         0 SW   [kworker/0:1]
   108 root         0 SW   [fsnotify_mark]
   120 root         0 SW<  [deferwq]
   121 root         0 SW   [kworker/u2:2]
   503 root      1176 S    /sbin/hotplug2 --set-rules-file 
/etc/hotplug2.rules --persistent
   524 root      1856 S    watchdog
   553 root         0 SW<  [cfg80211]
   574 root      1792 S    /sbin/wlanled -l generic_0:-94 -l 
generic_1:-80 -l generic_11:-73 -l generic_7:-65
   777 root      3780 S    hostapd -B -P /var/run/ath0_hostapd.pid 
/tmp/ath0_hostap.conf
   951 root      1812 S    wland
  1025 root       904 S    cron
  1083 root      1544 S    resetbutton
  1086 root      1856 S    process_monitor
  1217 root      1376 S    syslogd -Z -L -R 192.168.0.117
  1224 root      1376 S    klogd
  1341 root      1112 S    mactelnetd
  1456 root      1224 S    dropbear -b /tmp/loginprompt -r 
/tmp/root/.ssh/ssh_host_rsa_key -p 22 -a
  4449 root      3692 S    httpd -p 80
10770 root      1172 S    dnsmasq -u root -g root 
--conf-file=/tmp/dnsmasq.conf
29786 root      1292 R    dropbear -b /tmp/loginprompt -r 
/tmp/root/.ssh/ssh_host_rsa_key -p 22 -a
29787 root      1376 S    -sh
29799 root      1376 R    ps


>
>> wndr3700v4
>>
>> root at DD-WRT:~# free
>>                total        used        free      shared buff/cache
>> available
>> Mem:         125884       23048       92940           0 9896       99824
>> Swap:             0           0           0
>> root at DD-WRT:~#
>>


More information about the Cake mailing list