All of lore.kernel.org
 help / color / mirror / Atom feed
* [net-next PATCH v3 0/3] RVU Debugfs updates.
@ 2021-10-27 18:07 Rakesh Babu Saladi
  2021-10-27 18:07 ` [net-next PATCH v3 1/3] octeontx2-af: debugfs: Minor changes Rakesh Babu Saladi
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Rakesh Babu Saladi @ 2021-10-27 18:07 UTC (permalink / raw)
  To: davem, kuba, netdev, linux-kernel
  Cc: sgoutham, gakula, sbhatta, hkelam, Rakesh Babu Saladi

Patch 1: Few minor changes such as spelling mistakes, deleting unwanted
characters, etc.
Patch 2: Add debugfs dump for lmtst map table
Patch 3: Add channel and channel mask in debugfs.

Changes made from v2 to v3:
1. In patch 1 moved few lines and submitted those changes as a
different patch to net branch
2. Patch 2 is left unchanged.
3. Patch 3 is left unchanged.


Harman Kalra (1):
  octeontx2-af: cn10k: debugfs for dumping LMTST map table

Rakesh Babu (1):
  octeontx2-af: debugfs: Add channel and channel mask.

Rakesh Babu Saladi (1):
  octeontx2-af: debugfs: Minor changes.

 .../net/ethernet/marvell/octeontx2/af/npc.h   |   4 +
 .../marvell/octeontx2/af/rvu_debugfs.c        | 118 ++++++++++++++++--
 .../marvell/octeontx2/af/rvu_npc_fs.c         |   3 +
 3 files changed, 114 insertions(+), 11 deletions(-)

--
2.17.1

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [net-next PATCH v3 1/3] octeontx2-af: debugfs: Minor changes.
  2021-10-27 18:07 [net-next PATCH v3 0/3] RVU Debugfs updates Rakesh Babu Saladi
@ 2021-10-27 18:07 ` Rakesh Babu Saladi
  2021-10-27 18:07 ` [net-next PATCH v3 2/3] octeontx2-af: cn10k: debugfs for dumping LMTST map table Rakesh Babu Saladi
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Rakesh Babu Saladi @ 2021-10-27 18:07 UTC (permalink / raw)
  To: davem, kuba, netdev, linux-kernel
  Cc: sgoutham, gakula, sbhatta, hkelam, Rakesh Babu Saladi

Few changes in rvu_debugfs.c file to remove unwanted characters,
indenting the code, added a new comment line etc.

Signed-off-by: Rakesh Babu Saladi <rsaladi2@marvell.com>
Signed-off-by: Sunil Kovvuri Goutham <sgoutham@marvell.com>
---
 .../marvell/octeontx2/af/rvu_debugfs.c        | 22 +++++++++----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
index 9338765da048..a8f2cf53c83b 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
@@ -95,7 +95,7 @@ static char *cgx_tx_stats_fields[] = {
 	[CGX_STAT5]	= "Total frames sent on the interface",
 	[CGX_STAT6]	= "Packets sent with an octet count < 64",
 	[CGX_STAT7]	= "Packets sent with an octet count == 64",
-	[CGX_STAT8]	= "Packets sent with an octet count of 65–127",
+	[CGX_STAT8]	= "Packets sent with an octet count of 65-127",
 	[CGX_STAT9]	= "Packets sent with an octet count of 128-255",
 	[CGX_STAT10]	= "Packets sent with an octet count of 256-511",
 	[CGX_STAT11]	= "Packets sent with an octet count of 512-1023",
@@ -125,7 +125,7 @@ static char *rpm_rx_stats_fields[] = {
 	"Total frames received on interface",
 	"Packets received with an octet count < 64",
 	"Packets received with an octet count == 64",
-	"Packets received with an octet count of 65–127",
+	"Packets received with an octet count of 65-127",
 	"Packets received with an octet count of 128-255",
 	"Packets received with an octet count of 256-511",
 	"Packets received with an octet count of 512-1023",
@@ -164,7 +164,7 @@ static char *rpm_tx_stats_fields[] = {
 	"Packets sent to the multicast DMAC",
 	"Packets sent to a broadcast DMAC",
 	"Packets sent with an octet count == 64",
-	"Packets sent with an octet count of 65–127",
+	"Packets sent with an octet count of 65-127",
 	"Packets sent with an octet count of 128-255",
 	"Packets sent with an octet count of 256-511",
 	"Packets sent with an octet count of 512-1023",
@@ -1878,7 +1878,7 @@ static int cgx_print_stats(struct seq_file *s, int lmac_id)
 		return -ENODEV;
 
 	mac_ops = get_mac_ops(cgxd);
-
+	/* There can be no CGX devices at all */
 	if (!mac_ops)
 		return 0;
 
@@ -1956,13 +1956,13 @@ static int cgx_print_stats(struct seq_file *s, int lmac_id)
 		if (err)
 			return err;
 
-	if (is_rvu_otx2(rvu))
-		seq_printf(s, "%s: %llu\n", cgx_tx_stats_fields[stat],
-			   tx_stat);
-	else
-		seq_printf(s, "%s: %llu\n", rpm_tx_stats_fields[stat],
-			   tx_stat);
-	stat++;
+		if (is_rvu_otx2(rvu))
+			seq_printf(s, "%s: %llu\n", cgx_tx_stats_fields[stat],
+				   tx_stat);
+		else
+			seq_printf(s, "%s: %llu\n", rpm_tx_stats_fields[stat],
+				   tx_stat);
+		stat++;
 	}
 
 	return err;
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [net-next PATCH v3 2/3] octeontx2-af: cn10k: debugfs for dumping LMTST map table
  2021-10-27 18:07 [net-next PATCH v3 0/3] RVU Debugfs updates Rakesh Babu Saladi
  2021-10-27 18:07 ` [net-next PATCH v3 1/3] octeontx2-af: debugfs: Minor changes Rakesh Babu Saladi
