From: Larysa Zaremba <larysa.zaremba@intel.com>
To: Shannon Nelson <shannon.nelson@amd.com>
Cc: <netdev@vger.kernel.org>, <davem@davemloft.net>,
<kuba@kernel.org>, <brett.creeley@amd.com>, <drivers@pensando.io>,
Nitya Sunkad <nitya.sunkad@amd.com>
Subject: Re: [PATCH v2 net-next] ionic: add support for ethtool extended stat link_down_count
Date: Mon, 12 Jun 2023 10:24:12 +0200 [thread overview]
Message-ID: <ZIbWLPcM+9Ov8wnA@lincoln> (raw)
In-Reply-To: <c9bcdfa6-81a9-8020-8760-f6fb2d59d828@amd.com>
On Fri, Jun 09, 2023 at 10:54:47AM -0700, Shannon Nelson wrote:
> On 6/9/23 7:45 AM, Larysa Zaremba wrote:
> >
> > On Thu, Jun 08, 2023 at 10:50:16PM -0700, Shannon Nelson wrote:
> > > From: Nitya Sunkad <nitya.sunkad@amd.com>
> > >
> > > Following the example of 'commit 9a0f830f8026 ("ethtool: linkstate:
> > > add a statistic for PHY down events")', added support for link down
> > > events.
> > >
> > > Added callback ionic_get_link_ext_stats to ionic_ethtool.c to support
> > > link_down_count, a property of netdev that gets reported exclusively
> > > on physical link down events.
> >
> > Commit message hasn't changed since v1, despite the comment about usage of
> > "added" vs "add".
>
> Sorry, missed that. Not sure this is worth another spin by itself.
>
> >
> > >
> > > Run ethtool -I <devname> to display the device link down count.
> > >
> > > Signed-off-by: Nitya Sunkad <nitya.sunkad@amd.com>
> > > Signed-off-by: Shannon Nelson <shannon.nelson@amd.com>
> > > ---
> > > v2: Report link_down_count only on PF, not on VF
> > >
> > > drivers/net/ethernet/pensando/ionic/ionic_ethtool.c | 10 ++++++++++
> > > drivers/net/ethernet/pensando/ionic/ionic_lif.c | 1 +
> > > drivers/net/ethernet/pensando/ionic/ionic_lif.h | 1 +
> > > 3 files changed, 12 insertions(+)
> > >
> > > diff --git a/drivers/net/ethernet/pensando/ionic/ionic_ethtool.c b/drivers/net/ethernet/pensando/ionic/ionic_ethtool.c
> > > index 9b2b96fa36af..3a6b0a9bc241 100644
> > > --- a/drivers/net/ethernet/pensando/ionic/ionic_ethtool.c
> > > +++ b/drivers/net/ethernet/pensando/ionic/ionic_ethtool.c
> > > @@ -104,6 +104,15 @@ static void ionic_get_regs(struct net_device *netdev, struct ethtool_regs *regs,
> > > memcpy_fromio(p + offset, lif->ionic->idev.dev_cmd_regs->words, size);
> > > }
> > >
> > > +static void ionic_get_link_ext_stats(struct net_device *netdev,
> > > + struct ethtool_link_ext_stats *stats)
> > > +{
> > > + struct ionic_lif *lif = netdev_priv(netdev);
> > > +
> > > + if (lif->ionic->pdev->is_physfn)
> >
> > Maybe
> >
> > ionic->pdev->device == PCI_DEVICE_ID_PENSANDO_IONIC_ETH_PF
> >
> > from [0] would be a more reliable way to determine, whether we are dealing with
> > a PF?
> >
> > [0] https://lore.kernel.org/netdev/20191212003344.5571-3-snelson@pensando.io/
>
> Note that the indicated code was removed from later versions of that
> patchset and never actually made it into the driver.
> See commit fbb39807e9ae ('ionic: support sr-iov operations')
>
> Also, using is_physfn will still work with no further changes if we ever add
> another PF device id.
>
> Unless anyone else has a preference, I think this works fine as is.
>
> sln
>
If you say so, I won't fight :)
Reviewed-by: Larysa Zaremba <larysa.zaremba@intel.com>
>
> >
> > > + stats->link_down_events = lif->link_down_count;
> > > +}
> > > +
> > > static int ionic_get_link_ksettings(struct net_device *netdev,
> > > struct ethtool_link_ksettings *ks)
> > > {
> > > @@ -1074,6 +1083,7 @@ static const struct ethtool_ops ionic_ethtool_ops = {
> > > .get_regs_len = ionic_get_regs_len,
> > > .get_regs = ionic_get_regs,
> > > .get_link = ethtool_op_get_link,
> > > + .get_link_ext_stats = ionic_get_link_ext_stats,
> > > .get_link_ksettings = ionic_get_link_ksettings,
> > > .set_link_ksettings = ionic_set_link_ksettings,
> > > .get_coalesce = ionic_get_coalesce,
> > > diff --git a/drivers/net/ethernet/pensando/ionic/ionic_lif.c b/drivers/net/ethernet/pensando/ionic/ionic_lif.c
> > > index 957027e546b3..6ccc1ea91992 100644
> > > --- a/drivers/net/ethernet/pensando/ionic/ionic_lif.c
> > > +++ b/drivers/net/ethernet/pensando/ionic/ionic_lif.c
> > > @@ -168,6 +168,7 @@ static void ionic_link_status_check(struct ionic_lif *lif)
> > > }
> > > } else {
> > > if (netif_carrier_ok(netdev)) {
> > > + lif->link_down_count++;
> > > netdev_info(netdev, "Link down\n");
> > > netif_carrier_off(netdev);
> > > }
> > > diff --git a/drivers/net/ethernet/pensando/ionic/ionic_lif.h b/drivers/net/ethernet/pensando/ionic/ionic_lif.h
> > > index c9c4c46d5a16..fd2ea670e7d8 100644
> > > --- a/drivers/net/ethernet/pensando/ionic/ionic_lif.h
> > > +++ b/drivers/net/ethernet/pensando/ionic/ionic_lif.h
> > > @@ -201,6 +201,7 @@ struct ionic_lif {
> > > u64 hw_features;
> > > bool registered;
> > > u16 lif_type;
> > > + unsigned int link_down_count;
> > > unsigned int nmcast;
> > > unsigned int nucast;
> > > unsigned int nvlans;
> > > --
> > > 2.17.1
> > >
> > >
next prev parent reply other threads:[~2023-06-12 8:28 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-09 5:50 [PATCH v2 net-next] ionic: add support for ethtool extended stat link_down_count Shannon Nelson
2023-06-09 14:45 ` Larysa Zaremba
2023-06-09 17:54 ` Shannon Nelson
2023-06-12 8:24 ` Larysa Zaremba [this message]
2023-06-12 8:40 ` 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=ZIbWLPcM+9Ov8wnA@lincoln \
--to=larysa.zaremba@intel.com \
--cc=brett.creeley@amd.com \
--cc=davem@davemloft.net \
--cc=drivers@pensando.io \
--cc=kuba@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=nitya.sunkad@amd.com \
--cc=shannon.nelson@amd.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.