rk3188 emac stuck at high load

Caesar Wang wxt at rock-chips.com
Mon Jan 25 19:41:38 PST 2016


Hi Shuyu,


在 2016年01月26日 11:33, Shuyu Wei 写道:
> Hi Caesar,
> I checked /sys/kernel/debug/clk/clk_summary, sclk_macref is under dpll.
> Besides, the problem exists even if I build the kernel with cpufreq disabled.
> Maybe my previous patch is right. Shall I resend it to get it merged?

Thanks your tests. Yep, up to you.
Can you resend with cc the linux-rockchip at lists.infradead.org?


> ----------------------------------------
>> From: shuyu.w at outlook.com
>> To: caesar.upstream at gmail.com
>> CC: linux-rockchip at lists.infradead.org; heiko at sntech.de
>> Subject: RE: rk3188 emac stuck at high load
>> Date: Mon, 25 Jan 2016 13:33:02 +0000
>>
>> Hi Caesar,
>>
>> Thanks for your reply, I thought I have fixed the issue by this patch:
>> http://lists.infradead.org/pipermail/linux-rockchip/2016-January/006412.html
>> Maybe I sent it to the wrong maintainer so it didn't get noticed.
>> I'll try your solution and report as soon as possible.
>> ----------------------------------------
>>> Subject: Re: rk3188 emac stuck at high load
>>> To: shuyu.w at outlook.com
>>> CC: linux-rockchip at lists.infradead.org; heiko at sntech.de
>>> From: caesar.upstream at gmail.com
>>> Date: Mon, 25 Jan 2016 20:49:36 +0800
>>>
>>> Hi Shuyu,
>>>
>>> Thanks your report! Do you have fixed this issue?
>>> I guess that caused by the cpufreq.
>>>
>>> if you run 'cat sys/kernel/debug/clk/clk_summary' to check the emac
>>> parent clock, Is it the APLL?
>>> Maybe you can change the parent clock to fix this issue if it's.
>>>
>>> Fox example:
>>> uboot:
>>> https://github.com/rockchip-linux/u-boot/commit/d64ef6b272d84c92bd02a7925f500880633c8599
>>>
>>> kernel:
>>> https://patchwork.kernel.org/patch/8108231/
>>>
>>>
>>> I try to install many somethings with ubuntu os on rk3036. (that's also
>>> working with the emac..)
>>>
>>> .....
>>> Get:35 http://ports.ubuntu.com/ubuntu-ports/ wily/main
>>> libpython2.7-minimal armhf 2.7.10-4ubuntu1 [338 kB]
>>> Get:36 http://ports.ubuntu.com/ubuntu-ports/ wily/main
>>> libpython2.7-stdlib armhf 2.7.10-4ubuntu1 [1750 kB]
>>> Get:37 http://ports.ubuntu.com/ubuntu-ports/ wily/main libpython2.7
>>> armhf 2.7.10-4ubuntu1 [935 kB]
>>> Get:38 http://ports.ubuntu.com/ubuntu-ports/ wily/main vim-runtime all
>>> 2:7.4.712-2ubuntu4 [4984 kB]
>>> 85% [38 vim-runtime 4405 kB/4984 kB 88%] 195 kB/s 11s[ 314.685641] BUG:
>>> Bad page state in process swapper/0 pfn:7e0
>>> [ 314.691607] page:dffcee00 count:-1 mapcount:0 mapping: (null) index:0x0
>>> [ 314.698311] flags: 0x0()
>>> [ 314.700866] page dumped because: nonzero _count
>>> 88% [38 vim-runtime 4738 kB/4984 kB 95%] 195 kB/s 9s[ 316.096013]
>>> skbuff: skb_over_panic: text:c04ae19c len:2878 p>
>>> [ 316.108471] ------------[ cut here ]------------
>>> [ 316.113109] kernel BUG at
>>> /home/wxt/work/android/brillo/kernel/net/core/skbuff.c:102!
>>> [ 316.120938] Internal error: Oops - BUG: 0 [#1] SMP ARM
>>> [ 316.126079] Modules linked in:
>>> [ 316.129166] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G B
>>> 4.4.0-rc8+ #35
>>> [ 316.136732] Hardware name: Rockchip (Device Tree)
>>> [ 316.141444] task: c0f0c0b0 ti: c0f00000 task.ti: c0f00000
>>> [ 316.146862] PC is at skb_panic+0x60/0x6c
>>> [ 316.150799] LR is at _raw_spin_unlock_irqrestore+0x1c/0x24
>>> [ 316.156291] pc : [<c093f694>] lr : [<c0947fb0>] psr: 60000113
>>> [ 316.156291] sp : c0f01d88 ip : c0f01c08 fp : c0f01dbc
>>> [ 316.167761] r10: df718540 r9 : deabbcc0 r8 : 000003a0
>>> [ 316.172989] r7 : c0c3ba0a r6 : debb0c00 r5 : debb0c64 r4 : debb17a2
>>> [ 316.179517] r3 : c0e933b8 r2 : 00000000 r1 : 60000113 r0 : 0000007d
>>> ...
>>> [ 316.372994] [<c093f694>] (skb_panic) from [<c07353b8>]
>>> (skb_put+0x54/0x60)
>>> [ 316.379888] [<c07353b8>] (skb_put) from [<c04ae19c>]
>>> (arc_emac_poll+0x26c/0x4bc)
>>> [ 316.387299] [<c04ae19c>] (arc_emac_poll) from [<c07456b4>]
>>> (net_rx_action+0xf4/0x308)
>>> [ 316.395146] [<c07456b4>] (net_rx_action) from [<c012365c>]
>>> (__do_softirq+0x10c/0x2d8)
>>> [ 316.402991] [<c012365c>] (__do_softirq) from [<c0123adc>]
>>> (irq_exit+0x94/0x104)
>>> [ 316.410313] [<c0123adc>] (irq_exit) from [<c016a778>]
>>> (__handle_domain_irq+0x98/0xbc)
>>> [ 316.418156] [<c016a778>] (__handle_domain_irq) from [<c010143c>]
>>> (gic_handle_irq+0x58/0xa0)
>>> [ 316.426514] [<c010143c>] (gic_handle_irq) from [<c010be94>]
>>> (__irq_svc+0x54/
>>>
>>> 在 2015年12月24日 23:52, Shuyu Wei 写道:
>>>> Hi,
>>>> I'm testing Radxa Rock Pro board with mainline kernel 4.4.0-rc6.
>>>> The problem can be reproduced by simultaneously wget two large files at high speed to /dev/null.
>>>>
>>>> $wget https://192.168.1.1/file.bin -O /dev/null -q &
>>>> $wget https://192.168.1.1/file.bin -O /dev/null
>>>>
>>>> or open two sftp session to download two large files to /dev/null.
>>>>
>>>> Some addtional information that might help:
>>>> Downloading from encrypted https links or sftp server triggers the problem much easier.
>>>> Disabling SMP in kernel seems to fix the problem.
>>>> Sometimes the emac just stops sending and receiving frames, sometimes it produces kernel panics like below.
>>>>
>>>> [ 2191.975729] BUG: Bad page state in process swapper/0 pfn:8d960
>>>> [ 2191.982354] page:ef463180 count:-1 mapcount:0 mapping: (null) index:0x0
>>>> [ 2191.989047] flags: 0x0()
>>>> [ 2191.991594] page dumped because: nonzero _count
>>>> [ 2191.996127] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.4.0-rc6 #114
>>>> [ 2192.002475] Hardware name: Rockchip (Device Tree)
>>>> [ 2192.007174] Backtrace:
>>>> [ 2192.009658] [<c00134d4>] (dump_backtrace) from [<c0013680>] (show_stack+0x18/0x1c)
>>>> [ 2192.017220] r7:c051c4f8 r6:ef463180 r5:c05b7000 r4:00000000
>>>> [ 2192.022948] [<c0013668>] (show_stack) from [<c0219d90>] (dump_stack+0x90/0xa0)
>>>> [ 2192.030176] [<c0219d00>] (dump_stack) from [<c00b2cd4>] (bad_page+0xdc/0x12c)
>>>> [ 2192.037302] r5:c059a100 r4:c05f430c
>>>> [ 2192.040913] [<c00b2bf8>] (bad_page) from [<c00b606c>] (get_page_from_freelist+0x388/0x95c)
>>>> [ 2192.049166] r9:00000008 r8:ef463180 r7:c051c4d0 r6:00000000 r5:00000000 r4:c051c4e4
>>>> [ 2192.056982] [<c00b5ce4>] (get_page_from_freelist) from [<c00b6880>] (__alloc_pages_nodemask+0xd8/0x8e8)
>>>> [ 2192.066362] r10:c001b068 r9:00000000 r8:ee0b02b0 r7:60000113 r6:00000003 r5:02095220
>>>> [ 2192.074254] r4:c05ca1c0
>>>> [ 2192.076809] [<c00b67a8>] (__alloc_pages_nodemask) from [<c00b7140>] (__alloc_page_frag+0xb0/0x160)
>>>> [ 2192.085757] r10:c001b068 r9:00000000 r8:ee0b02b0 r7:60000113 r6:02080020 r5:00000740
>>>> [ 2192.093650] r4:eedbc884
>>>> [ 2192.096207] [<c00b7090>] (__alloc_page_frag) from [<c03273b4>] (__netdev_alloc_skb+0xa0/0x104)
>>>> [ 2192.104806] r7:60000113 r6:eedbc884 r5:ee0b0000 r4:00000740
>>>> [ 2192.110525] [<c0327314>] (__netdev_alloc_skb) from [<c02aac00>] (arc_emac_poll+0x318/0x57c)
>>>> [ 2192.118865] r9:00000000 r8:ee0b02b0 r7:0000019c r6:ee163780 r5:00000670 r4:ee0b0000
>>>> [ 2192.126683] [<c02aa8e8>] (arc_emac_poll) from [<c0339ed8>] (net_rx_action+0x1f0/0x2ec)
>>>> [ 2192.134590] r10:c0599df8 r9:c059a100 r8:00073760 r7:0000012c r6:00000028 r5:c02aa8e8
>>>> [ 2192.142483] r4:ee0b04e0
>>>> [ 2192.145040] [<c0339ce8>] (net_rx_action) from [<c0026f5c>] (__do_softirq+0x134/0x258)
>>>> [ 2192.152860] r10:c059a080 r9:40000003 r8:00000003 r7:00000100 r6:c0598000 r5:c059a08c
>>>> [ 2192.160751] r4:00000000
>>>> [ 2192.163303] [<c0026e28>] (__do_softirq) from [<c0027344>] (irq_exit+0xb8/0x120)
>>>> [ 2192.170604] r10:c04818a4 r9:c059a4a0 r8:ee808000 r7:00000000 r6:00000000 r5:0000001a
>>>> [ 2192.178496] r4:c05943bc
>>>> [ 2192.181051] [<c002728c>] (irq_exit) from [<c00656a4>] (__handle_domain_irq+0x68/0xbc)
>>>> [ 2192.188871] r5:0000001a r4:c05943bc
>>>> [ 2192.192479] [<c006563c>] (__handle_domain_irq) from [<c0009438>] (gic_handle_irq+0x40/0x78)
>>>> [ 2192.200818] r9:c059a4a0 r8:f0803100 r7:f0802100 r6:c0599f00 r5:f080210c r4:c059a87c
>>>> [ 2192.208630] [<c00093f8>] (gic_handle_irq) from [<c0014214>] (__irq_svc+0x54/0x70)
>>>> [ 2192.216105] Exception stack(0xc0599f00 to 0xc0599f48)
>>>> [ 2192.221161] 9f00: 00000001 00000000 00000000 c001e940 c0598000 c059a454 00000000 c05ca291
>>>> [ 2192.229336] 9f20: 00000000 c059a4a0 c04818a4 c0599f5c c0599f60 c0599f50 c0010208 c001020c
>>>> [ 2192.237505] 9f40: 60000013 ffffffff
>>>> [ 2192.240990] r9:c059a4a0 r8:00000000 r7:c0599f34 r6:ffffffff r5:60000013 r4:c001020c
>>>> [ 2192.248810] [<c00101cc>] (arch_cpu_idle) from [<c005bbec>] (default_idle_call+0x28/0x34)
>>>> [ 2192.256899] [<c005bbc4>] (default_idle_call) from [<c005be60>] (cpu_startup_entry+0x214/0x270)
>>>> [ 2192.265515] [<c005bc4c>] (cpu_startup_entry) from [<c047a6f4>] (rest_init+0x80/0x84)
>>>> [ 2192.273248] r7:ffffffff
>>>> [ 2192.275808] [<c047a674>] (rest_init) from [<c055fca0>] (start_kernel+0x348/0x354)
>>>> [ 2192.283288] [<c055f958>] (start_kernel) from [<60008078>] (0x60008078)
>>>> [ 2192.289798] Disabling lock debugging due to kernel taint
>>>> [ 2192.300779] rockchip_emac 10204000.ethernet eth0: BUG! Tx Ring full when queue awake!
>>>>
>>>> I'm glad to provide more information if needed.
>>>>
>>>> Shuyu Wei
>>>>
>>>> _______________________________________________
>>>> Linux-rockchip mailing list
>>>> Linux-rockchip at lists.infradead.org
>>>> http://lists.infradead.org/mailman/listinfo/linux-rockchip
>>>
>>> --
>>> Thanks,
>>> Caesar
>>>
>  		 	   		  
> _______________________________________________
> Linux-rockchip mailing list
> Linux-rockchip at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-rockchip


-- 
caesar wang | software engineer | wxt at rock-chip.com





More information about the Linux-rockchip mailing list