@ 2021-10-27 18:07 ` Rakesh Babu Saladi
  2021-10-27 18:07 ` [net-next PATCH v3 3/3] octeontx2-af: debugfs: Add channel and channel mask Rakesh Babu Saladi
  2021-10-28 14:00 ` [net-next PATCH v3 0/3] RVU Debugfs updates patchwork-bot+netdevbpf
  3 siblings, 0 replies; 5+ messages in thread
From: Rakesh Babu Saladi @ 2021-10-27 18:07 UTC (permalink / raw)
  To: davem, kuba, netdev, linux-kernel
  Cc: sgoutham, gakula, sbhatta, hkelam, Harman Kalra,
	Bhaskara Budiredla, Rakesh Babu

From: Harman Kalra <hkalra@marvell.com>

CN10k SoCs use atomic stores of up to 128 bytes to submit
packets/instructions into co-processor cores. The enqueueing is performed
using Large Memory Transaction Store (LMTST) operations. They allow for
lockless enqueue operations - i.e., two different CPU cores can submit
instructions to the same queue without needing to lock the queue or
synchronize their accesses.

This patch implements a new debugfs entry for dumping LMTST map
table present on CN10K, as this might be very useful to debug any issue
in case of shared LMTST region among multiple pci functions.

Signed-off-by: Harman Kalra <hkalra@marvell.com>
Signed-off-by: Bhaskara Budiredla <bbudiredla@marvell.com>
Signed-off-by: Rakesh Babu <rsaladi2@marvell.com>
Signed-off-by: Sunil Kovvuri Goutham <sgoutham@marvell.com>
---
 .../marvell/octeontx2/af/rvu_debugfs.c        | 94 +++++++++++++++++++
 1 file changed, 94 insertions(+)

diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
index a8f2cf53c83b..62dd9d723bc8 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
@@ -226,6 +226,96 @@ static const struct file_operations rvu_dbg_##name##_fops = { \
 
 static void print_nix_qsize(struct seq_file *filp, struct rvu_pfvf *pfvf);
 
+#define LMT_MAPTBL_ENTRY_SIZE 16
+/* Dump LMTST map table */
+static ssize_t rvu_dbg_lmtst_map_table_display(struct file *filp,
+					       char __user *buffer,
+					       size_t count, loff_t *ppos)
+{
+	struct rvu *rvu = filp->private_data;
+	u64 lmt_addr, val, tbl_base;
+	int pf, vf, num_vfs, hw_vfs;
+	void __iomem *lmt_map_base;
+	int index = 0, off = 0;
+	int bytes_not_copied;
+	int buf_size = 10240;
+	char *buf;
+
+	/* don't allow partial reads */
+	if (*ppos != 0)
+		return 0;
+
+	buf = kzalloc(buf_size, GFP_KERNEL);
+	if (!buf)
+		return -ENOSPC;
+
+	tbl_base = rvu_read64(rvu, BLKADDR_APR, APR_AF_LMT_MAP_BASE);
+
+	lmt_map_base = ioremap_wc(tbl_base, 128 * 1024);
+	if (!lmt_map_base) {
+		dev_err(rvu->dev, "Failed to setup lmt map table mapping!!\n");
+		kfree(buf);
+		return false;
+	}
+
+	off +=	scnprintf(&buf[off], buf_size - 1 - off,
+			  "\n\t\t\t\t\tLmtst Map Table Entries");
+	off +=	scnprintf(&buf[off], buf_size - 1 - off,
+			  "\n\t\t\t\t\t=======================");
+	off +=	scnprintf(&buf[off], buf_size - 1 - off, "\nPcifunc\t\t\t");
+	off +=	scnprintf(&buf[off], buf_size - 1 - off, "Table Index\t\t");
+	off +=	scnprintf(&buf[off], buf_size - 1 - off,
+			  "Lmtline Base (word 0)\t\t");
+	off +=	scnprintf(&buf[off], buf_size - 1 - off,
+			  "Lmt Map Entry (word 1)");
+	off += scnprintf(&buf[off], buf_size - 1 - off, "\n");
+	for (pf = 0; pf < rvu->hw->total_pfs; pf++) {
+		off += scnprintf(&buf[off], buf_size - 1 - off, "PF%d  \t\t\t",
+				    pf);
+
+		index = pf * rvu->hw->total_vfs * LMT_MAPTBL_ENTRY_SIZE;
+		off += scnprintf(&buf[off], buf_size - 1 - off, " 0x%llx\t\t",
+				 (tbl_base + index));
+		lmt_addr = readq(lmt_map_base + index);
+		off += scnprintf(&buf[off], buf_size - 1 - off,
+				 " 0x%016llx\t\t", lmt_addr);
+		index += 8;
+		val = readq(lmt_map_base + index);
+		off += scnprintf(&buf[off], buf_size - 1 - off, " 0x%016llx\n",
+				 val);
+		/* Reading num of VFs per PF */
+		rvu_get_pf_numvfs(rvu, pf, &num_vfs, &hw_vfs);
+		for (vf = 0; vf < num_vfs; vf++) {
+			index = (pf * rvu->hw->total_vfs * 16) +
+				((vf + 1)  * LMT_MAPTBL_ENTRY_SIZE);
+			off += scnprintf(&buf[off], buf_size - 1 - off,
+					    "PF%d:VF%d  \t\t", pf, vf);
+			off += scnprintf(&buf[off], buf_size - 1 - off,
+					 " 0x%llx\t\t", (tbl_base + index));
+			lmt_addr = readq(lmt_map_base + index);
+			off += scnprintf(&buf[off], buf_size - 1 - off,
+					 " 0x%016llx\t\t", lmt_addr);
+			index += 8;
+			val = readq(lmt_map_base + index);
+			off += scnprintf(&buf[off], buf_size - 1 - off,
+					 " 0x%016llx\n", val);
+		}
+	}
+	off +=	scnprintf(&buf[off], buf_size - 1 - off, "\n");
+
+	bytes_not_copied = copy_to_user(buffer, buf, off);
+	kfree(buf);
+
+	iounmap(lmt_map_base);
+	if (bytes_not_copied)
+		return -EFAULT;
+
+	*ppos = off;
+	return off;
+}
+
+RVU_DEBUG_FOPS(lmtst_map_table, lmtst_map_table_display, NULL);
+
 /* Dumps current provisioning status of all RVU block LFs */
 static ssize_t rvu_dbg_rsrc_attach_status(struct file *filp,
 					  char __user *buffer,
@@ -2672,6 +2762,10 @@ void rvu_dbg_init(struct rvu *rvu)
 	debugfs_create_file("rsrc_alloc", 0444, rvu->rvu_dbg.root, rvu,
 			    &rvu_dbg_rsrc_status_fops);
 
+	if (!is_rvu_otx2(rvu))
+		debugfs_create_file("lmtst_map_table", 0444, rvu->rvu_dbg.root,
+				    rvu, &rvu_dbg_lmtst_map_table_fops);
+
 	if (!cgx_get_cgxcnt_max())
 		goto create;
 
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [net-next PATCH v3 3/3] octeontx2-af: debugfs: Add channel and channel mask.
  2021-10-27 18:07 [net-next PATCH v3 0/3] RVU Debugfs updates Rakesh Babu Saladi
  2021-10-27 18:07 ` [net-next PATCH v3 1/3] octeontx2-af: debugfs: Minor changes Rakesh Babu Saladi
  2021-10-27 18:07 ` [net-next PATCH v3 2/3] octeontx2-af: cn10k: debugfs for dumping LMTST map table Rakesh Babu Saladi
@ 2021-10-27 18:07 ` Rakesh Babu Saladi
  2021-10-28 14:00 ` [net-next PATCH v3 0/3] RVU Debugfs updates patchwork-bot+netdevbpf
  3 siblings, 0 replies; 5+ messages in thread
From: Rakesh Babu Saladi @ 2021-10-27 18:07 UTC (permalink / raw)
  To: davem, kuba, netdev, linux-kernel
  Cc: sgoutham, gakula, sbhatta, hkelam, Rakesh Babu

From: Rakesh Babu <rsaladi2@marvell.com>

This patch is to dispaly channel and channel_mask for each RX
interface of NPC MCAM rule.

Signed-off-by: Rakesh Babu <rsaladi2@marvell.com>
Signed-off-by: Sunil Kovvuri Goutham <sgoutham@marvell.com>
---
 drivers/net/ethernet/marvell/octeontx2/af/npc.h         | 4 ++++
 drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c | 2 ++
 drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c  | 3 +++
 3 files changed, 9 insertions(+)

diff --git a/drivers/net/ethernet/marvell/octeontx2/af/npc.h b/drivers/net/ethernet/marvell/octeontx2/af/npc.h
index 3144d309783c..77fd39e2c8db 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/npc.h
+++ b/drivers/net/ethernet/marvell/octeontx2/af/npc.h
@@ -8,6 +8,8 @@
 #ifndef NPC_H
 #define NPC_H
 
+#define NPC_KEX_CHAN_MASK	0xFFFULL
+
 enum NPC_LID_E {
 	NPC_LID_LA = 0,
 	NPC_LID_LB,
@@ -591,6 +593,8 @@ struct rvu_npc_mcam_rule {
 	u8 default_rule;
 	bool enable;
 	bool vfvlan_cfg;
+	u16 chan;
+	u16 chan_mask;
 };
 
 #endif /* NPC_H */
diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
index 62dd9d723bc8..94d479010410 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
@@ -2490,6 +2490,8 @@ static int rvu_dbg_npc_mcam_show_rules(struct seq_file *s, void *unused)
 				seq_printf(s, "VF%d", vf);
 			}
 			seq_puts(s, "\n");
+			seq_printf(s, "\tchannel: 0x%x\n", iter->chan);
+			seq_printf(s, "\tchannel_mask: 0x%x\n", iter->chan_mask);
 		}
 
 		rvu_dbg_npc_mcam_show_action(s, iter);
diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c
index 51ddc7b81d0b..ff2b21999f36 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c
@@ -1119,6 +1119,9 @@ static int npc_install_flow(struct rvu *rvu, int blkaddr, u16 target,
 	rule->default_rule = req->default_rule;
 	rule->owner = owner;
 	rule->enable = enable;
+	rule->chan_mask = write_req.entry_data.kw_mask[0] & NPC_KEX_CHAN_MASK;
+	rule->chan = write_req.entry_data.kw[0] & NPC_KEX_CHAN_MASK;
+	rule->chan &= rule->chan_mask;
 	if (is_npc_intf_tx(req->intf))
 		rule->intf = pfvf->nix_tx_intf;
 	else
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [net-next PATCH v3 0/3] RVU Debugfs updates.
  2021-10-27 18:07 [net-next PATCH v3 0/3] RVU Debugfs updates Rakesh Babu Saladi
                   ` (2 preceding siblings ...)
  2021-10-27 18:07 ` [net-next PATCH v3 3/3] octeontx2-af: debugfs: Add channel and channel mask Rakesh Babu Saladi
@ 2021-10-28 14:00 ` patchwork-bot+netdevbpf
  3 siblings, 0 replies; 5+ messages in thread
