netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 net-next 0/2] octeontx2: Few debugfs enhancements
@ 2024-09-12 16:14 Linu Cherian
  2024-09-12 16:14 ` [PATCH v2 net-next 1/2] octeontx2-af: Knobs for NPC default rule counters Linu Cherian
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Linu Cherian @ 2024-09-12 16:14 UTC (permalink / raw)
  To: davem, sgoutham, netdev, linux-kernel
  Cc: gakula, hkelam, sbhatta, edumazet, kuba, pabeni, Linu Cherian

Changelog from v1:
Removed wrong mutex_unlock invocations.

Patch 1 adds a devlink param to enable/disable counters for default
rules. Once enabled, counters can be read from the debugfs files 

Patch 2 adds channel info to the existing device - RPM map debugfs files  

Linu Cherian (2):
  octeontx2-af: Knobs for NPC default rule counters
  octeontx2-af: debugfs: Add Channel info to RPM map

 .../net/ethernet/marvell/octeontx2/af/rvu.h   |   8 +-
 .../marvell/octeontx2/af/rvu_debugfs.c        |  11 +-
 .../marvell/octeontx2/af/rvu_devlink.c        |  32 +++++
 .../ethernet/marvell/octeontx2/af/rvu_npc.c   | 134 ++++++++++++++++--
 .../marvell/octeontx2/af/rvu_npc_fs.c         |  36 ++---
 5 files changed, 178 insertions(+), 43 deletions(-)

-- 
2.34.1


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

* [PATCH v2 net-next 1/2] octeontx2-af: Knobs for NPC default rule counters
  2024-09-12 16:14 [PATCH v2 net-next 0/2] octeontx2: Few debugfs enhancements Linu Cherian
@ 2024-09-12 16:14 ` Linu Cherian
  2024-09-14  8:13   ` Simon Horman
  2024-09-12 16:14 ` [PATCH v2 net-next 2/2] octeontx2-af: debugfs: Add Channel info to RPM map Linu Cherian
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 8+ messages in thread
From: Linu Cherian @ 2024-09-12 16:14 UTC (permalink / raw)
  To: davem, sgoutham, netdev, linux-kernel
  Cc: gakula, hkelam, sbhatta, edumazet, kuba, pabeni, Linu Cherian

Add devlink knobs to enable/disable counters on NPC
default rule entries.

Introduce lowlevel variant of rvu_mcam_remove/add_counter_from/to_rule
for better code reuse, which assumes necessary locks are taken at
higher level.

Sample command to enable default rule counters:
devlink dev param set <dev> name npc_def_rule_cntr value true cmode runtime

Sample command to read the counter:
cat /sys/kernel/debug/cn10k/npc/mcam_rules

Signed-off-by: Linu Cherian <lcherian@marvell.com>
---
Changelog from v1:
Removed wrong mutex_unlock invocations.

 .../net/ethernet/marvell/octeontx2/af/rvu.h   |   8 +-
 .../marvell/octeontx2/af/rvu_devlink.c        |  32 +++++
 .../ethernet/marvell/octeontx2/af/rvu_npc.c   | 134 ++++++++++++++++--
 .../marvell/octeontx2/af/rvu_npc_fs.c         |  36 ++---
 4 files changed, 171 insertions(+), 39 deletions(-)

diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu.h b/drivers/net/ethernet/marvell/octeontx2/af/rvu.h
index 43b1d83686d1..fb4b88e94649 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/rvu.h
+++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu.h
@@ -526,6 +526,7 @@ struct rvu {
 	struct mutex		alias_lock; /* Serialize bar2 alias access */
 	int			vfs; /* Number of VFs attached to RVU */
 	u16			vf_devid; /* VF devices id */
+	bool			def_rule_cntr_en;
 	int			nix_blkaddr[MAX_NIX_BLKS];
 
 	/* Mbox */
@@ -961,7 +962,11 @@ void rvu_npc_disable_default_entries(struct rvu *rvu, u16 pcifunc, int nixlf);
 void rvu_npc_enable_default_entries(struct rvu *rvu, u16 pcifunc, int nixlf);
 void rvu_npc_update_flowkey_alg_idx(struct rvu *rvu, u16 pcifunc, int nixlf,
 				    int group, int alg_idx, int mcam_index);
-
+void __rvu_mcam_remove_counter_from_rule(struct rvu *rvu, u16 pcifunc,
+					 struct rvu_npc_mcam_rule *rule);
+void __rvu_mcam_add_counter_to_rule(struct rvu *rvu, u16 pcifunc,
+				    struct rvu_npc_mcam_rule *rule,
+				    struct npc_install_flow_rsp *rsp);
 void rvu_npc_get_mcam_entry_alloc_info(struct rvu *rvu, u16 pcifunc,
 				       int blkaddr, int *alloc_cnt,
 				       int *enable_cnt);
@@ -986,6 +991,7 @@ void npc_set_mcam_action(struct rvu *rvu, struct npc_mcam *mcam,
 void npc_read_mcam_entry(struct rvu *rvu, struct npc_mcam *mcam,
 			 int blkaddr, u16 src, struct mcam_entry *entry,
 			 u8 *intf, u8 *ena);
+int npc_config_cntr_default_entries(struct rvu *rvu, bool enable);
 bool is_cgx_config_permitted(struct rvu *rvu, u16 pcifunc);
 bool is_mac_feature_supported(struct rvu *rvu, int pf, int feature);
 u32  rvu_cgx_get_fifolen(struct rvu *rvu);
diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c
index 7498ab429963..9c26e19a860b 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c
@@ -1238,6 +1238,7 @@ enum rvu_af_dl_param_id {
 	RVU_AF_DEVLINK_PARAM_ID_DWRR_MTU,
 	RVU_AF_DEVLINK_PARAM_ID_NPC_MCAM_ZONE_PERCENT,
 	RVU_AF_DEVLINK_PARAM_ID_NPC_EXACT_FEATURE_DISABLE,
+	RVU_AF_DEVLINK_PARAM_ID_NPC_DEF_RULE_CNTR_ENABLE,
 	RVU_AF_DEVLINK_PARAM_ID_NIX_MAXLF,
 };
 
@@ -1358,6 +1359,32 @@ static int rvu_af_dl_npc_mcam_high_zone_percent_validate(struct devlink *devlink
 	return 0;
 }
 
+static int rvu_af_dl_npc_def_rule_cntr_get(struct devlink *devlink, u32 id,
+					   struct devlink_param_gset_ctx *ctx)
+{
+	struct rvu_devlink *rvu_dl = devlink_priv(devlink);
+	struct rvu *rvu = rvu_dl->rvu;
+
+	ctx->val.vbool = rvu->def_rule_cntr_en;
+
+	return 0;
+}
+
+static int rvu_af_dl_npc_def_rule_cntr_set(struct devlink *devlink, u32 id,
+					   struct devlink_param_gset_ctx *ctx,
+					   struct netlink_ext_ack *extack)
+{
+	struct rvu_devlink *rvu_dl = devlink_priv(devlink);
+	struct rvu *rvu = rvu_dl->rvu;
+	int err;
+
+	err = npc_config_cntr_default_entries(rvu, ctx->val.vbool);
+	if (!err)
+		rvu->def_rule_cntr_en = ctx->val.vbool;
+
+	return err;
+}
+
 static int rvu_af_dl_nix_maxlf_get(struct devlink *devlink, u32 id,
 				   struct devlink_param_gset_ctx *ctx)
 {
@@ -1444,6 +1471,11 @@ static const struct devlink_param rvu_af_dl_params[] = {
 			     rvu_af_dl_npc_mcam_high_zone_percent_get,
 			     rvu_af_dl_npc_mcam_high_zone_percent_set,
 			     rvu_af_dl_npc_mcam_high_zone_percent_validate),
+	DEVLINK_PARAM_DRIVER(RVU_AF_DEVLINK_PARAM_ID_NPC_DEF_RULE_CNTR_ENABLE,
+			     "npc_def_rule_cntr", DEVLINK_PARAM_TYPE_BOOL,
+			     BIT(DEVLINK_PARAM_CMODE_RUNTIME),
+			     rvu_af_dl_npc_def_rule_cntr_get,
+			     rvu_af_dl_npc_def_rule_cntr_set, NULL),
 	DEVLINK_PARAM_DRIVER(RVU_AF_DEVLINK_PARAM_ID_NIX_MAXLF,
 			     "nix_maxlf", DEVLINK_PARAM_TYPE_U16,
 			     BIT(DEVLINK_PARAM_CMODE_RUNTIME),
diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c
index 97722ce8c4cb..9e39c3149a4f 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c
@@ -2691,6 +2691,51 @@ void npc_mcam_rsrcs_reserve(struct rvu *rvu, int blkaddr, int entry_idx)
 	npc_mcam_set_bit(mcam, entry_idx);
 }
 
+int npc_config_cntr_default_entries(struct rvu *rvu, bool enable)
+{
+	struct npc_install_flow_rsp rsp = { 0 };
+	struct npc_mcam *mcam = &rvu->hw->mcam;
+	struct rvu_npc_mcam_rule *rule;
+	int blkaddr;
+
+	blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NPC, 0);
+	if (blkaddr < 0)
+		return -EINVAL;
+
+	mutex_lock(&mcam->lock);
+	list_for_each_entry(rule, &mcam->mcam_rules, list) {
+		if (!is_mcam_entry_enabled(rvu, mcam, blkaddr, rule->entry))
+			continue;
+		if (!rule->default_rule)
+			continue;
+		if (enable && !rule->has_cntr) { /* Alloc and map new counter */
+			__rvu_mcam_add_counter_to_rule(rvu, rule->owner,
+						       rule, &rsp);
+			if (rsp.counter < 0) {
+				dev_err(rvu->dev, "%s: Err to allocate cntr for default rule (err=%d)\n",
+					__func__, rsp.counter);
+				break;
+			}
+			npc_map_mcam_entry_and_cntr(rvu, mcam, blkaddr,
+						    rule->entry, rsp.counter);
+		}
+
+		if (enable && rule->has_cntr) /* Reset counter before use */ {
+			rvu_write64(rvu, blkaddr,
+				    NPC_AF_MATCH_STATX(rule->cntr), 0x0);
+			continue;
+		}
+
+		if (!enable && rule->has_cntr) /* Free and unmap counter */ {
+			__rvu_mcam_remove_counter_from_rule(rvu, rule->owner,
+							    rule);
+		}
+	}
+	mutex_unlock(&mcam->lock);
+
+	return 0;
+}
+
 int rvu_mbox_handler_npc_mcam_alloc_entry(struct rvu *rvu,
 					  struct npc_mcam_alloc_entry_req *req,
 					  struct npc_mcam_alloc_entry_rsp *rsp)
@@ -2975,9 +3020,9 @@ int rvu_mbox_handler_npc_mcam_shift_entry(struct rvu *rvu,
 	return rc;
 }
 
-int rvu_mbox_handler_npc_mcam_alloc_counter(struct rvu *rvu,
-			struct npc_mcam_alloc_counter_req *req,
-			struct npc_mcam_alloc_counter_rsp *rsp)
+static int __npc_mcam_alloc_counter(struct rvu *rvu,
+				    struct npc_mcam_alloc_counter_req *req,
+				    struct npc_mcam_alloc_counter_rsp *rsp)
 {
 	struct npc_mcam *mcam = &rvu->hw->mcam;
 	u16 pcifunc = req->hdr.pcifunc;
@@ -2998,11 +3043,9 @@ int rvu_mbox_handler_npc_mcam_alloc_counter(struct rvu *rvu,
 	if (!req->contig && req->count > NPC_MAX_NONCONTIG_COUNTERS)
 		return NPC_MCAM_INVALID_REQ;
 
-	mutex_lock(&mcam->lock);
 
 	/* Check if unused counters are available or not */
 	if (!rvu_rsrc_free_count(&mcam->counters)) {
-		mutex_unlock(&mcam->lock);
 		return NPC_MCAM_ALLOC_FAILED;
 	}
 
@@ -3035,12 +3078,27 @@ int rvu_mbox_handler_npc_mcam_alloc_counter(struct rvu *rvu,
 		}
 	}
 
-	mutex_unlock(&mcam->lock);
 	return 0;
 }
 
-int rvu_mbox_handler_npc_mcam_free_counter(struct rvu *rvu,
-		struct npc_mcam_oper_counter_req *req, struct msg_rsp *rsp)
+int rvu_mbox_handler_npc_mcam_alloc_counter(struct rvu *rvu,
+			struct npc_mcam_alloc_counter_req *req,
+			struct npc_mcam_alloc_counter_rsp *rsp)
+{
+	struct npc_mcam *mcam = &rvu->hw->mcam;
+	int err;
+
+	mutex_lock(&mcam->lock);
+
+	err = __npc_mcam_alloc_counter(rvu, req, rsp);
+
+	mutex_unlock(&mcam->lock);
+	return err;
+}
+
+static int __npc_mcam_free_counter(struct rvu *rvu,
+				   struct npc_mcam_oper_counter_req *req,
+				   struct msg_rsp *rsp)
 {
 	struct npc_mcam *mcam = &rvu->hw->mcam;
 	u16 index, entry = 0;
@@ -3050,10 +3108,8 @@ int rvu_mbox_handler_npc_mcam_free_counter(struct rvu *rvu,
 	if (blkaddr < 0)
 		return NPC_MCAM_INVALID_REQ;
 
-	mutex_lock(&mcam->lock);
 	err = npc_mcam_verify_counter(mcam, req->hdr.pcifunc, req->cntr);
 	if (err) {
-		mutex_unlock(&mcam->lock);
 		return err;
 	}
 
@@ -3077,10 +3133,66 @@ int rvu_mbox_handler_npc_mcam_free_counter(struct rvu *rvu,
 					      index, req->cntr);
 	}
 
-	mutex_unlock(&mcam->lock);
 	return 0;
 }
 
+int rvu_mbox_handler_npc_mcam_free_counter(struct rvu *rvu,
+		struct npc_mcam_oper_counter_req *req, struct msg_rsp *rsp)
+{
+	struct npc_mcam *mcam = &rvu->hw->mcam;
+	int err;
+
+	mutex_lock(&mcam->lock);
+
+	err = __npc_mcam_free_counter(rvu, req, rsp);
+
+	mutex_unlock(&mcam->lock);
+
+	return err;
+}
+
+void __rvu_mcam_remove_counter_from_rule(struct rvu *rvu, u16 pcifunc,
+					 struct rvu_npc_mcam_rule *rule)
+{
+	struct npc_mcam_oper_counter_req free_req = { 0 };
+	struct msg_rsp free_rsp;
+
+	if (!rule->has_cntr)
+		return;
+
+	free_req.hdr.pcifunc = pcifunc;
+	free_req.cntr = rule->cntr;
+
+	__npc_mcam_free_counter(rvu, &free_req, &free_rsp);
+	rule->has_cntr = false;
+}
+
+void __rvu_mcam_add_counter_to_rule(struct rvu *rvu, u16 pcifunc,
+				    struct rvu_npc_mcam_rule *rule,
+				    struct npc_install_flow_rsp *rsp)
+{
+	struct npc_mcam_alloc_counter_req cntr_req = { 0 };
+	struct npc_mcam_alloc_counter_rsp cntr_rsp = { 0 };
+	int err;
+
+	cntr_req.hdr.pcifunc = pcifunc;
+	cntr_req.contig = true;
+	cntr_req.count = 1;
+
+	/* we try to allocate a counter to track the stats of this
+	 * rule. If counter could not be allocated then proceed
+	 * without counter because counters are limited than entries.
+	 */
+	err = __npc_mcam_alloc_counter(rvu, &cntr_req, &cntr_rsp);
+	if (!err && cntr_rsp.count) {
+		rule->cntr = cntr_rsp.cntr;
+		rule->has_cntr = true;
+		rsp->counter = rule->cntr;
+	} else {
+		rsp->counter = err;
+	}
+}
+
 int rvu_mbox_handler_npc_mcam_unmap_counter(struct rvu *rvu,
 		struct npc_mcam_unmap_counter_req *req, struct msg_rsp *rsp)
 {
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 150635de2bd5..7a1c18b1486d 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c
@@ -1081,44 +1081,26 @@ static void rvu_mcam_add_rule(struct npc_mcam *mcam,
 static void rvu_mcam_remove_counter_from_rule(struct rvu *rvu, u16 pcifunc,
 					      struct rvu_npc_mcam_rule *rule)
 {
-	struct npc_mcam_oper_counter_req free_req = { 0 };
-	struct msg_rsp free_rsp;
+	struct npc_mcam *mcam = &rvu->hw->mcam;
 
-	if (!rule->has_cntr)
-		return;
+	mutex_lock(&mcam->lock);
 
-	free_req.hdr.pcifunc = pcifunc;
-	free_req.cntr = rule->cntr;
+	__rvu_mcam_remove_counter_from_rule(rvu, pcifunc, rule);
 
-	rvu_mbox_handler_npc_mcam_free_counter(rvu, &free_req, &free_rsp);
-	rule->has_cntr = false;
+	mutex_unlock(&mcam->lock);
 }
 
 static void rvu_mcam_add_counter_to_rule(struct rvu *rvu, u16 pcifunc,
 					 struct rvu_npc_mcam_rule *rule,
 					 struct npc_install_flow_rsp *rsp)
 {
-	struct npc_mcam_alloc_counter_req cntr_req = { 0 };
-	struct npc_mcam_alloc_counter_rsp cntr_rsp = { 0 };
-	int err;
+	struct npc_mcam *mcam = &rvu->hw->mcam;
 
-	cntr_req.hdr.pcifunc = pcifunc;
-	cntr_req.contig = true;
-	cntr_req.count = 1;
+	mutex_lock(&mcam->lock);
 
-	/* we try to allocate a counter to track the stats of this
-	 * rule. If counter could not be allocated then proceed
-	 * without counter because counters are limited than entries.
-	 */
-	err = rvu_mbox_handler_npc_mcam_alloc_counter(rvu, &cntr_req,
-						      &cntr_rsp);
-	if (!err && cntr_rsp.count) {
-		rule->cntr = cntr_rsp.cntr;
-		rule->has_cntr = true;
-		rsp->counter = rule->cntr;
-	} else {
-		rsp->counter = err;
-	}
+	__rvu_mcam_add_counter_to_rule(rvu, pcifunc, rule, rsp);
+
+	mutex_unlock(&mcam->lock);
 }
 
 static int npc_mcast_update_action_index(struct rvu *rvu, struct npc_install_flow_req *req,
-- 
2.34.1


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

* [PATCH v2 net-next 2/2] octeontx2-af: debugfs: Add Channel info to RPM map
  2024-09-12 16:14 [PATCH v2 net-next 0/2] octeontx2: Few debugfs enhancements Linu Cherian
  2024-09-12 16:14 ` [PATCH v2 net-next 1/2] octeontx2-af: Knobs for NPC default rule counters Linu Cherian
@ 2024-09-12 16:14 ` Linu Cherian
  2024-09-14  4:43 ` [PATCH v2 net-next 0/2] octeontx2: Few debugfs enhancements Jakub Kicinski
  2024-09-14  4:50 ` patchwork-bot+netdevbpf
  3 siblings, 0 replies; 8+ messages in thread
From: Linu Cherian @ 2024-09-12 16:14 UTC (permalink / raw)
  To: davem, sgoutham, netdev, linux-kernel
  Cc: gakula, hkelam, sbhatta, edumazet, kuba, pabeni, Linu Cherian

Display channel info in the RPM map debugfs output.

With this, cat /sys/kernel/debug/cn10k/rvu_pf_rpm_map
would display channel number for each device in addition to
the existing data.

Sample output:
PCI dev         RVU PF Func     NIX block       rpm     LMAC    CHAN
0002:02:00.0    0x400           NIX0            rpm0    LMAC0   256

Signed-off-by: Linu Cherian <lcherian@marvell.com>
---
Changelog from v1:
No changes

 .../net/ethernet/marvell/octeontx2/af/rvu_debugfs.c   | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
index 4a4ef5bd9e0b..87ba77e5026a 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
@@ -838,10 +838,10 @@ RVU_DEBUG_FOPS(rsrc_status, rsrc_attach_status, NULL);
 
 static int rvu_dbg_rvu_pf_cgx_map_display(struct seq_file *filp, void *unused)
 {
+	char cgx[10], lmac[10], chan[10];
 	struct rvu *rvu = filp->private;
 	struct pci_dev *pdev = NULL;
 	struct mac_ops *mac_ops;
-	char cgx[10], lmac[10];
 	struct rvu_pfvf *pfvf;
 	int pf, domain, blkid;
 	u8 cgx_id, lmac_id;
@@ -852,7 +852,7 @@ static int rvu_dbg_rvu_pf_cgx_map_display(struct seq_file *filp, void *unused)
 	/* There can be no CGX devices at all */
 	if (!mac_ops)
 		return 0;
-	seq_printf(filp, "PCI dev\t\tRVU PF Func\tNIX block\t%s\tLMAC\n",
+	seq_printf(filp, "PCI dev\t\tRVU PF Func\tNIX block\t%s\tLMAC\tCHAN\n",
 		   mac_ops->name);
 	for (pf = 0; pf < rvu->hw->total_pfs; pf++) {
 		if (!is_pf_cgxmapped(rvu, pf))
@@ -876,8 +876,11 @@ static int rvu_dbg_rvu_pf_cgx_map_display(struct seq_file *filp, void *unused)
 				    &lmac_id);
 		sprintf(cgx, "%s%d", mac_ops->name, cgx_id);
 		sprintf(lmac, "LMAC%d", lmac_id);
-		seq_printf(filp, "%s\t0x%x\t\tNIX%d\t\t%s\t%s\n",
-			   dev_name(&pdev->dev), pcifunc, blkid, cgx, lmac);
+		sprintf(chan, "%d",
+			rvu_nix_chan_cgx(rvu, cgx_id, lmac_id, 0));
+		seq_printf(filp, "%s\t0x%x\t\tNIX%d\t\t%s\t%s\t%s\n",
+			   dev_name(&pdev->dev), pcifunc, blkid, cgx, lmac,
+			   chan);
 
 		pci_dev_put(pdev);
 	}
-- 
2.34.1


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

* Re: [PATCH v2 net-next 0/2] octeontx2: Few debugfs enhancements
  2024-09-12 16:14 [PATCH v2 net-next 0/2] octeontx2: Few debugfs enhancements Linu Cherian
  2024-09-12 16:14 ` [PATCH v2 net-next 1/2] octeontx2-af: Knobs for NPC default rule counters Linu Cherian
  2024-09-12 16:14 ` [PATCH v2 net-next 2/2] octeontx2-af: debugfs: Add Channel info to RPM map Linu Cherian
@ 2024-09-14  4:43 ` Jakub Kicinski
  2024-09-14  4:50 ` patchwork-bot+netdevbpf
  3 siblings, 0 replies; 8+ messages in thread
From: Jakub Kicinski @ 2024-09-14  4:43 UTC (permalink / raw)
  To: Linu Cherian
  Cc: davem, sgoutham, netdev, linux-kernel, gakula, hkelam, sbhatta,
	edumazet, pabeni

On Thu, 12 Sep 2024 21:44:48 +0530 Linu Cherian wrote:
> Patch 1 adds a devlink param to enable/disable counters for default
> rules. Once enabled, counters can be read from the debugfs files 
> 
> Patch 2 adds channel info to the existing device - RPM map debugfs files  

We're closing up the 6.12 release, there isn't enough time to think
thru patch 1, but patch 2 looks fairly straightforward so I'll apply
just that. Please repost patch 1 when net-next reopens.

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

* Re: [PATCH v2 net-next 0/2] octeontx2: Few debugfs enhancements
  2024-09-12 16:14 [PATCH v2 net-next 0/2] octeontx2: Few debugfs enhancements Linu Cherian
                   ` (2 preceding siblings ...)
  2024-09-14  4:43 ` [PATCH v2 net-next 0/2] octeontx2: Few debugfs enhancements Jakub Kicinski
@ 2024-09-14  4:50 ` patchwork-bot+netdevbpf
  3 siblings, 0 replies; 8+ messages in thread
From: patchwork-bot+netdevbpf @ 2024-09-14  4:50 UTC (permalink / raw)
  To: Linu Cherian
  Cc: davem, sgoutham, netdev, linux-kernel, gakula, hkelam, sbhatta,
	edumazet, kuba, pabeni

Hello:

This series was applied to netdev/net-next.git (main)
by Jakub Kicinski <kuba@kernel.org>:

On Thu, 12 Sep 2024 21:44:48 +0530 you wrote:
> Changelog from v1:
> Removed wrong mutex_unlock invocations.
> 
> Patch 1 adds a devlink param to enable/disable counters for default
> rules. Once enabled, counters can be read from the debugfs files
> 
> Patch 2 adds channel info to the existing device - RPM map debugfs files
> 
> [...]

Here is the summary with links:
  - [v2,net-next,1/2] octeontx2-af: Knobs for NPC default rule counters
    (no matching commit)
  - [v2,net-next,2/2] octeontx2-af: debugfs: Add Channel info to RPM map
    https://git.kernel.org/netdev/net-next/c/beb2baa9e54d

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] 8+ messages in thread

* Re: [PATCH v2 net-next 1/2] octeontx2-af: Knobs for NPC default rule counters
  2024-09-12 16:14 ` [PATCH v2 net-next 1/2] octeontx2-af: Knobs for NPC default rule counters Linu Cherian
@ 2024-09-14  8:13   ` Simon Horman
  2024-09-17  4:38     ` Linu Cherian
  0 siblings, 1 reply; 8+ messages in thread
From: Simon Horman @ 2024-09-14  8:13 UTC (permalink / raw)
  To: Linu Cherian
  Cc: davem, sgoutham, netdev, linux-kernel, gakula, hkelam, sbhatta,
	edumazet, kuba, pabeni

On Thu, Sep 12, 2024 at 09:44:49PM +0530, Linu Cherian wrote:
> Add devlink knobs to enable/disable counters on NPC
> default rule entries.
> 
> Introduce lowlevel variant of rvu_mcam_remove/add_counter_from/to_rule
> for better code reuse, which assumes necessary locks are taken at
> higher level.
> 
> Sample command to enable default rule counters:
> devlink dev param set <dev> name npc_def_rule_cntr value true cmode runtime
> 
> Sample command to read the counter:
> cat /sys/kernel/debug/cn10k/npc/mcam_rules
> 
> Signed-off-by: Linu Cherian <lcherian@marvell.com>
> ---
> Changelog from v1:
> Removed wrong mutex_unlock invocations.

Hi Linu,

This patch seems to be doing two things:

1) Refactoring some functions to have locking and non-locking variants.
   By LoC this is appears the bulk of the code changed in this patch.
   It also appears to be straightforward.

2) Adding devlink knobs

   As this is a user-facing change it probably requires a deeper review
   than 1)

I would suggest, that for review, it would be very nice to split
1) and 2) into separate patches. Maybe including a note in the patch
for 1) that the refactor will be used in the following patch for 2).

