Linux ARM-MSM sub-architecture
 help / color / mirror / Atom feed
From: Andrew Lunn <andrew@lunn.ch>
To: Luo Jie <quic_luoj@quicinc.com>
Cc: Andrew Lunn <andrew+netdev@lunn.ch>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Lei Wei <quic_leiwei@quicinc.com>,
	Suruchi Agarwal <quic_suruchia@quicinc.com>,
	Pavithra R <quic_pavir@quicinc.com>,
	Simon Horman <horms@kernel.org>, Jonathan Corbet <corbet@lwn.net>,
	Kees Cook <kees@kernel.org>,
	"Gustavo A. R. Silva" <gustavoars@kernel.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	linux-arm-msm@vger.kernel.org, netdev@vger.kernel.org,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-doc@vger.kernel.org, linux-hardening@vger.kernel.org,
	quic_kkumarcs@quicinc.com, quic_linchen@quicinc.com,
	srinivas.kandagatla@linaro.org, bartosz.golaszewski@linaro.org,
	john@phrozen.org
Subject: Re: [PATCH net-next v3 13/14] net: ethernet: qualcomm: Add PPE debugfs support for PPE counters
Date: Tue, 11 Feb 2025 14:55:16 +0100	[thread overview]
Message-ID: <5a53333b-e94c-4fb7-b23d-e1d38d2dad8e@lunn.ch> (raw)
In-Reply-To: <20250209-qcom_ipq_ppe-v3-13-453ea18d3271@quicinc.com>

> +#define PRINT_COUNTER_PREFIX(desc, cnt_type)		\
> +	seq_printf(seq, "%-16s %16s", desc, cnt_type)
> +
> +#define PRINT_CPU_CODE_COUNTER(cnt, code)		\
> +	seq_printf(seq, "%10u(cpucode:%d)", cnt, code)
> +
> +#define PRINT_DROP_CODE_COUNTER(cnt, port, code)	\
> +	seq_printf(seq, "%10u(port=%d),dropcode:%d", cnt, port, code)
> +
> +#define PRINT_SINGLE_COUNTER(tag, cnt, str, index)			\
> +do {									\
> +	if (!((tag) % 4))							\
> +		seq_printf(seq, "\n%-16s %16s", "", "");		\
> +	seq_printf(seq, "%10u(%s=%04d)", cnt, str, index);		\
> +} while (0)
> +
> +#define PRINT_TWO_COUNTERS(tag, cnt0, cnt1, str, index)			\
> +do {									\
> +	if (!((tag) % 4))							\
> +		seq_printf(seq, "\n%-16s %16s", "", "");		\
> +	seq_printf(seq, "%10u/%u(%s=%04d)", cnt0, cnt1, str, index);	\
> +} while (0)

I don't think these make the code any more readable. Just inline it.

