[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <0cd30d4517d548f35042a535fd994831@kapio-technology.com>
Date: Tue, 15 Nov 2022 12:31:59 +0100
From: netdev@...io-technology.com
To: Vladimir Oltean <olteanv@...il.com>
Cc: Ido Schimmel <idosch@...sch.org>, davem@...emloft.net,
kuba@...nel.org, netdev@...r.kernel.org,
Andrew Lunn <andrew@...n.ch>,
Florian Fainelli <f.fainelli@...il.com>,
Eric Dumazet <edumazet@...gle.com>,
Paolo Abeni <pabeni@...hat.com>,
open list <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH v8 net-next 0/2] mv88e6xxx: Add MAB offload support
On 2022-11-15 12:10, Vladimir Oltean wrote:
> On Tue, Nov 15, 2022 at 11:52:40AM +0100, netdev@...io-technology.com
> wrote:
>> I had a discussion with Jacub, which resulted in me sending a mail to
>> maintainers on this. The problem is shown below...
>>
>> the phy is marvell/6097/88e3082
>>
>> ------------[ cut here ]------------
>> WARNING: CPU: 0 PID: 332 at drivers/net/phy/phy.c:975
>> phy_error+0x28/0x54
>> Modules linked in:
>> CPU: 0 PID: 332 Comm: kworker/0:0 Tainted: G W 6.0.0
>> #17
>> Hardware name: Freescale i.MX27 (Device Tree Support)
>> Workqueue: events_power_efficient phy_state_machine
>> unwind_backtrace from show_stack+0x18/0x1c
>> show_stack from dump_stack_lvl+0x28/0x30
>> dump_stack_lvl from __warn+0xb8/0x114
>> __warn from warn_slowpath_fmt+0x80/0xbc
>> warn_slowpath_fmt from phy_error+0x28/0x54
>> phy_error from phy_state_machine+0xbc/0x218
>> phy_state_machine from process_one_work+0x17c/0x244
>> process_one_work from worker_thread+0x248/0x2cc
>> worker_thread from kthread+0xb0/0xbc
>> kthread from ret_from_fork+0x14/0x2c
>> Exception stack(0xc4a71fb0 to 0xc4a71ff8)
>> 1fa0: 00000000 00000000 00000000
>> 00000000
>> 1fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000
>> 00000000
>> 1fe0: 00000000 00000000 00000000 00000000 00000013 00000000
>> ---[ end trace 0000000000000000 ]---
>
> Was that email public on the lists? I don't see it...
Sorry, yes the public list was not added.
>
> The phy_error() is called from phy_state_machine() if one of
> phy_check_link_status() or phy_start_aneg() fails.
>
> Could you please print exactly the value of "err", as well as dig
> deeper
> to see which call is failing, all the way into the PHY driver?
It happens on upstart, so I would then have to hack the system upstart
to add trace.
I also have:
mv88e6085 1002b000.ethernet-1:04: switch 0x990 detected: Marvell
88E6097/88E6097F, revision 2
mv88e6085 1002b000.ethernet-1:04: configuring for fixed/rgmii-id link
mode
mv88e6085 1002b000.ethernet-1:04: Link is Up - 100Mbps/Full - flow
control off
mv88e6085 1002b000.ethernet-1:04 eth10 (uninitialized): PHY
[!soc!aipi@...20000!ethernet@...2b000!mdio!switch@...dio:00] driver
[Generic PHY] (irq=POLL)
mv88e6085 1002b000.ethernet-1:04 eth6 (uninitialized): PHY
[!soc!aipi@...20000!ethernet@...2b000!mdio!switch@...dio:01] driver
[Generic PHY] (irq=POLL)
mv88e6085 1002b000.ethernet-1:04 eth9 (uninitialized): PHY
[!soc!aipi@...20000!ethernet@...2b000!mdio!switch@...dio:02] driver
[Generic PHY] (irq=POLL)
mv88e6085 1002b000.ethernet-1:04 eth5 (uninitialized): PHY
[!soc!aipi@...20000!ethernet@...2b000!mdio!switch@...dio:03] driver
[Generic PHY] (irq=POLL)
mv88e6085 1002b000.ethernet-1:04 eth8 (uninitialized): PHY
[!soc!aipi@...20000!ethernet@...2b000!mdio!switch@...dio:04] driver
[Generic PHY] (irq=POLL)
mv88e6085 1002b000.ethernet-1:04 eth4 (uninitialized): PHY
[!soc!aipi@...20000!ethernet@...2b000!mdio!switch@...dio:05] driver
[Generic PHY] (irq=POLL)
mv88e6085 1002b000.ethernet-1:04 eth7 (uninitialized): PHY
[!soc!aipi@...20000!ethernet@...2b000!mdio!switch@...dio:06] driver
[Generic PHY] (irq=POLL)
mv88e6085 1002b000.ethernet-1:04 eth3 (uninitialized): PHY
[!soc!aipi@...20000!ethernet@...2b000!mdio!switch@...dio:07] driver
[Generic PHY] (irq=POLL)
mv88e6085 1002b000.ethernet-1:04 eth2 (uninitialized): PHY
[!soc!aipi@...20000!ethernet@...2b000!mdio!switch@...dioe:08] driver
[Marvell 88E1112] (irq=174)
mv88e6085 1002b000.ethernet-1:04 eth1 (uninitialized): PHY
[!soc!aipi@...20000!ethernet@...2b000!mdio!switch@...dioe:09] driver
[Marvell 88E1112] (irq=175)
after this and adding the ifaces to the bridge, it continues like:
br0: port 1(eth10) entered blocking state
br0: port 1(eth10) entered disabled state
br0: port 2(eth6) entered blocking state
br0: port 2(eth6) entered disabled state
device eth6 entered promiscuous mode
device eth10 entered promiscuous mode
br0: port 3(eth9) entered blocking state
br0: port 3(eth9) entered disabled state
device eth9 entered promiscuous mode
br0: port 4(eth5) entered blocking state
br0: port 4(eth5) entered disabled state
device eth5 entered promiscuous mode
br0: port 5(eth8) entered blocking state
br0: port 5(eth8) entered disabled state
device eth8 entered promiscuous mode
br0: port 6(eth4) entered blocking state
br0: port 6(eth4) entered disabled state
mv88e6085 1002b000.ethernet-1:04: Timeout while waiting for switch
mv88e6085 1002b000.ethernet-1:04: port 0 failed to add 9a:af:03:f1:bd:0a
vid 1 to fdb: -110
device eth4 entered promiscuous mode
br0: port 7(eth7) entered blocking state
br0: port 7(eth7) entered disabled state
I don't know if that gives ay clues...?
Otherwise I have to take more time to see what I can dig out. The
easiest for me is then to
add some printk statements giving targeted information if told what and
where...
>
> Easiest way to do that would probably be something like:
>
> $ trace-cmd record -e mdio sleep 10 &
> ... do your stuff ...
> $ trace-cmd report
> kworker/u4:3-337 [001] 59.054741: mdio_access:
> 0000:00:00.3 read phy:0x13 reg:0x01 val:0x7949
> kworker/u4:3-337 [001] 59.054941: mdio_access:
> 0000:00:00.3 read phy:0x13 reg:0x09 val:0x0700
> kworker/u4:3-337 [001] 59.055262: mdio_access:
> 0000:00:00.3 read phy:0x13 reg:0x0a val:0x4000
> kworker/u4:3-337 [001] 60.075808: mdio_access:
> 0000:00:00.3 read phy:0x13 reg:0x1c val:0x3005
>
> "val" will be negative when there is an error. This is to see quicker
> what fails,
> and if some MDIO access ever works.
>
> If you don't want to enable CONFIG_FTRACE or install trace-cmd, you
> could also probably do the debugging manually.
Powered by blists - more mailing lists