All of lore.kernel.org
 help / color / mirror / Atom feed
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: Fri, 9 Jun 2023 16:45:06 +0200	[thread overview]
Message-ID: <ZIM68vWe0nRSTkBv@lincoln> (raw)
In-Reply-To: <20230609055016.44008-1-shannon.nelson@amd.com>

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".

> 
> 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/

> +		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
> 
> 

  reply	other threads:[~2023-06-09 14:48 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 [this message]
2023-06-09 17:54   ` Shannon Nelson
2023-06-12  8:24     ` Larysa Zaremba
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=ZIM68vWe0nRSTkBv@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.