> +/* The number of packets dropped because of no buffer available, no PPE
> + * buffer assigned to these packets.
> + */
> +static void ppe_port_rx_drop_counter_get(struct ppe_device *ppe_dev,
> +					 struct seq_file *seq)
> +{
> +	u32 reg, drop_cnt = 0;
> +	int ret, i, tag = 0;
> +
> +	PRINT_COUNTER_PREFIX("PRX_DROP_CNT", "SILENT_DROP:");
> +	for (i = 0; i < PPE_DROP_CNT_TBL_ENTRIES; i++) {
> +		reg = PPE_DROP_CNT_TBL_ADDR + i * PPE_DROP_CNT_TBL_INC;
> +		ret = ppe_pkt_cnt_get(ppe_dev, reg, PPE_PKT_CNT_SIZE_1WORD,
> +				      &drop_cnt, NULL);
> +		if (ret) {
> +			seq_printf(seq, "ERROR %d\n", ret);
> +			return;
> +		}

This is an error getting the value from the hardware? You should not
put that into the debugfs itself, you want the read() call to return
it.

> +/* Display the various packet counters of PPE. */
> +static int ppe_packet_counter_show(struct seq_file *seq, void *v)
> +{
> +	struct ppe_device *ppe_dev = seq->private;
> +
> +	ppe_port_rx_drop_counter_get(ppe_dev, seq);
> +	ppe_port_rx_bm_drop_counter_get(ppe_dev, seq);
> +	ppe_port_rx_bm_port_counter_get(ppe_dev, seq);
> +	ppe_parse_pkt_counter_get(ppe_dev, seq);
> +	ppe_port_rx_counter_get(ppe_dev, seq);
> +	ppe_vp_rx_counter_get(ppe_dev, seq);
> +	ppe_pre_l2_counter_get(ppe_dev, seq);
> +	ppe_vlan_counter_get(ppe_dev, seq);
> +	ppe_cpu_code_counter_get(ppe_dev, seq);
> +	ppe_eg_vsi_counter_get(ppe_dev, seq);
> +	ppe_vp_tx_counter_get(ppe_dev, seq);
> +	ppe_port_tx_counter_get(ppe_dev, seq);
> +	ppe_queue_tx_counter_get(ppe_dev, seq);

It would be more normal to have one debugfs file per group of
counters.

	Andrew

  reply	other threads:[~2025-02-11 13:55 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-09 14:29 [PATCH net-next v3 00/14] Add PPE driver for Qualcomm IPQ9574 SoC Luo Jie
2025-02-09 14:29 ` [PATCH net-next v3 01/14] dt-bindings: net: Add PPE " Luo Jie
2025-02-10  2:47   ` Jie Gan
2025-02-11 14:02     ` Jie Luo
2025-02-09 14:29 ` [PATCH net-next v3 02/14] docs: networking: Add PPE driver documentation " Luo Jie
2025-02-10  2:15   ` Bagas Sanjaya
2025-02-11 12:36     ` Lei Wei
2025-02-09 14:29 ` [PATCH net-next v3 03/14] net: ethernet: qualcomm: Add PPE driver for " Luo Jie
2025-02-10  2:12   ` Jie Gan
2025-02-11 13:04     ` Andrew Lunn
2025-02-12  1:49       ` Jie Gan
2025-02-11 13:58     ` Jie Luo
2025-02-12  1:58       ` Jie Gan
2025-02-14  6:09         ` Jie Luo
2025-02-09 14:29 ` [PATCH net-next v3 04/14] net: ethernet: qualcomm: Initialize PPE buffer management for IPQ9574 Luo Jie
2025-02-11 13:14   ` Andrew Lunn
2025-02-19 13:00     ` Jie Luo
2025-02-11 13:22   ` Andrew Lunn
2025-02-20 14:38     ` Jie Luo
2025-02-20 15:09       ` Andrew Lunn
2025-03-06 10:01         ` Jie Luo
2025-03-06 15:29           ` Andrew Lunn
2025-03-11 10:44             ` Jie Luo
2025-02-09 14:29 ` [PATCH net-next v3 05/14] net: ethernet: qualcomm: Initialize PPE queue " Luo Jie
2025-02-09 14:29 ` [PATCH net-next v3 06/14] net: ethernet: qualcomm: Initialize the PPE scheduler settings Luo Jie
2025-02-11 13:32   ` Andrew Lunn
2025-02-20 14:50     ` Jie Luo
2025-02-20 15:12       ` Andrew Lunn
2025-02-28 15:24         ` Jie Luo
2025-02-09 14:29 ` [PATCH net-next v3 07/14] net: ethernet: qualcomm: Initialize PPE queue settings Luo Jie
2025-02-09 14:29 ` [PATCH net-next v3 08/14] net: ethernet: qualcomm: Initialize PPE service code settings Luo Jie
2025-02-09 14:29 ` [PATCH net-next v3 09/14] net: ethernet: qualcomm: Initialize PPE port control settings Luo Jie
2025-02-09 14:29 ` [PATCH net-next v3 10/14] net: ethernet: qualcomm: Initialize PPE RSS hash settings Luo Jie
2025-02-09 14:29 ` [PATCH net-next v3 11/14] net: ethernet: qualcomm: Initialize PPE queue to Ethernet DMA ring mapping Luo Jie
2025-02-09 14:29 ` [PATCH net-next v3 12/14] net: ethernet: qualcomm: Initialize PPE L2 bridge settings Luo Jie
2025-02-09 14:29 ` [PATCH net-next v3 13/14] net: ethernet: qualcomm: Add PPE debugfs support for PPE counters Luo Jie
2025-02-11 13:55   ` Andrew Lunn [this message]
2025-02-14  7:53     ` Jie Luo
2025-02-14 14:02       ` Andrew Lunn
2025-02-18 11:16         ` Jie Luo
2025-02-09 14:29 ` [PATCH net-next v3 14/14] MAINTAINERS: Add maintainer for Qualcomm PPE driver Luo Jie

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=5a53333b-e94c-4fb7-b23d-e1d38d2dad8e@lunn.ch \
    --to=andrew@lunn.ch \
    --cc=andrew+netdev@lunn.ch \
    --cc=bartosz.golaszewski@linaro.org \
    --cc=conor+dt@kernel.org \
    --cc=corbet@lwn.net \
    --cc=davem@davemloft.net \
    --cc=devicetree@vger.kernel.org \
    --cc=edumazet@google.com \
    --cc=gustavoars@kernel.org \
    --cc=horms@kernel.org \
    --cc=john@phrozen.org \
    --cc=kees@kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=kuba@kernel.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-hardening@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=p.zabel@pengutronix.de \
    --cc=pabeni@redhat.com \
    --cc=quic_kkumarcs@quicinc.com \
    --cc=quic_leiwei@quicinc.com \
    --cc=quic_linchen@quicinc.com \
    --cc=quic_luoj@quicinc.com \
    --cc=quic_pavir@quicinc.com \
    --cc=quic_suruchia@quicinc.com \
    --cc=robh@kernel.org \
    --cc=srinivas.kandagatla@linaro.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox