[FS#299] ZBT-WG3526 - WIFI kernel/driver on high load (mt7603_mac.c:1205 mt7603_mac_work)

LEDE Bugs lede-bugs at lists.infradead.org
Wed Nov 23 02:54:46 PST 2016


A new Flyspray task has been opened.  Details are below. 

User who did this - camel (camel) 

Attached to Project - LEDE Project
Summary - ZBT-WG3526 - WIFI kernel/driver on high load (mt7603_mac.c:1205 mt7603_mac_work)
Task Type - Bug Report
Category - Base system
Status - Unconfirmed
Assigned To - 
Operating System - All
Severity - High
Priority - Very Low
Reported Version - Trunk
Due in Version - Undecided
Due Date - Undecided
Details - high load on wifi 2,4Ghz will crash kernel/driver and afterwards the throughput is very poor

Steps to reproduce the error:


easy to reproduce within 1-2 minute:
1.) install trunk
2.) install iperf
3.) activate wifi and use 2,4Ghz on client connection (default config, also the same with different wifi settings)
4. generate traffic with "iperf" and  you will get kernel/driver crash within 1-2 minute
(server): iperf -s -i 1 -w 6M
(client): iperf -c 192.168.1.19 -i 1 -w 6M -l 2M


Wed Nov 23 09:30:07 2016 kern.warn kernel: [ 2507.350000] ------------[ cut here ]------------
Wed Nov 23 09:30:07 2016 kern.warn kernel: [ 2507.350000] WARNING: CPU: 1 PID: 3850 at /home/buildbot/slave-lede-local/ramips_mt7621/build/build_dir/target-mipsel_24kc_musl-1.1.15/linux-ramips_mt7621/mt76-2016-08-25/mt7603_mac.c:1208 mt7603_mac_work+0x200/0x27c [mt7603e]()
Wed Nov 23 09:30:07 2016 kern.warn kernel: [ 2507.370000] Modules linked in: pppoe ppp_async iptable_nat pppox ppp_generic nf_nat_ipv4 nf_conntrack_ipv6 nf_conntrack_ipv4 ipt_REJECT ipt_MASQUERADE xt_time xt_tcpudp xt_state xt_nat xt_multiport xt_mark xt_mac xt_limit xt_id xt_conntrack xt_comment xt_TCPMSS xt_REDIRECT xt_LOG xt_CT 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_fWed Nov 23 09:30:07 2016 kern.warn kernel: [ 2507.440000] CPU: 1 PID: 3850 Comm: kworker/u8:2 Not tainted 4.4.32 #0
Wed Nov 23 09:30:07 2016 kern.warn kernel: [ 2507.450000] Workqueue: phy1 mt7603_mac_work [mt7603e]
Wed Nov 23 09:30:07 2016 kern.warn kernel: [ 2507.450000] Stack : 8e973880 80480000 803fdcfc 000004b8 8f21d324 00000000 8fc04614 8e973898
Wed Nov 23 09:30:07 2016 kern.warn kernel: [ 2507.450000]         00000088 80063e90 803fdcfc 00000001 00000f0a 804d367c 80419780 8ea89d54
Wed Nov 23 09:30:07 2016 kern.warn kernel: [ 2507.450000]         80480000 80061bdc 80480000 804f0000 80488298 8048829c 80402610 8ea89d54
Wed Nov 23 09:30:07 2016 kern.warn kernel: [ 2507.450000]         80480000 80041414 8fc04614 8ea89d8c 00000447 00000000 00000000 00a89d74
Wed Nov 23 09:30:07 2016 kern.warn kernel: [ 2507.450000]         8f21d124 8ff49f00 8ff49e00 31796870 00000000 00000000 00000000 00000000
Wed Nov 23 09:30:07 2016 kern.warn kernel: [ 2507.450000]         ...
Wed Nov 23 09:30:07 2016 kern.warn kernel: [ 2507.490000] Call Trace:
Wed Nov 23 09:30:07 2016 kern.warn kernel: [ 2507.490000] [] show_stack+0x50/0x84
Wed Nov 23 09:30:07 2016 kern.warn kernel: [ 2507.490000] [] dump_stack+0x84/0xbc
Wed Nov 23 09:30:07 2016 kern.warn kernel: [ 2507.500000] [] warn_slowpath_common+0xa0/0xd0
Wed Nov 23 09:30:07 2016 kern.warn kernel: [ 2507.500000] [] warn_slowpath_null+0x18/0x24
Wed Nov 23 09:30:07 2016 kern.warn kernel: [ 2507.510000] [] mt7603_mac_work+0x200/0x27c [mt7603e]
Wed Nov 23 09:30:07 2016 kern.warn kernel: [ 2507.510000] [] process_one_work+0x214/0x358
Wed Nov 23 09:30:07 2016 kern.warn kernel: [ 2507.520000] [] worker_thread+0x2d8/0x440
Wed Nov 23 09:30:07 2016 kern.warn kernel: [ 2507.520000] [] kthread+0xd8/0xec
Wed Nov 23 09:30:07 2016 kern.warn kernel: [ 2507.530000] [] ret_from_kernel_thread+0x14/0x1c
Wed Nov 23 09:30:07 2016 kern.warn kernel: [ 2507.530000]
Wed Nov 23 09:30:07 2016 kern.warn kernel: [ 2507.540000] ---[ end trace db1272735385a729 ]---




