All of lore.kernel.org
 help / color / mirror / Atom feed
From: Enguerrand de Ribaucourt  <enguerrand.de-ribaucourt@savoirfairelinux.com>
To: Andrew Lunn <andrew@lunn.ch>
Cc: davem@davemloft.net, netdev <netdev@vger.kernel.org>,
	linux-kernel@vger.kernel.org, linux <linux@armlinux.org.uk>,
	hkallweit1 <hkallweit1@gmail.com>
Subject: Re: [PATCH] net: dp83822: disable false carrier interrupt
Date: Thu, 23 Jun 2022 04:51:14 -0400 (EDT)	[thread overview]
Message-ID: <1303327043.278846.1655974274654.JavaMail.zimbra@savoirfairelinux.com> (raw)
In-Reply-To: <YqzAKguRaxr74oXh@lunn.ch>

----- Original Message -----
> From: "Andrew Lunn" <andrew@lunn.ch>
> To: "Enguerrand de Ribaucourt" <enguerrand.de-ribaucourt@savoirfairelinux.com>
> Cc: davem@davemloft.net, "netdev" <netdev@vger.kernel.org>, linux-kernel@vger.kernel.org, "linux"
> <linux@armlinux.org.uk>, "hkallweit1" <hkallweit1@gmail.com>
> Sent: Friday, June 17, 2022 7:55:54 PM
> Subject: Re: [PATCH] net: dp83822: disable false carrier interrupt

> On Fri, Jun 17, 2022 at 03:46:11PM +0200, Enguerrand de Ribaucourt wrote:
> > When unplugging an Ethernet cable, false carrier events were produced by
> > the PHY at a very high rate. Once the false carrier counter full, an
> > interrupt was triggered every few clock cycles until the cable was
> > replugged. This resulted in approximately 10k/s interrupts.

> > Since the false carrier counter (FCSCR) is never used, we can safely
> > disable this interrupt.

> > In addition to improving performance, this also solved MDIO read
> > timeouts I was randomly encountering with an i.MX8 fec MAC because of
> > the interrupt flood. The interrupt count and MDIO timeout fix were
> > tested on a v5.4.110 kernel.

>> Signed-off-by: Enguerrand de Ribaucourt
> > <enguerrand.de-ribaucourt@savoirfairelinux.com>
> > ---
> > drivers/net/phy/dp83822.c | 1 -
> > 1 file changed, 1 deletion(-)

> > diff --git a/drivers/net/phy/dp83822.c b/drivers/net/phy/dp83822.c
> > index e6ad3a494d32..95ef507053a6 100644
> > --- a/drivers/net/phy/dp83822.c
> > +++ b/drivers/net/phy/dp83822.c
> > @@ -230,7 +230,6 @@ static int dp83822_config_intr(struct phy_device *phydev)
> > return misr_status;

> > misr_status |= (DP83822_RX_ERR_HF_INT_EN |
> > - DP83822_FALSE_CARRIER_HF_INT_EN |

> Does the same problem exist for RX_ERR_HF_INT ? That appears to be
> that the RX error counter has reached half full. I don't see anything
> using register 0x15.

> Andrew

I can produce RX errors using improper ethtool speed settings, which can be seen
in the statistics, but they do not increment register 0x15. However, RX errors due 
to cable disconnection do increase it. After the counter is half full (0x7fff, 
the datasheet is wrong), interrupts that we don't need were indeed generated.

I measured a ~3k/s interrupt flood which also kept going even if I stopped the 
RX errors transfer so we should definitively disable RX_ERR_HF_INT as well.

I'll send a separate patch for RX_ERR_HF_INT_EN to have clear commmit messages.

Thanks,
Enguerrand

  reply	other threads:[~2022-06-23  8:51 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-17 13:46 [PATCH] net: dp83822: disable false carrier interrupt Enguerrand de Ribaucourt
2022-06-17 17:55 ` Andrew Lunn
2022-06-23  8:51   ` Enguerrand de Ribaucourt [this message]
2022-06-23  8:51   ` [PATCH 1/2] " Enguerrand de Ribaucourt
2022-06-23 12:42     ` Andrew Lunn
2022-06-23 13:16       ` Enguerrand de Ribaucourt
2022-06-23  8:51   ` [PATCH 2/2] net: dp83822: disable rx error interrupt Enguerrand de Ribaucourt
2022-06-23 13:06   ` [PATCH v2 0/2] net: dp83822: fix interrupt floods Enguerrand de Ribaucourt
2022-06-23 13:06     ` [PATCH v2 1/2] net: dp83822: disable false carrier interrupt Enguerrand de Ribaucourt
2022-06-23 13:06     ` [PATCH v2 2/2] net: dp83822: disable rx error interrupt Enguerrand de Ribaucourt
2022-06-23 13:14   ` [PATCH v2 0/2] net: dp83822: fix interrupt floods Enguerrand de Ribaucourt
2022-06-23 13:14     ` [PATCH v2 1/2] net: dp83822: disable false carrier interrupt Enguerrand de Ribaucourt
2022-06-23 13:14     ` [PATCH v2 2/2] net: dp83822: disable rx error interrupt Enguerrand de Ribaucourt
2022-06-23 13:46   ` [PATCH v3 0/2] net: dp83822: fix interrupt floods Enguerrand de Ribaucourt
2022-06-23 13:46     ` [PATCH v3 1/2] net: dp83822: disable false carrier interrupt Enguerrand de Ribaucourt
2022-06-23 18:27       ` Andrew Lunn
2022-06-23 13:46     ` [PATCH v3 2/2] net: dp83822: disable rx error interrupt Enguerrand de Ribaucourt
2022-06-23 18:24     ` [PATCH v3 0/2] net: dp83822: fix interrupt floods Andrew Lunn
2022-06-24 23:50     ` patchwork-bot+netdevbpf

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=1303327043.278846.1655974274654.JavaMail.zimbra@savoirfairelinux.com \
    --to=enguerrand.de-ribaucourt@savoirfairelinux.com \
    --cc=andrew@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=hkallweit1@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=netdev@vger.kernel.org \
    /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.