Message ID | 1551289652-7377-1-git-send-email-mw@semihalf.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [net:] net: mvpp2: disable link IRQ waiting for IDLE frames | expand |
On Wed, Feb 27, 2019 at 06:47:32PM +0100, Marcin Wojtas wrote: > Current version of the driver was configuring XLG MAC > in a way to wait 3 IDLE frames before allowing for the > link-up interrupt to be triggered. This resulted in an > issue, preventing to detect the link change during RX > traffic on the interface. Fix that. What about noise sensitivity? Does this now mean that on boards such as Macchiatobin Single Shot or Clearfog GT9k where the serdes is connected directly to a SFP cage, that noise on the serdes lines triggers a link indication? > > Fixes: 4bb043262878 ("net: mvpp2: phylink support") > Signed-off-by: Marcin Wojtas <mw@semihalf.com> > --- > drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c > index 16066c2..f1378f9 100644 > --- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c > +++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c > @@ -4532,8 +4532,7 @@ static void mvpp2_xlg_config(struct mvpp2_port *port, unsigned int mode, > ctrl0 |= MVPP22_XLG_CTRL0_RX_FLOW_CTRL_EN; > > ctrl4 &= ~MVPP22_XLG_CTRL4_MACMODSELECT_GMAC; > - ctrl4 |= MVPP22_XLG_CTRL4_FWD_FC | MVPP22_XLG_CTRL4_FWD_PFC | > - MVPP22_XLG_CTRL4_EN_IDLE_CHECK; > + ctrl4 |= MVPP22_XLG_CTRL4_FWD_FC | MVPP22_XLG_CTRL4_FWD_PFC; > > writel(ctrl0, port->base + MVPP22_XLG_CTRL0_REG); > writel(ctrl4, port->base + MVPP22_XLG_CTRL4_REG); > -- > 2.7.4 > > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel >
Hi Russell, czw., 28 lut 2019 o 10:36 Russell King - ARM Linux admin <linux@armlinux.org.uk> napisał(a): > > On Wed, Feb 27, 2019 at 06:47:32PM +0100, Marcin Wojtas wrote: > > Current version of the driver was configuring XLG MAC > > in a way to wait 3 IDLE frames before allowing for the > > link-up interrupt to be triggered. This resulted in an > > issue, preventing to detect the link change during RX > > traffic on the interface. Fix that. > > What about noise sensitivity? Does this now mean that on boards such as > Macchiatobin Single Shot or Clearfog GT9k where the serdes is connected > directly to a SFP cage, that noise on the serdes lines triggers a link > indication? > Afaik waiting for idle frames is not required by any standard. In fact this feature of the XLG MAC caused a risk that after dropping the link during data transfer it would never go up again until remote peer stops it. I tested it on 3 different boards with SerDes directly connected to the SFP cage and I'm also not aware of any reporte about noise-triggered false link interrupts in XLG MAC (proprietary Marvell mvpp2x driver did not use waiting 3 idle frames feature). I'd rather assume the MAC is not vulnerable to it, and only properly established link can trigger an event. Best regards, Marcin > > > > Fixes: 4bb043262878 ("net: mvpp2: phylink support") > > Signed-off-by: Marcin Wojtas <mw@semihalf.com> > > --- > > drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 3 +-- > > 1 file changed, 1 insertion(+), 2 deletions(-) > > > > diff --git a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c > > index 16066c2..f1378f9 100644 > > --- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c > > +++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c > > @@ -4532,8 +4532,7 @@ static void mvpp2_xlg_config(struct mvpp2_port *port, unsigned int mode, > > ctrl0 |= MVPP22_XLG_CTRL0_RX_FLOW_CTRL_EN; > > > > ctrl4 &= ~MVPP22_XLG_CTRL4_MACMODSELECT_GMAC; > > - ctrl4 |= MVPP22_XLG_CTRL4_FWD_FC | MVPP22_XLG_CTRL4_FWD_PFC | > > - MVPP22_XLG_CTRL4_EN_IDLE_CHECK; > > + ctrl4 |= MVPP22_XLG_CTRL4_FWD_FC | MVPP22_XLG_CTRL4_FWD_PFC; > > > > writel(ctrl0, port->base + MVPP22_XLG_CTRL0_REG); > > writel(ctrl4, port->base + MVPP22_XLG_CTRL4_REG); > > -- > > 2.7.4 > > > > > > _______________________________________________ > > linux-arm-kernel mailing list > > linux-arm-kernel@lists.infradead.org > > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel > > > > -- > RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ > FTTC broadband for 0.8mile line in suburbia: sync at 12.1Mbps down 622kbps up > According to speedtest.net: 11.9Mbps down 500kbps up
Hi David, Rusell, czw., 28 lut 2019 o 14:58 Marcin Wojtas <mw@semihalf.com> napisał(a): > > Hi Russell, > > czw., 28 lut 2019 o 10:36 Russell King - ARM Linux admin > <linux@armlinux.org.uk> napisał(a): > > > > On Wed, Feb 27, 2019 at 06:47:32PM +0100, Marcin Wojtas wrote: > > > Current version of the driver was configuring XLG MAC > > > in a way to wait 3 IDLE frames before allowing for the > > > link-up interrupt to be triggered. This resulted in an > > > issue, preventing to detect the link change during RX > > > traffic on the interface. Fix that. > > > > What about noise sensitivity? Does this now mean that on boards such as > > Macchiatobin Single Shot or Clearfog GT9k where the serdes is connected > > directly to a SFP cage, that noise on the serdes lines triggers a link > > indication? > > > > Afaik waiting for idle frames is not required by any standard. In fact > this feature of the XLG MAC caused a risk that after dropping the link > during data transfer it would never go up again until remote peer > stops it. > > I tested it on 3 different boards with SerDes directly connected to > the SFP cage and I'm also not aware of any reporte about > noise-triggered false link interrupts in XLG MAC (proprietary Marvell > mvpp2x driver did not use waiting 3 idle frames feature). I'd rather > assume the MAC is not vulnerable to it, and only properly established > link can trigger an event. > This patch seems to get forgotten - any objections to merge it? Best regards, Marcin > Best regards, > Marcin > > > > > > > Fixes: 4bb043262878 ("net: mvpp2: phylink support") > > > Signed-off-by: Marcin Wojtas <mw@semihalf.com> > > > --- > > > drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 3 +-- > > > 1 file changed, 1 insertion(+), 2 deletions(-) > > > > > > diff --git a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c > > > index 16066c2..f1378f9 100644 > > > --- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c > > > +++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c > > > @@ -4532,8 +4532,7 @@ static void mvpp2_xlg_config(struct mvpp2_port *port, unsigned int mode, > > > ctrl0 |= MVPP22_XLG_CTRL0_RX_FLOW_CTRL_EN; > > > > > > ctrl4 &= ~MVPP22_XLG_CTRL4_MACMODSELECT_GMAC; > > > - ctrl4 |= MVPP22_XLG_CTRL4_FWD_FC | MVPP22_XLG_CTRL4_FWD_PFC | > > > - MVPP22_XLG_CTRL4_EN_IDLE_CHECK; > > > + ctrl4 |= MVPP22_XLG_CTRL4_FWD_FC | MVPP22_XLG_CTRL4_FWD_PFC; > > > > > > writel(ctrl0, port->base + MVPP22_XLG_CTRL0_REG); > > > writel(ctrl4, port->base + MVPP22_XLG_CTRL4_REG); > > > -- > > > 2.7.4 > > > > > > > > > _______________________________________________ > > > linux-arm-kernel mailing list > > > linux-arm-kernel@lists.infradead.org > > > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel > > > > > > > -- > > RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ > > FTTC broadband for 0.8mile line in suburbia: sync at 12.1Mbps down 622kbps up > > According to speedtest.net: 11.9Mbps down 500kbps up
From: Marcin Wojtas <mw@semihalf.com> Date: Tue, 23 Apr 2019 18:08:00 +0200 > Hi David, Rusell, > > czw., 28 lut 2019 o 14:58 Marcin Wojtas <mw@semihalf.com> napisał(a): >> >> Hi Russell, >> >> czw., 28 lut 2019 o 10:36 Russell King - ARM Linux admin >> <linux@armlinux.org.uk> napisał(a): >> > >> > On Wed, Feb 27, 2019 at 06:47:32PM +0100, Marcin Wojtas wrote: >> > > Current version of the driver was configuring XLG MAC >> > > in a way to wait 3 IDLE frames before allowing for the >> > > link-up interrupt to be triggered. This resulted in an >> > > issue, preventing to detect the link change during RX >> > > traffic on the interface. Fix that. >> > >> > What about noise sensitivity? Does this now mean that on boards such as >> > Macchiatobin Single Shot or Clearfog GT9k where the serdes is connected >> > directly to a SFP cage, that noise on the serdes lines triggers a link >> > indication? >> > >> >> Afaik waiting for idle frames is not required by any standard. In fact >> this feature of the XLG MAC caused a risk that after dropping the link >> during data transfer it would never go up again until remote peer >> stops it. >> >> I tested it on 3 different boards with SerDes directly connected to >> the SFP cage and I'm also not aware of any reporte about >> noise-triggered false link interrupts in XLG MAC (proprietary Marvell >> mvpp2x driver did not use waiting 3 idle frames feature). I'd rather >> assume the MAC is not vulnerable to it, and only properly established >> link can trigger an event. >> > > This patch seems to get forgotten - any objections to merge it? If there is agreement, please repost it. Thank you.
diff --git a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c index 16066c2..f1378f9 100644 --- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c +++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c @@ -4532,8 +4532,7 @@ static void mvpp2_xlg_config(struct mvpp2_port *port, unsigned int mode, ctrl0 |= MVPP22_XLG_CTRL0_RX_FLOW_CTRL_EN; ctrl4 &= ~MVPP22_XLG_CTRL4_MACMODSELECT_GMAC; - ctrl4 |= MVPP22_XLG_CTRL4_FWD_FC | MVPP22_XLG_CTRL4_FWD_PFC | - MVPP22_XLG_CTRL4_EN_IDLE_CHECK; + ctrl4 |= MVPP22_XLG_CTRL4_FWD_FC | MVPP22_XLG_CTRL4_FWD_PFC; writel(ctrl0, port->base + MVPP22_XLG_CTRL0_REG); writel(ctrl4, port->base + MVPP22_XLG_CTRL4_REG);
Current version of the driver was configuring XLG MAC in a way to wait 3 IDLE frames before allowing for the link-up interrupt to be triggered. This resulted in an issue, preventing to detect the link change during RX traffic on the interface. Fix that. Fixes: 4bb043262878 ("net: mvpp2: phylink support") Signed-off-by: Marcin Wojtas <mw@semihalf.com> --- drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)