mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: MD Danish Anwar <danishanwar@ti.com>
To: Jakub Kicinski <kuba@kernel.org>
Cc: Meghana Malladi <m-malladi@ti.com>,
	Diogo Ivo <diogo.ivo@siemens.com>,
	Paolo Abeni <pabeni@redhat.com>,
	Eric Dumazet <edumazet@google.com>,
	"David S. Miller" <davem@davemloft.net>,
	Andrew Lunn <andrew+netdev@lunn.ch>,
	<linux-kernel@vger.kernel.org>, <netdev@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>, <srk@ti.com>,
	Vignesh Raghavendra <vigneshr@ti.com>,
	Roger Quadros <rogerq@kernel.org>
Subject: Re: [PATCH net-next] net: ti: icssg-prueth: Add ICSSG FW Stats
Date: Tue, 4 Mar 2025 13:46:39 +0530	[thread overview]
Message-ID: <33c38844-4fbe-469c-bb5f-06bdb7721114@ti.com> (raw)
In-Reply-To: <20250303172543.249a4fc2@kernel.org>



On 04/03/25 6:55 am, Jakub Kicinski wrote:
> On Thu, 27 Feb 2025 15:07:12 +0530 MD Danish Anwar wrote:
>> +	ICSSG_PA_STATS(FW_PREEMPT_BAD_FRAG),
>> +	ICSSG_PA_STATS(FW_PREEMPT_ASSEMBLY_ERR),
>> +	ICSSG_PA_STATS(FW_PREEMPT_FRAG_CNT_TX),
>> +	ICSSG_PA_STATS(FW_PREEMPT_ASSEMBLY_OK),
>> +	ICSSG_PA_STATS(FW_PREEMPT_FRAG_CNT_RX),
> 
> I presume frame preemption is implemented in silicon? If yes -
> what makes these "FW statistics"? Does the FW collect them from 

The statistics are maintained / updated by firmware and thus the name.

Preemption is implemented partially in both the hardware and firmware.
The STATE MACHINE for preemption is in the firmware. The decision to
when to PREEMEPT / ASSEMBLE a packet is made in firmware.

These preemption statistics are updated by the firmware based on the
action performed by the firmware. Driver can read these to know the
statistics of preemption. These stats will be able used by
ethtool_mm_stats once the support for Preemption is added in the driver.

> the device or the frames are for FW? 
> 
>> +	ICSSG_PA_STATS(FW_RX_EOF_SHORT_FRMERR),
>> +	ICSSG_PA_STATS(FW_RX_B0_DROP_EARLY_EOF),
>> +	ICSSG_PA_STATS(FW_TX_JUMBO_FRM_CUTOFF),
>> +	ICSSG_PA_STATS(FW_RX_EXP_FRAG_Q_DROP),
>> +	ICSSG_PA_STATS(FW_RX_FIFO_OVERRUN),
>> +	ICSSG_PA_STATS(FW_CUT_THR_PKT),
>> +	ICSSG_PA_STATS(FW_HOST_RX_PKT_CNT),
>> +	ICSSG_PA_STATS(FW_HOST_TX_PKT_CNT),
>> +	ICSSG_PA_STATS(FW_HOST_EGRESS_Q_PRE_OVERFLOW),
>> +	ICSSG_PA_STATS(FW_HOST_EGRESS_Q_EXP_OVERFLOW),
>>  };
>>  
>>  #endif /* __NET_TI_ICSSG_STATS_H */
>> diff --git a/drivers/net/ethernet/ti/icssg/icssg_switch_map.h b/drivers/net/ethernet/ti/icssg/icssg_switch_map.h
>> index 424a7e945ea8..d30203a0978c 100644
>> --- a/drivers/net/ethernet/ti/icssg/icssg_switch_map.h
>> +++ b/drivers/net/ethernet/ti/icssg/icssg_switch_map.h
>> @@ -231,4 +231,109 @@
>>  /* Start of 32 bits PA_STAT counters */
>>  #define PA_STAT_32b_START_OFFSET                           0x0080
>>  
>> +/* Diagnostic error counter which increments when RTU drops a locally injected
>> + * packet due to port disabled or rule violation.
>> + */
>> +#define FW_RTU_PKT_DROP		0x0088
>> +
>> +/* Tx Queue Overflow Counters */
>> +#define FW_Q0_OVERFLOW		0x0090
>> +#define FW_Q1_OVERFLOW		0x0098
>> +#define FW_Q2_OVERFLOW		0x00A0
>> +#define FW_Q3_OVERFLOW		0x00A8
>> +#define FW_Q4_OVERFLOW		0x00B0
>> +#define FW_Q5_OVERFLOW		0x00B8
>> +#define FW_Q6_OVERFLOW		0x00C0
>> +#define FW_Q7_OVERFLOW		0x00C8
>> +
>> +/* Incremented if a packet is dropped at PRU because of a rule violation */
>> +#define FW_DROPPED_PKT		0x00F8
> 
> Instead of adding comments here please add a file under
> Documentation/networking/device_drivers/ with the explanations.
> That's far more likely to be discovered by users, no?

Sure I will drop these MACRO comments and create a .rst file in
Documentation/networking/device_drivers/

One question though, should I create a table for the stats and it's
description or should I create a section for each stats?

Something like this,

FW_RTU_PKT_DROP
---------------
Diagnostic error counter which increments when RTU drops a locally
injected packet due to port being disabled or rule violation.

Please let me know what do you think.

-- 
Thanks and Regards,
Danish

  reply	other threads:[~2025-03-04  8:17 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-27  9:37 MD Danish Anwar
2025-03-03 13:42 ` Simon Horman
2025-03-04  1:25 ` Jakub Kicinski
2025-03-04  8:16   ` MD Danish Anwar [this message]
2025-03-05  0:24     ` Jakub Kicinski
2025-03-05  5:20       ` MD Danish Anwar

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=33c38844-4fbe-469c-bb5f-06bdb7721114@ti.com \
    --to=danishanwar@ti.com \
    --cc=andrew+netdev@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=diogo.ivo@siemens.com \
    --cc=edumazet@google.com \
    --cc=kuba@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=m-malladi@ti.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=rogerq@kernel.org \
    --cc=srk@ti.com \
    --cc=vigneshr@ti.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®