Messages in this thread |  | | Date | Tue, 15 Nov 2022 12:31:59 +0100 | From | netdev@kapio-te ... | 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@kapio-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@10020000!ethernet@1002b000!mdio!switch@4!mdio:00] driver [Generic PHY] (irq=POLL) mv88e6085 1002b000.ethernet-1:04 eth6 (uninitialized): PHY [!soc!aipi@10020000!ethernet@1002b000!mdio!switch@4!mdio:01] driver [Generic PHY] (irq=POLL) mv88e6085 1002b000.ethernet-1:04 eth9 (uninitialized): PHY [!soc!aipi@10020000!ethernet@1002b000!mdio!switch@4!mdio:02] driver [Generic PHY] (irq=POLL) mv88e6085 1002b000.ethernet-1:04 eth5 (uninitialized): PHY [!soc!aipi@10020000!ethernet@1002b000!mdio!switch@4!mdio:03] driver [Generic PHY] (irq=POLL) mv88e6085 1002b000.ethernet-1:04 eth8 (uninitialized): PHY [!soc!aipi@10020000!ethernet@1002b000!mdio!switch@4!mdio:04] driver [Generic PHY] (irq=POLL) mv88e6085 1002b000.ethernet-1:04 eth4 (uninitialized): PHY [!soc!aipi@10020000!ethernet@1002b000!mdio!switch@4!mdio:05] driver [Generic PHY] (irq=POLL) mv88e6085 1002b000.ethernet-1:04 eth7 (uninitialized): PHY [!soc!aipi@10020000!ethernet@1002b000!mdio!switch@4!mdio:06] driver [Generic PHY] (irq=POLL) mv88e6085 1002b000.ethernet-1:04 eth3 (uninitialized): PHY [!soc!aipi@10020000!ethernet@1002b000!mdio!switch@4!mdio:07] driver [Generic PHY] (irq=POLL) mv88e6085 1002b000.ethernet-1:04 eth2 (uninitialized): PHY [!soc!aipi@10020000!ethernet@1002b000!mdio!switch@4!mdioe:08] driver [Marvell 88E1112] (irq=174) mv88e6085 1002b000.ethernet-1:04 eth1 (uninitialized): PHY [!soc!aipi@10020000!ethernet@1002b000!mdio!switch@4!mdioe: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.
|  |