From: Samu Nuutamo <samu.nuutamo@vincit.fi>
To: netdev@vger.kernel.org
Cc: Andrew Lunn <andrew@lunn.ch>,
Vivien Didelot <vivien.didelot@gmail.com>,
Florian Fainelli <f.fainelli@gmail.com>,
"David S. Miller" <davem@davemloft.net>
Subject: Regression: mv88e6xxx packet loss after 4.18's PHYLINK merge
Date: Mon, 14 Jan 2019 13:34:44 +0200 [thread overview]
Message-ID: <20190114113444.GB16632@samu-ThinkPad-T480s> (raw)
Hi,
We have an imx6q-b450v3 board that has one of the switch ports configured as a
fixed link. After upgrading the kernel to version 4.18 the link has experienced
a small amount of packet loss, around 0.15%.
The issue was bisected to a commit: aab9c4067d23 net: dsa: Plug in PHYLINK support
After enabling debug we could see that the new phylink code causes the link to
reset once every second:
[ 309.992368] mv88e6085 gpio-0:00 enembc: phylink_mac_config: mode=fixed//100Mbps/Full adv=00000,00000208 pause=10 link=1 an=1
[ 309.998451] mv88e6085 gpio-0:00: p5: Force link down
[ 309.998869] mv88e6085 gpio-0:00: p5: Speed set to 100 Mbps
[ 309.999280] mv88e6085 gpio-0:00: p5: Force full duplex
[ 309.999895] mv88e6085 gpio-0:00: p5: Force link up
[ 311.032400] mv88e6085 gpio-0:00 enembc: phylink_mac_config: mode=fixed//100Mbps/Full adv=00000,00000208 pause=10 link=1 an=1
[ 311.038248] mv88e6085 gpio-0:00: p5: Force link down
[ 311.038660] mv88e6085 gpio-0:00: p5: Speed set to 100 Mbps
[ 311.039069] mv88e6085 gpio-0:00: p5: Force full duplex
[ 311.039678] mv88e6085 gpio-0:00: p5: Force link up
[ 312.072328] mv88e6085 gpio-0:00 enembc: phylink_mac_config: mode=fixed//100Mbps/Full adv=00000,00000208 pause=10 link=1 an=1
[ 312.077603] mv88e6085 gpio-0:00: p5: Force link down
[ 312.078010] mv88e6085 gpio-0:00: p5: Speed set to 100 Mbps
[ 312.078417] mv88e6085 gpio-0:00: p5: Force full duplex
[ 312.079026] mv88e6085 gpio-0:00: p5: Force link up
It's probably not a coincidence that the link downtime comes out as 0.15%
matching the packet loss percentage. I patched the driver code so that the
reset is skipped if the link state is already set:
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
@@ -532,6 +532,17 @@ static int mv88e6xxx_port_setup_mac(struct mv88e6xxx_chip *chip, int port,
if (!chip->info->ops->port_set_link)
return 0;
+ if (chip->info->ops->port_link_state) {
+ struct phylink_link_state state;
+
+ err = chip->info->ops->port_link_state(chip, port, &state);
+
+ if (!err && link == state.link) {
+ dev_dbg(chip->dev, "link state already set\n");
+ return 0;
+ }
+ }
+
/* Port's MAC control must not be changed unless the link is down */
err = chip->info->ops->port_set_link(chip, port, 0);
if (err)
The patched version did not have any packet loss, but it's probably not the
correct way of fixing the issue.
Best regards,
Samu Nuutamo
next reply other threads:[~2019-01-14 11:34 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-14 11:34 Samu Nuutamo [this message]
2019-01-14 14:23 ` Regression: mv88e6xxx packet loss after 4.18's PHYLINK merge Andrew Lunn
2019-01-14 18:03 ` Florian Fainelli
2019-01-15 8:15 ` Samu Nuutamo
2019-01-17 2:29 ` Andrew Lunn
2019-01-17 11:37 ` Samu Nuutamo
2019-01-23 2:10 ` Andrew Lunn
2019-01-23 7:16 ` Samu Nuutamo
2019-01-25 19:00 ` Florian Fainelli
2019-01-25 19:15 ` Russell King - ARM Linux admin
2019-01-17 15:46 ` Samu Nuutamo
2019-01-21 17:52 ` Andrew Lunn
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=20190114113444.GB16632@samu-ThinkPad-T480s \
--to=samu.nuutamo@vincit.fi \
--cc=andrew@lunn.ch \
--cc=davem@davemloft.net \
--cc=f.fainelli@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=vivien.didelot@gmail.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.