As for the code changes themselves, I did look over them,
and I didn't see any problems.


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

* Re: [PATCH v2 net-next 1/2] octeontx2-af: Knobs for NPC default rule counters
  2024-09-14  8:13   ` Simon Horman
@ 2024-09-17  4:38     ` Linu Cherian
  2024-09-17  8:12       ` Simon Horman
  0 siblings, 1 reply; 8+ messages in thread
From: Linu Cherian @ 2024-09-17  4:38 UTC (permalink / raw)
  To: Simon Horman
  Cc: davem, sgoutham, netdev, linux-kernel, gakula, hkelam, sbhatta,
	edumazet, kuba, pabeni

Hi Simon,

On 2024-09-14 at 13:43:17, Simon Horman (horms@kernel.org) wrote:
> On Thu, Sep 12, 2024 at 09:44:49PM +0530, Linu Cherian wrote:
> > Add devlink knobs to enable/disable counters on NPC
> > default rule entries.
> > 
> > Introduce lowlevel variant of rvu_mcam_remove/add_counter_from/to_rule
> > for better code reuse, which assumes necessary locks are taken at
> > higher level.
> > 
> > Sample command to enable default rule counters:
> > devlink dev param set <dev> name npc_def_rule_cntr value true cmode runtime
> > 
> > Sample command to read the counter:
> > cat /sys/kernel/debug/cn10k/npc/mcam_rules
> > 
> > Signed-off-by: Linu Cherian <lcherian@marvell.com>
> > ---
> > Changelog from v1:
> > Removed wrong mutex_unlock invocations.
> 
> Hi Linu,
> 
> This patch seems to be doing two things:
> 
> 1) Refactoring some functions to have locking and non-locking variants.
>    By LoC this is appears the bulk of the code changed in this patch.
>    It also appears to be straightforward.
> 
> 2) Adding devlink knobs
> 
>    As this is a user-facing change it probably requires a deeper review
>    than 1)
> 
> I would suggest, that for review, it would be very nice to split
> 1) and 2) into separate patches. Maybe including a note in the patch
> for 1) that the refactor will be used in the following patch for 2).
>

Ack. Will split into two while reposting.

> As for the code changes themselves, I did look over them,
> and I didn't see any problems.


Linu Cherian.

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

* Re: [PATCH v2 net-next 1/2] octeontx2-af: Knobs for NPC default rule counters
  2024-09-17  4:38     ` Linu Cherian
