[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240821101622.3ef23d29@fedora-3.home>
Date: Wed, 21 Aug 2024 10:16:22 +0200
From: Maxime Chevallier <maxime.chevallier@...tlin.com>
To: Oleksij Rempel <o.rempel@...gutronix.de>
Cc: Andrew Lunn <andrew@...n.ch>, Heiner Kallweit <hkallweit1@...il.com>,
Russell King <linux@...linux.org.uk>, "David S. Miller"
<davem@...emloft.net>, Eric Dumazet <edumazet@...gle.com>, Jakub Kicinski
<kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com>, kernel@...gutronix.de,
linux-kernel@...r.kernel.org, netdev@...r.kernel.org
Subject: Re: [PATCH net-next v2 3/3] phy: dp83tg720: Add statistics support
Hello Oleksij,
On Tue, 20 Aug 2024 14:29:14 +0200
Oleksij Rempel <o.rempel@...gutronix.de> wrote:
> Introduce statistics support for the DP83TG720 PHY driver, enabling
> detailed monitoring and reporting of link quality and packet-related
> metrics.
>
> To avoid double reading of certain registers, the implementation caches
> all relevant register values in a single operation. This approach
> ensures accurate and consistent data retrieval, particularly for
> registers that clear upon reading or require special handling.
>
> Some of the statistics, such as link training times, do not increment
> and therefore require special handling during the extraction process.
This all looks good to me, I do have one small nit bellow :
> +/**
> + * dp83tg720_get_stats - Get the statistics values.
> + * @phydev: Pointer to the phy_device structure.
> + * @stats: Pointer to the ethtool_stats structure.
> + * @data: Pointer to the buffer where the statistics values will be stored.
> + *
> + * Fills the buffer with the statistics values, filtering out those that are
> + * not applicable based on the PHY's operating mode (e.g., RGMII).
I don't see how this filtering is actually implemented, is this comment
correct ?
> + */
> +static void dp83tg720_get_stats(struct phy_device *phydev,
> + struct ethtool_stats *stats, u64 *data)
> +{
> + int i, j = 0;
> +
> + dp83tg720_cache_reg_values(phydev);
> +
> + for (i = 0; i < ARRAY_SIZE(dp83tg720_hw_stats); i++) {
> + data[j] = dp83tg720_extract_stat_value(phydev, i);
> + j++;
> + }
> +}
Thanks,
Maxime
Powered by blists - more mailing lists