Smart_manager service do_page_fault() to crashed

Hi,

We are running the Morse Micro 2.9-dev build on our board. After running for three days, the smart_manager encountered a do_page_fault() and crashed. Restarting it via /etc/init.d/smart_manager start/restart causes it to hit do_page_fault() again within several seconds.

CPU Platform: MT7621
Halow module: MM6108
OS: Morse Micro 2.9-dev

[326279.651286] do_page_fault(): sending SIGSEGV to smart_manager for invalid read access from 00000010
[326279.660744] epc = 77c8c198 in dcs.mmext[77c7e000+20000]
[326279.666284] ra = 77c8bdf4 in dcs.mmext[77c7e000+20000]
[326392.939829] do_page_fault(): sending SIGSEGV to smart_manager for invalid read access from 00000010
[326392.949069] epc = 77cb6198 in dcs.mmext[77ca8000+20000]
[326392.954463] ra = 77cb5df4 in dcs.mmext[77ca8000+20000]
[326506.173981] do_page_fault(): sending SIGSEGV to smart_manager for invalid read access from 00000010
[326506.183215] epc = 77d1f198 in dcs.mmext[77d11000+20000]
[326506.188612] ra = 77d1edf4 in dcs.mmext[77d11000+20000]
[326619.355790] do_page_fault(): sending SIGSEGV to smart_manager for invalid read access from 00000010
[326619.365026] epc = 77cd8198 in dcs.mmext[77cca000+20000]
[326619.370515] ra = 77cd7df4 in dcs.mmext[77cca000+20000]
[326732.539679] do_page_fault(): sending SIGSEGV to smart_manager for invalid read access from 00000010
[326732.548949] epc = 77d05198 in dcs.mmext[77cf7000+20000]
[326732.554407] ra = 77d04df4 in dcs.mmext[77cf7000+20000]
[326845.698183] do_page_fault(): sending SIGSEGV to smart_manager for invalid read access from 00000010
[326845.707464] epc = 77cf4198 in dcs.mmext[77ce6000+20000]
[326845.713234] ra = 77cf3df4 in dcs.mmext[77ce6000+20000]
[326958.848630] do_page_fault(): sending SIGSEGV to smart_manager for invalid read access from 00000010
[326958.858214] epc = 77c73198 in dcs.mmext[77c65000+20000]
[326958.863635] ra = 77c72df4 in dcs.mmext[77c65000+20000]

The issue prevents the DCS function from working and stops the service from restarting for recovery until a device reboot. We urgently need the Morse Micro Halow to run stably on our MT7621 platform device, so please help identify the causes.

Hi @Owen

Can you please share your DCS configuration, including anything smart_manager related in /var/run/

Hi @ajudge

It seems the DCS configuration was lost from our porting build, as I can’t find any DCS entries in the UCI configuration.

Additional configuration details are provided below:

root@GenericRouter:/var/run# uci show wireless
wireless.radio0=wifi-device
wireless.radio0.type=‘morse’
wireless.radio0.path=‘platform/1e130000.sdhci/mmc_host/mmc0/mmc0:0001/mmc0:0001:2’
wireless.radio0.band=‘s1g’
wireless.radio0.hwmode=‘11ah’
wireless.radio0.reconf=‘0’
wireless.radio0.country=‘JP’
wireless.radio0.bcf=‘bcf_mf10220.bin’
wireless.radio0.channel=‘auto’
wireless.default_radio0=wifi-iface
wireless.default_radio0.mode=‘ap’
wireless.default_radio0.wds=‘1’
wireless.default_radio0.device=‘radio0’
wireless.default_radio0.network=‘lan’
wireless.default_radio0.ssid=‘mii42a1-e562’
wireless.default_radio0.encryption=‘sae’
wireless.default_radio0.key=‘12345678’
root@GenericRouter:/var/run# uci show | grep dcs
root@GenericRouter:/var/run# cat smart_manager.radio0.conf
module_dirs: [“/usr/share/smart_manager/”]
modules: [“dcs”]
interface_name = “wlan0”
logging: {
level = 2
}
backends: {
hostapd: {
control_path: “/var/run/hostapd_s1g”
}
}
datalog: {
root_dir = “/var/log”
dcs: {
enabled = false
}
}
dcs: {
algo_type = “ewma”
ewma: {
ewma_alpha = 30
rounds_for_csa = 10
threshold_percentage = 5
sec_per_scan = 2
sec_per_round = 10
}
trigger_csa = True
dtims_for_csa = 10
}
root@GenericRouter:/var/run# ps | grep smart
5180 root 2364 S /sbin/smart_manager /var/run/smart_manager.radio0.co
6685 root 1432 R grep smart

Hi @Owen

The team is looking into this more closely. If possible, the current recommendation at the moment is to disable DCS and use a fixed channel instead.