@ 2024-09-17  8:12       ` Simon Horman
  0 siblings, 0 replies; 8+ messages in thread
From: Simon Horman @ 2024-09-17  8:12 UTC (permalink / raw)
  To: Linu Cherian
  Cc: davem, sgoutham, netdev, linux-kernel, gakula, hkelam, sbhatta,
	edumazet, kuba, pabeni

On Tue, Sep 17, 2024 at 10:08:26AM +0530, Linu Cherian wrote:
> Hi Simon,
> 
> On 2024-09-14 at 13:43:17, Simon Horman (horms@kernel.org) wrote:
> > On Thu, Sep 12, 2024 at 09:44:49PM +0530, Linu Cherian wrote:
> > > Add devlink knobs to enable/disable counters on NPC
> > > default rule entries.
> > > 
> > > Introduce lowlevel variant of rvu_mcam_remove/add_counter_from/to_rule
> > > for better code reuse, which assumes necessary locks are taken at
> > > higher level.
> > > 
> > > Sample command to enable default rule counters:
> > > devlink dev param set <dev> name npc_def_rule_cntr value true cmode runtime
> > > 
> > > Sample command to read the counter:
> > > cat /sys/kernel/debug/cn10k/npc/mcam_rules
> > > 
> > > Signed-off-by: Linu Cherian <lcherian@marvell.com>
> > > ---
> > > Changelog from v1:
> > > Removed wrong mutex_unlock invocations.
> > 
> > Hi Linu,
> > 
> > This patch seems to be doing two things:
> > 
> > 1) Refactoring some functions to have locking and non-locking variants.
> >    By LoC this is appears the bulk of the code changed in this patch.
> >    It also appears to be straightforward.
> > 
> > 2) Adding devlink knobs
> > 
> >    As this is a user-facing change it probably requires a deeper review
> >    than 1)
> > 
> > I would suggest, that for review, it would be very nice to split
> > 1) and 2) into separate patches. Maybe including a note in the patch
> > for 1) that the refactor will be used in the following patch for 2).
> >
> 
> Ack. Will split into two while reposting.

Thanks.

Please note that net-next is currently closed for the v6.12 merge window.
So please wait for it to re-open before reposting. That will occur
after v6.12-rc1 is released, most likely about two weeks from now.

> 
> > As for the code changes themselves, I did look over them,
> > and I didn't see any problems.
> 
> 
> Linu Cherian.
> 

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

end of thread, other threads:[~2024-09-17  8:12 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-12 16:14 [PATCH v2 net-next 0/2] octeontx2: Few debugfs enhancements Linu Cherian
2024-09-12 16:14 ` [PATCH v2 net-next 1/2] octeontx2-af: Knobs for NPC default rule counters Linu Cherian
2024-09-14  8:13   ` Simon Horman
2024-09-17  4:38     ` Linu Cherian
2024-09-17  8:12       ` Simon Horman
2024-09-12 16:14 ` [PATCH v2 net-next 2/2] octeontx2-af: debugfs: Add Channel info to RPM map Linu Cherian
2024-09-14  4:43 ` [PATCH v2 net-next 0/2] octeontx2: Few debugfs enhancements Jakub Kicinski
2024-09-14  4:50 ` patchwork-bot+netdevbpf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).