Ipq806x NSS build (Netgear R7800 / TP-Link C2600 / Linksys EA8500)

@qosmio
Can you fix the @amteza's patch in your branch as he mentioned here.

When I run

cat /sys/kernel/debug/ieee80211/*/aql_txq_limit
AC      AQL limit low   AQL limit high
VO      5000            12000
VI      5000            12000
BE      5000            12000
BK      5000            12000
AC      AQL limit low   AQL limit high
VO      5000            12000
VI      5000            12000
BE      5000            12000
BK      5000            12000

Thinks for the great work!

It would be even better if you could include samba share and guest wifi.
I somehow could not get them working.

I used putty and WinSCP to browse my USB harddrives (/mnt/sda1 and /mnt/sdb1), they both are shown empty now (worked before, they are ext4).

Guest wifi connection is working and I can use internet, but Android and Windows report is as "No Internet", don't know what I did wrong.

Thanks again!

If you just want to change the AQL txq limits, you can just change them dynamically as follows. I prefer not to hard-code the experimental settings that are different from the default settings in upstream code, if we can dynamically change them via other means. Default settings are there for a good reason. The default AQL txq limits are set to prevent potential throughput drops at very high or very low bitrates.

Put it in /etc/rc.local if you want to make it persistent.

for ac in 0 1 2 3; do echo $ac 2000 4000 > /sys/kernel/debug/ieee80211/phy0/aql_txq_limit; done
for ac in 0 1 2 3; do echo $ac 2000 4000 > /sys/kernel/debug/ieee80211/phy1/aql_txq_limit; done
1 Like

My fault. I've just thought those settings were part of the NAPI polling patch. After that reading the @amteza's post I imagined that the patch wasn't implemented and working at all. Actually is this NAPI_Polling_8 setting set properly now or we have to wait @qosmio to update his branch.

Good point. However, we discussed it and recognised these values nowadays are too high. It would be good to find a new set that works for most of us in 2022. :wink:

If you removed the piece corresponding to reducing AQL limits from my patches, it's okay. However, if you didn't patches are not correctly applied, it is worth re-verify.

1 Like

After 19 hours of work I got a reboot.
Linux R7800 5.15.69 #0 SMP Fri Sep 23 19:31:34 2022 armv7l GNU/Linux

Oops#1 Part1
<1>[64430.579601] 8<--- cut here ---
<1>[64430.579637] Unable to handle kernel paging request at virtual address 20010000
<1>[64430.581558] pgd = 4b57245f
<1>[64430.588757] [20010000] *pgd=00000000
<0>[64430.591455] Internal error: Oops: 80000005 [#1] SMP ARM
<4>[64430.595185] Modules linked in: ksmbd ecm nft_fib_inet nf_flow_table_ipv6 nf_flow_table_ipv4 nf_flow_table_inet ath10k_pci ath10k_core ath wireguard nft_reject_ipv6 nft_reject_ipv4 nft_reject_inet nft_reject nft_redir nft_quota nft_objref nft_numgen nft_nat nft_masq nft_log nft_limit nft_hash nft_flow_offload nft_fib_ipv6 nft_fib_ipv4 nft_fib nft_ct nft_counter nft_compat nft_chain_nat nf_tables nf_nat nf_flow_table nf_conntrack mac80211 libchacha20poly1305 ipt_REJECT curve25519_neon cfg80211 xt_time xt_tcpudp xt_tcpmss xt_statistic xt_multiport xt_mark xt_mac xt_limit xt_length xt_hl xt_ecn xt_dscp xt_comment xt_TCPMSS xt_LOG xt_HL xt_DSCP xt_CLASSIFY sch_cake pptp ppp_async poly1305_arm nfnetlink nf_reject_ipv4 nf_log_syslog nf_defrag_ipv6 nf_defrag_ipv4 libcurve25519_generic libcrc32c iptable_mangle iptable_filter ipt_ECN ip_tables crc_ccitt compat chacha_neon fuse sch_tbf sch_ingress sch_htb sch_hfsc em_u32 cls_u32 cls_tcindex cls_route cls_matchall cls_fw cls_flow cls_basic
<4>[64430.595855]  act_skbedit act_mirred act_gact qca_nss_pppoe pppoe pppox ppp_generic slhc ledtrig_usbport cryptodev ip6table_mangle ip6table_filter ip6_tables ip6t_REJECT x_tables nf_reject_ipv6 qca_mcs nfsv4 nfsv3 nfs msdos ip_gre gre ifb ip6_udp_tunnel udp_tunnel sit tunnel4 ip_tunnel lockd sunrpc grace hfsplus hfs cdrom dns_resolver nls_utf8 nls_iso8859_15 nls_iso8859_1 nls_cp850 nls_cp437 nls_cp1250 wp512 twofish_generic twofish_common tea serpent_generic khazad cast6_generic cast5_generic cast_common camellia_generic blowfish_generic blowfish_common anubis xts crypto_user algif_skcipher algif_rng algif_hash algif_aead af_alg sha1_generic seqiv md5 md4 ecb des_generic libdes cmac authencesn authenc uas usb_storage leds_gpio xhci_plat_hcd xhci_pci xhci_hcd dwc3 dwc3_qcom ohci_platform ohci_hcd phy_qcom_ipq806x_usb ahci fsl_mph_dr_of ehci_platform ehci_fsl sd_mod ahci_platform libahci_platform libahci libata scsi_mod scsi_common ehci_hcd qca_nss_drv qca_nss_gmac ramoops reed_solomon
<4>[64430.665351]  pstore gpio_button_hotplug vfat fat f2fs ext4 mbcache jbd2 exfat dm_mirror dm_region_hash dm_log dm_crypt dm_mod dax crc32c_generic crc32_generic cbc encrypted_keys trusted tpm oid_registry asn1_encoder asn1_decoder [last unloaded: ksmbd]
<4>[64430.773855] CPU: 0 PID: 30755 Comm: kworker/0:3 Not tainted 5.15.69 #0
<4>[64430.795879] Hardware name: Generic DT based system
<4>[64430.802477] Workqueue: events dbs_work_handler
<4>[64430.807248] PC is at 0x20010000
<4>[64430.811673] LR is at msm_read_current_timer+0x20/0x2c
<4>[64430.814714] pc : [<20010000>]    lr : [<c08bd3a4>]    psr: a0000093
<4>[64430.819924] sp : c6b43cf8  ip : 00000000  fp : c1ff9a80
<4>[64430.825998] r10: c1cae618  r9 : 00000000  r8 : c6b43d54
<4>[64430.831206] r7 : 00000002  r6 : 20000013  r5 : 00000006  r4 : c0f1b8b8
<4>[64430.836417] r3 : 20010000  r2 : c0ee533c  r1 : 20000093  r0 : c0ec34a8
<4>[64430.843015] Flags: NzCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment none
<4>[64430.849529] Control: 10c5787d  Table: 487d806a  DAC: 00000051
<1>[64430.856729] Register r0 information: non-slab/vmalloc memory
<1>[64430.862546] Register r1 information: non-paged memory
<1>[64430.868274] Register r2 information: non-slab/vmalloc memory
<1>[64430.873222] Register r3 information: non-paged memory
<1>[64430.878950] Register r4 information: non-slab/vmalloc memory
<1>[64430.883899] Register r5 information: non-paged memory
<1>[64430.889627] Register r6 information: non-paged memory
<1>[64430.894575] Register r7 information: non-paged memory
<1>[64430.899610] Register r8 information: non-slab/vmalloc memory
<1>[64430.904646] Register r9 information: NULL pointer
<1>[64430.910373] Register r10 information: slab kmalloc-256 start c1cae600 pointer offset 24 size 256
<1>[64430.914980] Register r11 information: slab kmalloc-128 start c1ff9a80 pointer offset 0 size 128
<1>[64430.923834] Register r12 information: NULL pointer
<0>[64430.932249] Process kworker/0:3 (pid: 30755, stack limit = 0xd30fbca4)
<0>[64430.937112] Stack: (0xc6b43cf8 to 0xc6b44000)
<0>[64430.943622] 3ce0:                                                       c0f1b8b8 c06be1e8
<0>[64430.948058] 3d00: c168b758 00000001 20000013 c0734558 c168b764 c0eac610 ffffffff c0735d04
<0>[64430.956217] 3d20: 00000000 c0eac610 ffffffff c034b97c c1cae600 c0eac610 c16cb900 00000002
<0>[64430.964377] 3d40: c163fd80 23c34600 2faf0800 c0720d7c c1619200 c1cb71c0 23c34600 2faf0800
<0>[64430.972536] 3d60: c1619200 c16cb900 00000000 2faf0800 c0ed7da0 c0726320 c6b42000 23c34600
<0>[64430.980696] 3d80: 2faf0800 c163fd80 c16cb7e8 2faf0800 c0ed7da0 c1436f00 23c34600 2faf0800
<0>[64430.988856] 3da0: c1ff9a80 c0726364 c6b42000 c163fd80 00000001 c16cb900 00000000 2faf0800
<0>[64430.997016] 3dc0: c163fd80 dd985010 2faf0800 00000000 c1ff9a80 c07266dc 00000000 2faf0800
<0>[64431.005176] 3de0: 00000000 ffffffff 2faf0800 c0eaef98 c71e0600 c1ffa140 2faf0800 00000000
<0>[64431.013336] 3e00: c1ff9c00 dd985010 2faf0800 00000000 c1ff9a80 c0727064 c16dba00 c1ff9c80
<0>[64431.021495] 3e20: 00000000 c1ff9c00 dd985010 2faf0800 00000000 c087d130 2faf0800 c072739c
<0>[64431.029654] 3e40: c1ffa140 00000000 c16cb900 c072739c c16ce200 c1ff9c00 00000000 ffffffff
<0>[64431.037814] 3e60: 2faf0800 c16dba00 dd985010 00000006 2faf0800 c1ff9c80 00000002 00000000
<0>[64431.045975] 3e80: 000c3500 c087d5c8 c0ec07d0 c034b99c c16ce200 2faf0800 c16ce200 c0ee1df0
<0>[64431.054134] 3ea0: 00000000 c0f1d714 000927c0 c08828c4 00000001 69a56800 c0d661c8 00000000
<0>[64431.062295] 3ec0: c16ce200 000927c0 000c3500 00000024 dd98c5c0 c16ce200 c1ffb200 c1ffb280
<0>[64431.070453] 3ee0: c1ffb200 c1ffa540 c1ffb280 dd98f405 c9c40140 c088646c c1ffb238 00000000
<0>[64431.078613] 3f00: c1ffb204 c0ec0ab0 00000000 c0ed5c20 dd98f405 c08871f0 c1ffb238 c9c40100
<0>[64431.086773] 3f20: dd98c1c0 dd98f400 00000000 c03416c8 c6b42000 dd98c1c0 00000008 c9c40100
<0>[64431.094933] 3f40: c9c40118 dd98c1c0 00000008 dd98c1d8 c0e03d00 dd98c380 c6b42000 c0341a9c
<0>[64431.103092] 3f60: c0e109dc c0ee5adc cf0edecc cf7049c0 d038d400 c0341a20 c9c40100 c6b42000
<0>[64431.111252] 3f80: cf0edecc d038d420 00000000 c0349f48 cf7049c0 c0349de8 00000000 00000000
<0>[64431.119411] 3fa0: 00000000 00000000 00000000 c0300130 00000000 00000000 00000000 00000000
<0>[64431.127570] 3fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
<0>[64431.135730] 3fe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
<0>[64431.143892] [<c08bd3a4>] (msm_read_current_timer) from [<c06be1e8>] (__timer_delay+0x34/0x80)
<0>[64431.152049] [<c06be1e8>] (__timer_delay) from [<c0734558>] (krait_mux_set_parent+0xc0/0xd4)
<0>[64431.160555] [<c0734558>] (krait_mux_set_parent) from [<c0735d04>] (krait_notifier_cb+0x60/0xc0)
<0>[64431.168715] [<c0735d04>] (krait_notifier_cb) from [<c034b97c>] (srcu_notifier_call_chain+0x84/0xfc)
<0>[64431.177396] [<c034b97c>] (srcu_notifier_call_chain) from [<c0720d7c>] (__clk_notify+0x78/0x94)
<0>[64431.186424] [<c0720d7c>] (__clk_notify) from [<c0726320>] (clk_change_rate+0x188/0x484)
<0>[64431.195102] [<c0726320>] (clk_change_rate) from [<c0726364>] (clk_change_rate+0x1cc/0x484)
<0>[64431.203002] [<c0726364>] (clk_change_rate) from [<c07266dc>] (clk_core_set_rate_nolock+0xc0/0x23c)
<0>[64431.211335] [<c07266dc>] (clk_core_set_rate_nolock) from [<c0727064>] (clk_set_rate+0x48/0x180)
<0>[64431.220276] [<c0727064>] (clk_set_rate) from [<c087d130>] (_set_opp+0x220/0x5c8)
<0>[64431.228870] [<c087d130>] (_set_opp) from [<c087d5c8>] (dev_pm_opp_set_rate+0xf0/0x220)
<0>[64431.236507] [<c087d5c8>] (dev_pm_opp_set_rate) from [<c08828c4>] (__cpufreq_driver_target+0x108/0x310)
<0>[64431.244237] [<c08828c4>] (__cpufreq_driver_target) from [<c088646c>] (od_dbs_update+0xd4/0x1a8)
<0>[64431.253524] [<c088646c>] (od_dbs_update) from [<c08871f0>] (dbs_work_handler+0x40/0x7c)
<0>[64431.262116] [<c08871f0>] (dbs_work_handler) from [<c03416c8>] (process_one_work+0x24c/0x5a4)
<0>[64431.270103] [<c03416c8>] (process_one_work) from [<c0341a9c>] (worker_thread+0x7c/0x5dc)
<0>[64431.278782] [<c0341a9c>] (worker_thread) from [<c0349f48>] (kthread+0x160/0x17c)
<0>[64431.286855] [<c0349f48>] (kthread) from [<c0300130>] (ret_from_fork+0x14/0x24)
<0>[64431.294232] Exception stack(0xc6b43fb0 to 0xc6b43ff8)
<0>[64431.301262] 3fa0:                                     00000000 00000000 00000000 00000000
<0>[64431.306390] 3fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
<0>[64431.314550] 3fe0: 00000000 00000000 00000000 00000000 00000013 00000000
<0>[64431.322707] Code: bad PC value
<4>[64431.329125] ---[ end trace 36d97a9a11dbeb62 ]---
Panic#2 Part1
<1>[64430.579601] 8<--- cut here ---
<1>[64430.579637] Unable to handle kernel paging request at virtual address 20010000
<1>[64430.581558] pgd = 4b57245f
<1>[64430.588757] [20010000] *pgd=00000000
<0>[64430.591455] Internal error: Oops: 80000005 [#1] SMP ARM
<4>[64430.595185] Modules linked in: ksmbd ecm nft_fib_inet nf_flow_table_ipv6 nf_flow_table_ipv4 nf_flow_table_inet ath10k_pci ath10k_core ath wireguard nft_reject_ipv6 nft_reject_ipv4 nft_reject_inet nft_reject nft_redir nft_quota nft_objref nft_numgen nft_nat nft_masq nft_log nft_limit nft_hash nft_flow_offload nft_fib_ipv6 nft_fib_ipv4 nft_fib nft_ct nft_counter nft_compat nft_chain_nat nf_tables nf_nat nf_flow_table nf_conntrack mac80211 libchacha20poly1305 ipt_REJECT curve25519_neon cfg80211 xt_time xt_tcpudp xt_tcpmss xt_statistic xt_multiport xt_mark xt_mac xt_limit xt_length xt_hl xt_ecn xt_dscp xt_comment xt_TCPMSS xt_LOG xt_HL xt_DSCP xt_CLASSIFY sch_cake pptp ppp_async poly1305_arm nfnetlink nf_reject_ipv4 nf_log_syslog nf_defrag_ipv6 nf_defrag_ipv4 libcurve25519_generic libcrc32c iptable_mangle iptable_filter ipt_ECN ip_tables crc_ccitt compat chacha_neon fuse sch_tbf sch_ingress sch_htb sch_hfsc em_u32 cls_u32 cls_tcindex cls_route cls_matchall cls_fw cls_flow cls_basic
<4>[64430.595855]  act_skbedit act_mirred act_gact qca_nss_pppoe pppoe pppox ppp_generic slhc ledtrig_usbport cryptodev ip6table_mangle ip6table_filter ip6_tables ip6t_REJECT x_tables nf_reject_ipv6 qca_mcs nfsv4 nfsv3 nfs msdos ip_gre gre ifb ip6_udp_tunnel udp_tunnel sit tunnel4 ip_tunnel lockd sunrpc grace hfsplus hfs cdrom dns_resolver nls_utf8 nls_iso8859_15 nls_iso8859_1 nls_cp850 nls_cp437 nls_cp1250 wp512 twofish_generic twofish_common tea serpent_generic khazad cast6_generic cast5_generic cast_common camellia_generic blowfish_generic blowfish_common anubis xts crypto_user algif_skcipher algif_rng algif_hash algif_aead af_alg sha1_generic seqiv md5 md4 ecb des_generic libdes cmac authencesn authenc uas usb_storage leds_gpio xhci_plat_hcd xhci_pci xhci_hcd dwc3 dwc3_qcom ohci_platform ohci_hcd phy_qcom_ipq806x_usb ahci fsl_mph_dr_of ehci_platform ehci_fsl sd_mod ahci_platform libahci_platform libahci libata scsi_mod scsi_common ehci_hcd qca_nss_drv qca_nss_gmac ramoops reed_solomon
<4>[64430.665351]  pstore gpio_button_hotplug vfat fat f2fs ext4 mbcache jbd2 exfat dm_mirror dm_region_hash dm_log dm_crypt dm_mod dax crc32c_generic crc32_generic cbc encrypted_keys trusted tpm oid_registry asn1_encoder asn1_decoder [last unloaded: ksmbd]
<4>[64430.773855] CPU: 0 PID: 30755 Comm: kworker/0:3 Not tainted 5.15.69 #0
<4>[64430.795879] Hardware name: Generic DT based system
<4>[64430.802477] Workqueue: events dbs_work_handler
<4>[64430.807248] PC is at 0x20010000
<4>[64430.811673] LR is at msm_read_current_timer+0x20/0x2c
<4>[64430.814714] pc : [<20010000>]    lr : [<c08bd3a4>]    psr: a0000093
<4>[64430.819924] sp : c6b43cf8  ip : 00000000  fp : c1ff9a80
<4>[64430.825998] r10: c1cae618  r9 : 00000000  r8 : c6b43d54
<4>[64430.831206] r7 : 00000002  r6 : 20000013  r5 : 00000006  r4 : c0f1b8b8
<4>[64430.836417] r3 : 20010000  r2 : c0ee533c  r1 : 20000093  r0 : c0ec34a8
<4>[64430.843015] Flags: NzCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment none
<4>[64430.849529] Control: 10c5787d  Table: 487d806a  DAC: 00000051
<1>[64430.856729] Register r0 information: non-slab/vmalloc memory
<1>[64430.862546] Register r1 information: non-paged memory
<1>[64430.868274] Register r2 information: non-slab/vmalloc memory
<1>[64430.873222] Register r3 information: non-paged memory
<1>[64430.878950] Register r4 information: non-slab/vmalloc memory
<1>[64430.883899] Register r5 information: non-paged memory
<1>[64430.889627] Register r6 information: non-paged memory
<1>[64430.894575] Register r7 information: non-paged memory
<1>[64430.899610] Register r8 information: non-slab/vmalloc memory
<1>[64430.904646] Register r9 information: NULL pointer
<1>[64430.910373] Register r10 information: slab kmalloc-256 start c1cae600 pointer offset 24 size 256
<1>[64430.914980] Register r11 information: slab kmalloc-128 start c1ff9a80 pointer offset 0 size 128
<1>[64430.923834] Register r12 information: NULL pointer
<0>[64430.932249] Process kworker/0:3 (pid: 30755, stack limit = 0xd30fbca4)
<0>[64430.937112] Stack: (0xc6b43cf8 to 0xc6b44000)
<0>[64430.943622] 3ce0:                                                       c0f1b8b8 c06be1e8
<0>[64430.948058] 3d00: c168b758 00000001 20000013 c0734558 c168b764 c0eac610 ffffffff c0735d04
<0>[64430.956217] 3d20: 00000000 c0eac610 ffffffff c034b97c c1cae600 c0eac610 c16cb900 00000002
<0>[64430.964377] 3d40: c163fd80 23c34600 2faf0800 c0720d7c c1619200 c1cb71c0 23c34600 2faf0800
<0>[64430.972536] 3d60: c1619200 c16cb900 00000000 2faf0800 c0ed7da0 c0726320 c6b42000 23c34600
<0>[64430.980696] 3d80: 2faf0800 c163fd80 c16cb7e8 2faf0800 c0ed7da0 c1436f00 23c34600 2faf0800
<0>[64430.988856] 3da0: c1ff9a80 c0726364 c6b42000 c163fd80 00000001 c16cb900 00000000 2faf0800
<0>[64430.997016] 3dc0: c163fd80 dd985010 2faf0800 00000000 c1ff9a80 c07266dc 00000000 2faf0800
<0>[64431.005176] 3de0: 00000000 ffffffff 2faf0800 c0eaef98 c71e0600 c1ffa140 2faf0800 00000000
<0>[64431.013336] 3e00: c1ff9c00 dd985010 2faf0800 00000000 c1ff9a80 c0727064 c16dba00 c1ff9c80
<0>[64431.021495] 3e20: 00000000 c1ff9c00 dd985010 2faf0800 00000000 c087d130 2faf0800 c072739c
<0>[64431.029654] 3e40: c1ffa140 00000000 c16cb900 c072739c c16ce200 c1ff9c00 00000000 ffffffff
<0>[64431.037814] 3e60: 2faf0800 c16dba00 dd985010 00000006 2faf0800 c1ff9c80 00000002 00000000
<0>[64431.045975] 3e80: 000c3500 c087d5c8 c0ec07d0 c034b99c c16ce200 2faf0800 c16ce200 c0ee1df0
<0>[64431.054134] 3ea0: 00000000 c0f1d714 000927c0 c08828c4 00000001 69a56800 c0d661c8 00000000
<0>[64431.062295] 3ec0: c16ce200 000927c0 000c3500 00000024 dd98c5c0 c16ce200 c1ffb200 c1ffb280
<0>[64431.070453] 3ee0: c1ffb200 c1ffa540 c1ffb280 dd98f405 c9c40140 c088646c c1ffb238 00000000
<0>[64431.078613] 3f00: c1ffb204 c0ec0ab0 00000000 c0ed5c20 dd98f405 c08871f0 c1ffb238 c9c40100
<0>[64431.086773] 3f20: dd98c1c0 dd98f400 00000000 c03416c8 c6b42000 dd98c1c0 00000008 c9c40100
<0>[64431.094933] 3f40: c9c40118 dd98c1c0 00000008 dd98c1d8 c0e03d00 dd98c380 c6b42000 c0341a9c
<0>[64431.103092] 3f60: c0e109dc c0ee5adc cf0edecc cf7049c0 d038d400 c0341a20 c9c40100 c6b42000
<0>[64431.111252] 3f80: cf0edecc d038d420 00000000 c0349f48 cf7049c0 c0349de8 00000000 00000000
<0>[64431.119411] 3fa0: 00000000 00000000 00000000 c0300130 00000000 00000000 00000000 00000000
<0>[64431.127570] 3fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
<0>[64431.135730] 3fe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
<0>[64431.143892] [<c08bd3a4>] (msm_read_current_timer) from [<c06be1e8>] (__timer_delay+0x34/0x80)
<0>[64431.152049] [<c06be1e8>] (__timer_delay) from [<c0734558>] (krait_mux_set_parent+0xc0/0xd4)
<0>[64431.160555] [<c0734558>] (krait_mux_set_parent) from [<c0735d04>] (krait_notifier_cb+0x60/0xc0)
<0>[64431.168715] [<c0735d04>] (krait_notifier_cb) from [<c034b97c>] (srcu_notifier_call_chain+0x84/0xfc)
<0>[64431.177396] [<c034b97c>] (srcu_notifier_call_chain) from [<c0720d7c>] (__clk_notify+0x78/0x94)
<0>[64431.186424] [<c0720d7c>] (__clk_notify) from [<c0726320>] (clk_change_rate+0x188/0x484)
<0>[64431.195102] [<c0726320>] (clk_change_rate) from [<c0726364>] (clk_change_rate+0x1cc/0x484)
<0>[64431.203002] [<c0726364>] (clk_change_rate) from [<c07266dc>] (clk_core_set_rate_nolock+0xc0/0x23c)
<0>[64431.211335] [<c07266dc>] (clk_core_set_rate_nolock) from [<c0727064>] (clk_set_rate+0x48/0x180)
<0>[64431.220276] [<c0727064>] (clk_set_rate) from [<c087d130>] (_set_opp+0x220/0x5c8)
<0>[64431.228870] [<c087d130>] (_set_opp) from [<c087d5c8>] (dev_pm_opp_set_rate+0xf0/0x220)
<0>[64431.236507] [<c087d5c8>] (dev_pm_opp_set_rate) from [<c08828c4>] (__cpufreq_driver_target+0x108/0x310)
<0>[64431.244237] [<c08828c4>] (__cpufreq_driver_target) from [<c088646c>] (od_dbs_update+0xd4/0x1a8)
<0>[64431.253524] [<c088646c>] (od_dbs_update) from [<c08871f0>] (dbs_work_handler+0x40/0x7c)
<0>[64431.262116] [<c08871f0>] (dbs_work_handler) from [<c03416c8>] (process_one_work+0x24c/0x5a4)
<0>[64431.270103] [<c03416c8>] (process_one_work) from [<c0341a9c>] (worker_thread+0x7c/0x5dc)
<0>[64431.278782] [<c0341a9c>] (worker_thread) from [<c0349f48>] (kthread+0x160/0x17c)
<0>[64431.286855] [<c0349f48>] (kthread) from [<c0300130>] (ret_from_fork+0x14/0x24)
<0>[64431.294232] Exception stack(0xc6b43fb0 to 0xc6b43ff8)
<0>[64431.301262] 3fa0:                                     00000000 00000000 00000000 00000000
<0>[64431.306390] 3fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
<0>[64431.314550] 3fe0: 00000000 00000000 00000000 00000000 00000013 00000000
<0>[64431.322707] Code: bad PC value
<4>[64431.329125] ---[ end trace 36d97a9a11dbeb62 ]---
<0>[64431.349937] Kernel panic - not syncing: Fatal exception
<2>[64431.349975] CPU1: stopping
<4>[64431.353967] CPU: 1 PID: 0 Comm: swapper/1 Tainted: G      D           5.15.69 #0
<4>[64431.356747] Hardware name: Generic DT based system
<4>[64431.364299] [<c0311b10>] (unwind_backtrace) from [<c030c4c4>] (show_stack+0x1c/0x28)
<4>[64431.368902] [<c030c4c4>] (show_stack) from [<c06c0c30>] (dump_stack_lvl+0x40/0x4c)
<4>[64431.376801] [<c06c0c30>] (dump_stack_lvl) from [<c030fe88>] (do_handle_IPI+0x2fc/0x348)
<4>[64431.384180] [<c030fe88>] (do_handle_IPI) from [<c030fef8>] (ipi_handler+0x24/0x34)
<4>[64431.392079] [<c030fef8>] (ipi_handler) from [<c0388cb8>] (handle_percpu_devid_irq+0xa0/0x228)
<4>[64431.399720] [<c0388cb8>] (handle_percpu_devid_irq) from [<c0381ed8>] (handle_domain_irq+0x70/0x9c)
<4>[64431.408313] [<c0381ed8>] (handle_domain_irq) from [<c06db20c>] (gic_handle_irq+0x94/0xbc)
<4>[64431.417167] [<c06db20c>] (gic_handle_irq) from [<c0300b7c>] (__irq_svc+0x5c/0x78)
<4>[64431.425409] Exception stack(0xc1539f18 to 0xc1539f60)
<4>[64431.432874] 9f00:                                                       00000000 00003a99
<4>[64431.437918] 9f20: 1cc2f000 dd99c5c0 00000000 97442d00 c1dc1040 00000000 dd99b830 00003a99
<4>[64431.446077] 9f40: 00000000 00003a99 eb011040 c1539f68 c0889a28 c0889a48 60000013 ffffffff
<4>[64431.454232] [<c0300b7c>] (__irq_svc) from [<c0889a48>] (cpuidle_enter_state+0x1b0/0x438)
<4>[64431.462392] [<c0889a48>] (cpuidle_enter_state) from [<c0889d30>] (cpuidle_enter+0x44/0x64)
<4>[64431.470552] [<c0889d30>] (cpuidle_enter) from [<c035dd00>] (do_idle+0x20c/0x290)
<4>[64431.478623] [<c035dd00>] (do_idle) from [<c035e0c0>] (cpu_startup_entry+0x24/0x28)
<4>[64431.486175] [<c035e0c0>] (cpu_startup_entry) from [<42301610>] (0x42301610)

@Ansuel : Please take a look at sppmaster's crash, as it seems to be the same CPU frequency scaling issue. The image I built for sppmaster is based on Qosmio's repo which has all your latest related commits.

My R7800 is still up after about 3 days (with irqbalance disabled).

1 Like

In the meanwhile, you can try to set your R7800 to a fixed frequency. Some people have reported decent uptime with such approach.

I created new PR for ACwifidude's master branch.
Please review it.

  • l2tpv2 nss offloading: qsdk10 style callback.
  • vlan panic: avoid cpu stall at vlan_dev_get_stats64.
3 Likes

I am dying to know what you found with this one!

New hardware installed on notebook.
22.03 ath10k-ct nss on r7800

I think it is interesting that I put this information

ubutu-server network topology

ISP router <-----> r7800 <--15 mts.utp6 cable ---> unmanagement switch <---15 mts. utp6 cable--> ubuntu-server.
02:00.0 Network controller: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter (rev 32)
	Subsystem: Rivet Networks Killer Wireless-n/a/ac 1535 Wireless Network Adapter
	Flags: bus master, fast devsel, latency 0, IRQ 147
	Memory at df200000 (64-bit, non-prefetchable) [size=2M]
	Capabilities: <access denied>
	Kernel driver in use: ath10k_pci
	Kernel modules: ath10k_pci
asvio@MSI-GS72-6QE:~$ iperf3 -c ubuntu-server -i 60  -f M -t 10 -P 1Connecting to host ubuntu-server, port 5201
[  5] local 192.168.1.135 port 52674 connected to 192.168.1.208 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-10.00  sec   586 MBytes  58.6 MBytes/sec    0   1.05 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   586 MBytes  58.6 MBytes/sec    0             sender
[  5]   0.00-10.01  sec   583 MBytes  58.2 MBytes/sec                  receiver

iperf Done.


160 mhz wifi on r7800


Data

80mhz on r7800

asvio@MSI-GS72-6QE:~$ iperf3 -c ubuntu-server -i 60  -f M -t 10 -P 1Connecting to host ubuntu-server, port 5201
[  5] local 192.168.1.135 port 57592 connected to 192.168.1.208 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-10.00  sec   583 MBytes  58.3 MBytes/sec    0    988 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   583 MBytes  58.3 MBytes/sec    0             sender
[  5]   0.00-10.01  sec   580 MBytes  57.9 MBytes/sec                  receiver

iperf Done.


80mhz data

20mhz wifi5 on r7800

asvio@MSI-GS72-6QE:~$ iperf3 -c ubuntu-server -i 60  -f M -t 10 -P 1Connecting to host ubuntu-server, port 5201
[  5] local 192.168.1.135 port 49718 connected to 192.168.1.208 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-10.00  sec   153 MBytes  15.3 MBytes/sec    0    393 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   153 MBytes  15.3 MBytes/sec    0             sender
[  5]   0.00-10.01  sec   152 MBytes  15.2 MBytes/sec                  receiver

iperf Done.


20mhz data

1 Like

@amteza,

I saw that Qosmio also had made a previous patch for NAPI_POLL_WEIGHT. Is the path "target/linux/ipq806x/patches-5.15" incorrect?

target/linux/ipq806x/patches-5.15/999-800-TEST-perf-NAPI_POLL_WGHT.patch

|||@@ -0,0 +1,11 @@|
| --- | --- | --- |
|||--- a/include/linux/netdevice.h|
|||+++ b/include/linux/netdevice.h|
|||@@ -2440,7 +2440,7 @@ static inline void *netdev_priv(const st|
|||/* Default NAPI poll() weight|
|||* Device drivers are strongly advised to not use bigger value|
|||*/|
|||-#define NAPI_POLL_WEIGHT 64|
|||+#define NAPI_POLL_WEIGHT 8|
||||
|||/**|
|||* netif_napi_add - initialize a NAPI context|

@Mpilon

This is his change:

*** a/net/8021q/vlan_core.c	2022-09-24 11:12:43.170000000 +0900
--- b/net/8021q/vlan_core.c	2022-09-24 11:16:04.630000000 +0900
*************** void __vlan_dev_update_accel_stats(struc
*** 560,566 ****
  	if (!is_vlan_dev(dev))
  		return;
  
! 	stats = per_cpu_ptr(vlan_dev_priv(dev)->vlan_pcpu_stats, 0);
  
  	u64_stats_update_begin(&stats->syncp);
  	u64_stats_add(&stats->rx_packets, nlstats->rx_packets);
--- 560,566 ----
  	if (!is_vlan_dev(dev))
  		return;
  
! 	stats = this_cpu_ptr(vlan_dev_priv(dev)->vlan_pcpu_stats);
  
  	u64_stats_update_begin(&stats->syncp);
  	u64_stats_add(&stats->rx_packets, nlstats->rx_packets);
1 Like

compared with QSDK kernel.

https://source.codeaurora.org/quic/qsdk/oss/kernel/linux-ipq-5.4/commit/net/8021q/vlan_core.c?h=NHSS.QSDK.11.4.1.r1&id=b52adea4e0c7abee046325155f0e498ab101be9c

Many thanks, - I saw it hang in that function a lot but didn't know what was wrong.

Whose trees will pick up this change?

M.

That is correct. However, I will add it in target/linux/ipq806x/patches/generic.

2 Likes

qosmio b 5.15-qsdk11-new-krait-cc
ath10k-ct
80mhz wifi5 r7800
ath10k client

BusyBox v1.35.0 (2022-09-22 20:13:21 UTC) built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt SNAPSHOT, r20780-2565bfe155
 -----------------------------------------------------
root@NAS:~# uname -a
Linux NAS 5.15.69 #0 SMP Thu Sep 22 20:13:21 2022 armv7l GNU/Linux
root@NAS:~# uptime
 12:22:05 up  2:10,  load average: 0.12, 0.04, 0.01
root@NAS:~# lsmod | grep nss
qca_nss_drv           585728  2 ecm,mac80211
qca_nss_gmac           65536  1 qca_nss_drv
root@NAS:~# opkg list | grep ath
ath10k-board-qca9984 - 20220913-1
ath10k-firmware-qca9984 - 20220913-1
kmod-ath - 5.15.69+5.15.58-1-2
kmod-ath10k-ct - 5.15.69+2022-05-13-f808496f-1
root@NAS:~# opkg list | grep ath
ath10k-board-qca9984 - 20220913-1
ath10k-firmware-qca9984 - 20220913-1
kmod-ath - 5.15.69+5.15.58-1-2
kmod-ath10k-ct - 5.15.69+2022-05-13-f808496f-1
root@NAS:~# opkg list | grep nss
hostapd-openssl - 2022-07-29-b704dc72-3
jansson4 - 2.14-3
kmod-qca-nss-drv - 5.15.69+2020-03-20-3cfb9f43-1
kmod-qca-nss-ecm-standard - 5.15.69+2022-08-16-bc390e91-1
kmod-qca-nss-gmac - 5.15.69+2021-04-20-17176794-1
libopenssl1.1 - 1.1.1q-1
root@NAS:~# opkg list | grep qca
ath10k-board-qca9984 - 20220913-1
ath10k-firmware-qca9984 - 20220913-1
kmod-qca-mcs - 5.15.69+2022-03-16-dd8a438-1
kmod-qca-nss-drv - 5.15.69+2020-03-20-3cfb9f43-1
kmod-qca-nss-ecm-standard - 5.15.69+2022-08-16-bc390e91-1
kmod-qca-nss-gmac - 5.15.69+2021-04-20-17176794-1
root@NAS:~# cat /sys/kernel/debug/ieee80211/*/aql_txq_limit
AC      AQL limit low   AQL limit high
VO      5000            12000
VI      5000            12000
BE      5000            12000
BK      5000            12000
AC      AQL limit low   AQL limit high
VO      5000            12000
VI      5000            12000
BE      5000            12000
BK      5000            12000
asvio@MSI-GS72-6QE:~$ iperf3 -c 192.168.1.208 -i 60  -f m -t 10 -P 1
Connecting to host 192.168.1.208, port 5201
[  5] local 192.168.1.135 port 38458 connected to 192.168.1.208 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-10.00  sec   584 MBytes   489 Mbits/sec    0    969 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   584 MBytes   489 Mbits/sec    0             sender
[  5]   0.00-10.01  sec   580 MBytes   487 Mbits/sec                  receiver

iperf Done.


80mhz data
EDIT: The previous results were the server being the Linux virtual machine.

20mhz wifi5 r7800
ath10k client


20mhz data

EDIT2: 20mhz data added.

Much better! Still 60ms is quite a lot, and the first flow to start up should be exchanging sides with the others, rather than dominating so much.

I am tempted to rip NAPI entirely out of the ath10k driver ...

1 Like

can you repeat that test series much further from the AP, or through a a wall?

I will do it. But first I'm going to upload a graph with the parameters that @amteza gave me that I find interesting because it reduces latency by almost half.

for ac in 0 1 2 3; do echo $ac 2000 2000 > /sys/kernel/debug/ieee80211/phy0/aql_txq_limit; done


80mhz data

1 Like