[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <HE1PR04MB1145DAA9F214275D6489B06B96F80@HE1PR04MB1145.eurprd04.prod.outlook.com>
Date: Thu, 18 Oct 2018 16:49:26 +0000
From: Claudiu Manoil <claudiu.manoil@....com>
To: Daniel Walker <danielwa@...co.com>
CC: Hemant Ramdasi <hramdasi@...co.com>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>
Subject: RE: [danielwa@...co.com: Re: gianfar: Implement MAC reset and
reconfig procedure]
>-----Original Message-----
>From: Daniel Walker <danielwa@...co.com>
>Sent: Thursday, October 18, 2018 5:05 PM
>To: Claudiu Manoil <claudiu.manoil@....com>
>Cc: Hemant Ramdasi <hramdasi@...co.com>; netdev@...r.kernel.org
>Subject: Re: [danielwa@...co.com: Re: gianfar: Implement MAC reset and
>reconfig procedure]
>
[...]
>
>Here's some parts of the logs. I added a dump_stack() into adjust_link(). It
>does appear to be running, but it seems it's not working or not doing what you
>think it should be doing. The signature of the issue is below, you bring up the
>interface the first time and it works, then bring it down/up and no traffic.
>You can see in the second ping there is %100 packet loss.
>
>Seems the "Link is Up" lines indicate what adjust_link() changes.
>
>IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
>CPU: 0 PID: 24 Comm: kworker/0:1 Not tainted 3.14.0-rc3 #174
>Workqueue: events_power_efficient phy_state_machine
>Call Trace:
>[e81ffdb0] [c0008718] show_stack+0xfc/0x1bc (unreliable)
>[e81ffe00] [c0602168] dump_stack+0x78/0xa0
>[e81ffe10] [c0437b20] adjust_link+0x30/0x2b0
>[e81ffe50] [c0430f1c] phy_state_machine+0x428/0x47c
>[e81ffe70] [c0060a84] process_one_work+0x158/0x3c4
>[e81ffea0] [c0061120] worker_thread+0x138/0x384
>[e81ffed0] [c0068714] kthread+0xd0/0xe4
>[e81fff40] [c0011bc8] ret_from_kernel_thread+0x5c/0x64
>CPU: 0 PID: 24 Comm: kworker/0:1 Not tainted 3.14.0-rc3 #174
>Workqueue: events_power_efficient phy_state_machine
>Call Trace:
>[e81ffdb0] [c0008718] show_stack+0xfc/0x1bc (unreliable)
>[e81ffe00] [c0602168] dump_stack+0x78/0xa0
>[e81ffe10] [c0437b20] adjust_link+0x30/0x2b0
>[e81ffe50] [c0430e60] phy_state_machine+0x36c/0x47c
>[e81ffe70] [c0060a84] process_one_work+0x158/0x3c4
>[e81ffea0] [c0061120] worker_thread+0x138/0x384
>[e81ffed0] [c0068714] kthread+0xd0/0xe4
>[e81fff40] [c0011bc8] ret_from_kernel_thread+0x5c/0x64
>fsl-gianfar ff725000.ethernet eth1: Link is Up - 100Mbps/Full - flow control off
>IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
>PING 10.126.154.1 (10.126.154.1): 56 data bytes
>64 bytes from 10.126.154.1: seq=0 ttl=255 time=5.606 ms
>
>--- 10.126.154.1 ping statistics ---
>1 packets transmitted, 1 packets received, 0% packet loss
>round-trip min/avg/max = 5.606/5.606/5.606 ms
>CPU: 0 PID: 24 Comm: kworker/0:1 Not tainted 3.14.0-rc3 #174
>Workqueue: events_power_efficient phy_state_machine
>Call Trace:
>[e81ffdb0] [c0008718] show_stack+0xfc/0x1bc (unreliable)
>[e81ffe00] [c0602168] dump_stack+0x78/0xa0
>[e81ffe10] [c0437b20] adjust_link+0x30/0x2b0
>[e81ffe50] [c0430f1c] phy_state_machine+0x428/0x47c
>[e81ffe70] [c0060a84] process_one_work+0x158/0x3c4
>[e81ffea0] [c0061120] worker_thread+0x138/0x384
>[e81ffed0] [c0068714] kthread+0xd0/0xe4
>[e81fff40] [c0011bc8] ret_from_kernel_thread+0x5c/0x64
>CPU: 0 PID: 24 Comm: kworker/0:1 Not tainted 3.14.0-rc3 #174
>Workqueue: events_power_efficient phy_state_machine
>Call Trace:
>[e81ffdb0] [c0008718] show_stack+0xfc/0x1bc (unreliable)
>[e81ffe00] [c0602168] dump_stack+0x78/0xa0
>[e81ffe10] [c0437b20] adjust_link+0x30/0x2b0
>[e81ffe50] [c0430e60] phy_state_machine+0x36c/0x47c
>[e81ffe70] [c0060a84] process_one_work+0x158/0x3c4
>[e81ffea0] [c0061120] worker_thread+0x138/0x384
>[e81ffed0] [c0068714] kthread+0xd0/0xe4
>[e81fff40] [c0011bc8] ret_from_kernel_thread+0x5c/0x64
>fsl-gianfar ff725000.ethernet eth1: Link is Up - 100Mbps/Full - flow control off
>PING 10.126.154.1 (10.126.154.1): 56 data bytes
>
>--- 10.126.154.1 ping statistics ---
>1 packets transmitted, 0 packets received, 100% packet loss
I can only advise you to check whether the MACCFG2 register settings are consistent
at this point, when ping fails. You should check the I/F Mode bits (22-23) and the
Full Duplex bit (31), in big-endian format. If these do not match the 100Mbps full
duplex link mode, then it might be that another thread (probably doing reset_gfar)
changes MACCFG2 concurrently. I think MACCFG2 may be dumped with ethtool -d.
I can get my hands on a board no sooner than maybe next week.
-Claudiu
Powered by blists - more mailing lists