[OpenWrt-Devel] [PATCH] ar71xx: check for stuck DMA on AR724x & fix sirq storm after recovery

Conn O'Griofa connogriofa at gmail.com
Fri Jan 8 13:48:39 EST 2016


On 08/01/16 16:49, Felix Fietkau wrote:

> Thanks for investigating this further. Please try this patch:

Unfortunately, your proposed patch doesn't work. When I trigger the timeout condition, a tx timeout occurs and the interface doesn't recover correctly:

[  249.075582] ------------[ cut here ]------------
[  249.080296] WARNING: CPU: 0 PID: 0 at net/sched/sch_generic.c:303 dev_watchdog+0x1dc/0x260()
[  249.088800] NETDEV WATCHDOG: eth1 (ag71xx): transmit queue 0 timed out
[  249.095378] Modules linked in: ath9k ath9k_common pppoe ppp_async iptable_nat ath9k_hw ath pppox ppp_generic nf_nat_ipv4 nf_conntrack_ipv6 nf_conntrack_ipv4 mac80211 ipt_REJECT ipt_MASQUERADE cfg80211 xt_time xt_tcpudp xt_tcpmss xt_statistic xt_state xt_recent xt_nat xt_multiport xt_mark xt_mac xt_limit xt_length xt_id xt_hl xt_helper xt_ecn xt_dscp xt_conntrack xt_connmark xt_connlimit xt_connbytes xt_comment xt_TCPMSS xt_REDIRECT xt_LOG xt_HL xt_DSCP xt_CT xt_CLASSIFY slhc nf_reject_ipv4 nf_nat_redirect nf_nat_masquerade_ipv4 nf_nat nf_log_ipv4 nf_defrag_ipv6 nf_defrag_ipv4 nf_conntrack_rtcache nf_conntrack iptable_raw iptable_mangle iptable_filter ipt_ECN ip_tables crc_ccitt compat fuse sch_fq_pie sch_cake act_ipt em_nbyte sch_teql sch_htb sch_prio sch_pie sch_codel sch_gred em_meta cls_basic em_text sch_tbf sch_red sch_sfq sch_fq act_police em_cmp sch_dsmark act_skbedit act_mirred em_u32 cls_u32 cls_tcindex cls_flow cls_route cls_fw sch_hfsc sch_ingress ledtrig_usbdev ip6t_REJ
 E
CT nf_reject_ipv6 nf_log_ipv6 nf_log_common ip6table_raw ip6table_mangle ip6table_filter ip6_tables x_tables ifb zram lzo_decompress lzo_compress lz4_decompress lz4_compress zsmalloc usb_storage ehci_platform ehci_hcd sd_mod scsi_mod gpio_button_hotplug ext4 jbd2 mbcache usbcore nls_base usb_common crc16 crypto_hash
[  249.211641] CPU: 0 PID: 0 Comm: swapper Not tainted 4.1.13 #1
[  249.217434] Stack : 80378d20 00000000 00000001 803c0000 803b8ab0 803b8743 8035b52c 00000000
[  249.217434] 	  80413514 000000c8 00000004 0000000a 00000100 800a6110 803c7d04 803b0000
[  249.217434] 	  00000003 000000c8 8035edb4 803b3c44 00000100 800a473c 00000006 00000000
[  249.217434] 	  00000000 80410000 00000000 00000000 00000000 00000000 00000000 00000000
[  249.217434] 	  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[  249.217434] 	  ...
[  249.253511] Call Trace:
[  249.256003] [<80071f5c>] show_stack+0x50/0x84
[  249.260417] [<8008150c>] warn_slowpath_common+0xa0/0xd0
[  249.265693] [<80081568>] warn_slowpath_fmt+0x2c/0x38
[  249.270694] [<8026240c>] dev_watchdog+0x1dc/0x260
[  249.275456] [<800ad290>] call_timer_fn.isra.3+0x24/0x80
[  249.280735] [<800ad498>] run_timer_softirq+0x1ac/0x1ec
[  249.285936] [<80083b30>] __do_softirq+0x16c/0x298
[  249.290678] [<80083e7c>] irq_exit+0x54/0x70
[  249.294897] [<80060830>] ret_from_irq+0x0/0x4
[  249.299313] [<80060a80>] __r4k_wait+0x20/0x40
[  249.303709] [<800a189c>] cpu_startup_entry+0x114/0x13c
[  249.308904] [<803d5bc4>] start_kernel+0x464/0x484
[  249.313649]
[  249.315156] ---[ end trace 5936bede9e8ff3e6 ]---
[  249.319817] eth1: tx timeout
[  260.075531] eth1: tx timeout
[  275.075459] eth1: tx timeout
[  285.075418] eth1: tx timeout

Triggering a manual 'ifconfig eth1 down; ifconfig eth1 up; ifup wan' still restores connectivity with your patch, if it helps.

Conn
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list