From: Tobias Waldekranz <tobias@waldekranz.com>
To: "Russell King (Oracle)" <linux@armlinux.org.uk>
Cc: davem@davemloft.net, kuba@kernel.org, andrew@lunn.ch,
f.fainelli@gmail.com, olteanv@gmail.com, netdev@vger.kernel.org,
chris.packham@alliedtelesis.co.nz, pabeni@redhat.com,
marek.behun@nic.cz
Subject: Re: [PATCH v2 net 3/4] net: dsa: mv88e6xxx: Never force link on in-band managed MACs
Date: Sat, 04 Jan 2025 22:37:00 +0100 [thread overview]
Message-ID: <87pll26z2b.fsf@waldekranz.com> (raw)
In-Reply-To: <Z3bIF7xaXrje79D8@shell.armlinux.org.uk>
On tor, jan 02, 2025 at 17:08, "Russell King (Oracle)" <linux@armlinux.org.uk> wrote:
> On Thu, Jan 02, 2025 at 02:06:32PM +0100, Tobias Waldekranz wrote:
>> On tor, jan 02, 2025 at 10:31, "Russell King (Oracle)" <linux@armlinux.org.uk> wrote:
>> > On Thu, Dec 19, 2024 at 01:30:42PM +0100, Tobias Waldekranz wrote:
>> >> NOTE: This issue was addressed in the referenced commit, but a
>> >> conservative approach was chosen, where only 6095, 6097 and 6185 got
>> >> the fix.
>> >>
>> >> Before the referenced commit, in the following setup, when the PHY
>> >> detected loss of link on the MDI, mv88e6xxx would force the MAC
>> >> down. If the MDI-side link was then re-established later on, there was
>> >> no longer any MII link over which the PHY could communicate that
>> >> information back to the MAC.
>> >>
>> >> .-SGMII/USXGMII
>> >> |
>> >> .-----. v .-----. .--------------.
>> >> | MAC +---+ PHY +---+ MDI (Cu/SFP) |
>> >> '-----' '-----' '--------------'
>> >>
>> >> Since this a generic problem on all MACs connected to a SERDES - which
>> >> is the only time when in-band-status is used - move all chips to a
>> >> common mv88e6xxx_port_sync_link() implementation which avoids forcing
>> >> links on _all_ in-band managed ports.
>> >>
>> >> Fixes: 4efe76629036 ("net: dsa: mv88e6xxx: Don't force link when using in-band-status")
>> >> Signed-off-by: Tobias Waldekranz <tobias@waldekranz.com>
>> >
>> > I'm feeling uneasy about this change.
>> >
>> > The history of the patch you refer to is - original v1:
>> >
>> > https://lore.kernel.org/r/20201013021858.20530-2-chris.packham@alliedtelesis.co.nz
>> >
>> > When v3 was submitted, it was unchanged:
>> >
>> > https://lore.kernel.org/r/20201020034558.19438-2-chris.packham@alliedtelesis.co.nz
>> >
>> > Both of these applied the in-band-status thing to all Marvell DSA
>> > switches, but as Marek states here:
>> >
>> > https://lore.kernel.org/r/20201020165115.3ecfd601@nic.cz
>>
>> Thanks for that context!
>>
>> > doing so breaks last least one Marvell DSA switch (88E6390). Hence why
>> > this approach is taken, rather than not forcing the link status on all
>> > DSA switches.
>> >
>> > Your patch appears to be reverting us back to what was effectively in
>> > Chris' v1 patch from back then, so I don't think we can accept this
>> > change. Sorry.
>>
>> Before I abandon this broader fix, maybe you can help me understand
>> something:
>>
>> If a user explicitly selects `managed = "in-band-status"`, why would we
>> ever interpret that as "let's force the MAC's settings according to what
>> the PHY says"? Is that not what `managed = "auto"` is for?
>
> You seem confused with that point, somehow confusing the calls to
> mac_link_up()/mac_link_down() when using in-band-status with something
> that a PHY would indicate. No, that's just wrong.
>
> If using in-band-status, these calls will be made in response to what
> the PCS says the link state is, possibly in conjunction with a PHY if
> there is a PHY present. Whether the PCS state gets forwarded to the MAC
> is hardware specific, and we have at least one DSA switch where this
> doesn't appear happen.
>
> Please realise that there are _three_ distinct modules here:
>
> - The MAC
> - The PCS
> - The PHY or media
Right, I sloppily used "PHY" to refer to the link partner on the other
end of the SERDES. I realize that the remote PCS does not have to
reside within a PHY.
> and the managed property is about whether in-band signalling is used
> from the PCS towards the media, not from the PCS towards the MAC.
>
> So, if the MAC doesn't get updated with the PCS' link state, then
> mac_link_up()/mac_link_down() need to do that manually, even if the
> link from the PCS towards the media is using in-band signalling.
>
> I think you're confusing in-band-status as meaning that the MAC
> gets automatically updated with the PCS media-side link state -
> the DT property has no bearing on that.
If `managed` does not declare a hardware capability of the controller,
then what information does it convey that is not already present in the
`phy-connection-type`?
E.g. what does it mean to have an SGMII link where in-band signaling is
not used? Is that not part of what defines SGMII?
I.e. could you provide an example `$TYPE`, where both of the following
configs are valid, and what the difference between the two would be?
ð0 {
phy-connection-type = "$TYPE";
managed = "auto";
};
ð0 {
phy-connection-type = "$TYPE";
managed = "in-band-status";
};
> Thanks.
Thank you for taking the time to explain!
next prev parent reply other threads:[~2025-01-04 21:37 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-19 12:30 [PATCH v2 net 0/4] net: dsa: mv88e6xxx: Amethyst (6393X) fixes Tobias Waldekranz
2024-12-19 12:30 ` [PATCH v2 net 1/4] net: dsa: mv88e6xxx: Improve I/O related error logging Tobias Waldekranz
2024-12-19 13:41 ` Andrew Lunn
2024-12-19 14:32 ` Vladimir Oltean
2024-12-19 12:30 ` [PATCH v2 net 2/4] net: dsa: mv88e6xxx: Give chips more time to activate their PPUs Tobias Waldekranz
2024-12-19 13:41 ` Andrew Lunn
2024-12-19 12:30 ` [PATCH v2 net 3/4] net: dsa: mv88e6xxx: Never force link on in-band managed MACs Tobias Waldekranz
2024-12-19 13:43 ` Andrew Lunn
2025-01-02 10:31 ` Russell King (Oracle)
2025-01-02 13:06 ` Tobias Waldekranz
2025-01-02 17:08 ` Russell King (Oracle)
2025-01-04 21:37 ` Tobias Waldekranz [this message]
2025-01-04 22:09 ` Russell King (Oracle)
2025-01-04 23:16 ` Tobias Waldekranz
2025-01-05 10:41 ` Russell King (Oracle)
2025-01-05 23:30 ` Tobias Waldekranz
2025-01-06 8:20 ` Russell King (Oracle)
2025-01-06 14:39 ` Tobias Waldekranz
2024-12-19 12:30 ` [PATCH v2 net 4/4] net: dsa: mv88e6xxx: Limit rsvd2cpu policy to user ports on 6393X Tobias Waldekranz
2024-12-19 13:44 ` Andrew Lunn
2024-12-19 14:05 ` Vladimir Oltean
2024-12-19 14:14 ` Vladimir Oltean
2024-12-19 14:34 ` Tobias Waldekranz
2024-12-19 14:42 ` Vladimir Oltean
2024-12-19 14:52 ` Vladimir Oltean
2024-12-19 15:02 ` Tobias Waldekranz
2024-12-19 14:29 ` Vladimir Oltean
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87pll26z2b.fsf@waldekranz.com \
--to=tobias@waldekranz.com \
--cc=andrew@lunn.ch \
--cc=chris.packham@alliedtelesis.co.nz \
--cc=davem@davemloft.net \
--cc=f.fainelli@gmail.com \
--cc=kuba@kernel.org \
--cc=linux@armlinux.org.uk \
--cc=marek.behun@nic.cz \
--cc=netdev@vger.kernel.org \
--cc=olteanv@gmail.com \
--cc=pabeni@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).