---------------------------------------------
System
Hostname	lede
Model	ZBT-WG3526
Firmware Version	LEDE Reboot r0+2292 / LuCI Master (git-16.324.51057-1c27f6b) from 22.11.2016
Kernel Version	4.4.32
lede-ramips-mt7621-zbt-wg3526-squashfs-sysupgra..> 22-Nov-2016 12:56             3932323



OpenWrt version: LEDE TRUNK

dmesg and/or logread output
What is expected vs. what actually happens


source code:

void mt7603_mac_work(struct work_struct *work)
{
	struct mt7603_dev *dev = container_of(work, struct mt7603_dev, mac_work.work);
	struct sk_buff *skb;
	int time = MT7603_WATCHDOG_TIME;

	spin_lock_bh(&dev->status_lock);
	while ((skb = skb_peek(&dev->status_list)) != NULL) {
		struct mt7603_cb *cb = mt7603_skb_cb(skb);
		if (time_is_after_jiffies(cb->jiffies + MT7603_STATUS_TIMEOUT))
			break;

		__skb_unlink(skb, &dev->status_list);
		mt7603_skb_done(dev, skb,
				MT7603_CB_TXS_FAILED | MT7603_CB_TXS_DONE);
	}
	spin_unlock_bh(&dev->status_lock);

	mutex_lock(&dev->mutex);

	if (WARN_ON_ONCE(mt7603_watchdog_check(dev, &dev->tx_dma_check,
					       RESET_CAUSE_TX_BUSY,
					       mt7603_tx_dma_busy)) ||
	    WARN_ON_ONCE(mt7603_watchdog_check(dev, &dev->rx_dma_check,
					       RESET_CAUSE_RX_BUSY,
					       mt7603_rx_dma_busy)) ||
	    WARN_ON_ONCE(mt7603_watchdog_check(dev, &dev->tx_hang_check,
					       RESET_CAUSE_TX_HANG,
					       mt7603_tx_hang)) ||
	    WARN_ON_ONCE(mt7603_watchdog_check(dev, &dev->rx_pse_check,
					       RESET_CAUSE_RX_PSE_BUSY,
					       mt7603_rx_pse_busy)) ||
	    WARN_ON_ONCE(mt7603_watchdog_check(dev, &dev->beacon_check,
					       RESET_CAUSE_BEACON_STUCK,
THIS LINE IS: 1208 ->
					       NULL))) {
		dev->beacon_check = 0;
		dev->tx_dma_check = 0;
		dev->tx_hang_check = 0;
		dev->rx_dma_check = 0;
		dev->rx_pse_check = 0;
		dev->rx_dma_idx = ~0;
		memset(dev->tx_dma_idx, 0xff, sizeof(dev->tx_dma_idx));
		mt7603_mac_watchdog_reset(dev);
	}



 

More information can be found at the following URL:
https://bugs.lede-project.org/index.php?do=details&task_id=299



More information about the lede-bugs mailing list