From: patchwork-bot+netdevbpf @ 2021-10-28 14:00 UTC (permalink / raw)
  To: Rakesh Babu Saladi
  Cc: davem, kuba, netdev, linux-kernel, sgoutham, gakula, sbhatta, hkelam

Hello:

This series was applied to netdev/net-next.git (master)
by David S. Miller <davem@davemloft.net>:

On Wed, 27 Oct 2021 23:37:42 +0530 you wrote:
> Patch 1: Few minor changes such as spelling mistakes, deleting unwanted
> characters, etc.
> Patch 2: Add debugfs dump for lmtst map table
> Patch 3: Add channel and channel mask in debugfs.
> 
> Changes made from v2 to v3:
> 1. In patch 1 moved few lines and submitted those changes as a
> different patch to net branch
> 2. Patch 2 is left unchanged.
> 3. Patch 3 is left unchanged.
> 
> [...]

Here is the summary with links:
  - [net-next,v3,1/3] octeontx2-af: debugfs: Minor changes.
    https://git.kernel.org/netdev/net-next/c/1910ccf03306
  - [net-next,v3,2/3] octeontx2-af: cn10k: debugfs for dumping LMTST map table
    https://git.kernel.org/netdev/net-next/c/0daa55d033b0
  - [net-next,v3,3/3] octeontx2-af: debugfs: Add channel and channel mask.
    https://git.kernel.org/netdev/net-next/c/9716a40a0f48

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2021-10-28 14:00 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-27 18:07 [net-next PATCH v3 0/3] RVU Debugfs updates Rakesh Babu Saladi
2021-10-27 18:07 ` [net-next PATCH v3 1/3] octeontx2-af: debugfs: Minor changes Rakesh Babu Saladi
2021-10-27 18:07 ` [net-next PATCH v3 2/3] octeontx2-af: cn10k: debugfs for dumping LMTST map table Rakesh Babu Saladi
2021-10-27 18:07 ` [net-next PATCH v3 3/3] octeontx2-af: debugfs: Add channel and channel mask Rakesh Babu Saladi
2021-10-28 14:00 ` [net-next PATCH v3 0/3] RVU Debugfs updates patchwork-bot+netdevbpf

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.