All of lore.kernel.org
 help / color / mirror / Atom feed
From: Simon Horman <horms@kernel.org>
To: Lorenzo Bianconi <lorenzo@kernel.org>
Cc: netdev@vger.kernel.org, nbd@nbd.name,
	lorenzo.bianconi83@gmail.com, davem@davemloft.net,
	edumazet@google.com, kuba@kernel.org, pabeni@redhat.com,
	conor@kernel.org, linux-arm-kernel@lists.infradead.org,
	robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org,
	conor+dt@kernel.org, devicetree@vger.kernel.org,
	catalin.marinas@arm.com, will@kernel.org, upstream@airoha.com,
	angelogioacchino.delregno@collabora.com,
	benjamin.larsson@genexis.eu, rkannoth@marvell.com,
	sgoutham@marvell.com, andrew@lunn.ch, arnd@arndb.de
Subject: Re: [PATCH v5 net-next 2/2] net: airoha: Introduce ethernet support for EN7581 SoC
Date: Sat, 6 Jul 2024 13:27:54 +0100	[thread overview]
Message-ID: <20240706122754.GD1481495@kernel.org> (raw)
In-Reply-To: <Zoj_1JWfd_3Yu71t@lore-desk>

On Sat, Jul 06, 2024 at 10:27:00AM +0200, Lorenzo Bianconi wrote:
> > On Thu, Jul 04, 2024 at 10:08:11AM +0200, Lorenzo Bianconi wrote:
> > > Add airoha_eth driver in order to introduce ethernet support for
> > > Airoha EN7581 SoC available on EN7581 development board (en7581-evb).
> > > en7581-evb networking architecture is composed by airoha_eth as mac
> > > controller (cpu port) and a mt7530 dsa based switch.
> > > EN7581 mac controller is mainly composed by Frame Engine (FE) and
> > > QoS-DMA (QDMA) modules. FE is used for traffic offloading (just basic
> > > functionalities are supported now) while QDMA is used for DMA operation
> > > and QOS functionalities between mac layer and the dsa switch (hw QoS is
> > > not available yet and it will be added in the future).
> > > Currently only hw lan features are available, hw wan will be added with
> > > subsequent patches.
> > > 
> > > Tested-by: Benjamin Larsson <benjamin.larsson@genexis.eu>
> > > Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
> > 
> > ...
> > 
> > > +static const char * const airoha_ethtool_stats_name[] = {
> > > +	"tx_eth_pkt_cnt",
> > > +	"tx_eth_byte_cnt",
> > > +	"tx_ok_pkt_cnt",
> > > +	"tx_ok_byte_cnt",
> > > +	"tx_eth_drop_cnt",
> > > +	"tx_eth_bc_cnt",
> > > +	"tx_eth_mc_cnt",
> > > +	"tx_eth_lt64_cnt",
> > > +	"tx_eth_eq64_cnt",
> > > +	"tx_eth_65_127_cnt",
> > > +	"tx_eth_128_255_cnt",
> > > +	"tx_eth_256_511_cnt",
> > > +	"tx_eth_512_1023_cnt",
> > > +	"tx_eth_1024_1518_cnt",
> > > +	"tx_eth_gt1518_cnt",
> > > +	"rx_eth_pkt_cnt",
> > > +	"rx_eth_byte_cnt",
> > > +	"rx_ok_pkt_cnt",
> > > +	"rx_ok_byte_cnt",
> > > +	"rx_eth_drop_cnt",
> > > +	"rx_eth_bc_cnt",
> > > +	"rx_eth_mc_cnt",
> > > +	"rx_eth_crc_drop_cnt",
> > > +	"rx_eth_frag_cnt",
> > > +	"rx_eth_jabber_cnt",
> > > +	"rx_eth_lt64_cnt",
> > > +	"rx_eth_eq64_cnt",
> > > +	"rx_eth_65_127_cnt",
> > > +	"rx_eth_128_255_cnt",
> > > +	"rx_eth_256_511_cnt",
> > > +	"rx_eth_512_1023_cnt",
> > > +	"rx_eth_1024_1518_cnt",
> > > +	"rx_eth_gt1518_cnt",
> > > +};
> > 
> > Hi Lorenzo,
> > 
> > Sorry for not noticing this earlier.
> 
> Hi Simon,
> 
> no worries :)
> 
> > It seems to me that some of the stats above could
> > use standard stats, which is preferred.
> 
> Please correct me if I am wrong but it seems quite a common approach to have
> same stats in both .ndo_get_stats64() and .get_ethtool_stats():
> - https://github.com/torvalds/linux/blob/master/drivers/net/ethernet/mediatek/mtk_eth_soc.c#L212
> - https://github.com/torvalds/linux/blob/master/drivers/net/ethernet/marvell/mvneta.c#L435
> - https://github.com/torvalds/linux/blob/master/drivers/net/ethernet/intel/i40e/i40e_ethtool.c#L243
> - https://github.com/torvalds/linux/blob/master/net/mac80211/ethtool.c#L52
> - ...
> 
> Do you mean I should just report common stats (e.g. tx_packets or tx_bytes) in
> .ndo_get_stats64()? Or it is fine to just add .ndo_get_stats64() callback (not
> supported at the moment)?

The first option: It is my understanding that it preferred to only
report common stats via ndo_get_stats64.

  "Please limit stats you report in ethtool -S to just the stats for which
   proper interfaces don't exist. Don't duplicate what's already reported
   via rtase_get_stats64(), also take a look at what can be reported via
   various *_stats members of struct ethtool_ops."

   - Re: [PATCH net-next v18 10/13] rtase: Implement ethtool function
     by Jakub Kicinski
     https://lore.kernel.org/netdev/20240509204047.149e226e@kernel.org/

> > Basically, my understanding is that one should:
> > 1. Implement .ndo_get_stats64
> >    (that seems relevant here)
> > 2. As appropriate implement ethtool_stats non-extended stats operations
> >    (perhaps not relevant here)
> 
> Can you please provide me a pointer for it?

Sorry, that was not at all clear.
I meant, as per the quote above, *_stats members of struct ethtool_ops,
other than those that implement extended ops.
e.g. get_rmon_stats.

> 
> Regards,
> Lorenzo
> 
> > 3. Then implement get_ethtool_stats for what is left over
> > 
> > ...




  reply	other threads:[~2024-07-06 12:28 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-04  8:08 [PATCH v5 net-next 0/2] Introduce EN7581 ethernet support Lorenzo Bianconi
2024-07-04  8:08 ` [PATCH v5 net-next 1/2] dt-bindings: net: airoha: Add EN7581 ethernet controller Lorenzo Bianconi
2024-07-08 16:37   ` Rob Herring
2024-07-08 17:03     ` Lorenzo Bianconi
2024-07-08 20:19       ` Rob Herring
2024-07-08 20:48         ` Andrew Lunn
2024-07-08 21:16           ` Lorenzo Bianconi
2024-07-08 21:10         ` Lorenzo Bianconi
2024-07-08 22:02           ` Lorenzo Bianconi
2024-07-04  8:08 ` [PATCH v5 net-next 2/2] net: airoha: Introduce ethernet support for EN7581 SoC Lorenzo Bianconi
2024-07-05 19:06   ` Simon Horman
2024-07-06  8:27     ` Lorenzo Bianconi
2024-07-06 12:27       ` Simon Horman [this message]
2024-07-06 12:58         ` Lorenzo Bianconi

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=20240706122754.GD1481495@kernel.org \
    --to=horms@kernel.org \
    --cc=andrew@lunn.ch \
    --cc=angelogioacchino.delregno@collabora.com \
    --cc=arnd@arndb.de \
    --cc=benjamin.larsson@genexis.eu \
    --cc=catalin.marinas@arm.com \
    --cc=conor+dt@kernel.org \
    --cc=conor@kernel.org \
    --cc=davem@davemloft.net \
    --cc=devicetree@vger.kernel.org \
    --cc=edumazet@google.com \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=kuba@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=lorenzo.bianconi83@gmail.com \
    --cc=lorenzo@kernel.org \
    --cc=nbd@nbd.name \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=rkannoth@marvell.com \
    --cc=robh+dt@kernel.org \
    --cc=sgoutham@marvell.com \
    --cc=upstream@airoha.com \
    --cc=will@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.