From: Simon Horman <horms@kernel.org>
To: Ratheesh Kannoth <rkannoth@marvell.com>
Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
sgoutham@marvell.com, davem@davemloft.net, edumazet@google.com,
kuba@kernel.org, pabeni@redhat.com, donald.hunter@gmail.com,
jiri@resnulli.us, chuck.lever@oracle.com, matttbe@kernel.org,
cjubran@nvidia.com, shshitrit@nvidia.com, dtatulea@nvidia.com,
tariqt@nvidia.com
Subject: Re: [PATCH v8 net-next 5/6] octeontx2-af: npc: cn20k: dynamically allocate and free default MCAM entries
Date: Fri, 27 Mar 2026 13:34:06 +0000 [thread overview]
Message-ID: <20260327133406.GF567789@horms.kernel.org> (raw)
In-Reply-To: <20260325072159.1126964-6-rkannoth@marvell.com>
On Wed, Mar 25, 2026 at 12:51:58PM +0530, Ratheesh Kannoth wrote:
> Improve MCAM utilization by tying default (broadcast, multicast,
> promisc, ucast) entry lifetime to NIX LF usage.
>
> - On NIX LF alloc (e.g. kernel or DPDK), allocate default MCAM entries
> if missing; on NIX LF free, release them so they return to the pool.
> - Add NIX_LF_DONT_FREE_DFT_IDXS so the kernel PF driver can free the
> NIX LF without releasing default entries (e.g. across suspend/resume).
> - When NIX LF is used by DPDK, default entries are allocated on first
> use and freed when the LF is released if NIX_LF_DONT_FREE_DFT_IDXS is
> not set
>
> Signed-off-by: Ratheesh Kannoth <rkannoth@marvell.com>
...
> diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
> index ef5b081162eb..bd671b553df5 100644
> --- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
> +++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
> @@ -16,6 +16,7 @@
> #include "cgx.h"
> #include "lmac_common.h"
> #include "rvu_npc_hash.h"
> +#include "cn20k/npc.h"
>
> static void nix_free_tx_vtag_entries(struct rvu *rvu, u16 pcifunc);
> static int rvu_nix_get_bpid(struct rvu *rvu, struct nix_bp_cfg_req *req,
> @@ -1684,10 +1685,16 @@ int rvu_mbox_handler_nix_lf_alloc(struct rvu *rvu,
> if (is_sdp_pfvf(rvu, pcifunc))
> intf = NIX_INTF_TYPE_SDP;
>
> + if (is_cn20k(rvu->pdev)) {
> + rc = npc_cn20k_dft_rules_alloc(rvu, pcifunc);
> + if (rc)
> + goto free_mem;
> + }
> +
> err = nix_interface_init(rvu, pcifunc, intf, nixlf, rsp,
> !!(req->flags & NIX_LF_LBK_BLK_SEL));
> if (err)
> - goto free_mem;
> + goto free_dft;
>
> /* Disable NPC entries as NIXLF's contexts are not initialized yet */
> rvu_npc_disable_default_entries(rvu, pcifunc, nixlf);
> @@ -1699,6 +1706,10 @@ int rvu_mbox_handler_nix_lf_alloc(struct rvu *rvu,
>
> goto exit;
>
> +free_dft:
> + if (is_cn20k(rvu->pdev))
> + npc_cn20k_dft_rules_free(rvu, pcifunc);
> +
> free_mem:
> nix_ctx_free(rvu, pfvf);
> rc = -ENOMEM;
It seems like a nit to me. But AI review flags that the rc value will be
overwritten when jumping to the free_mem label. And thus the error
returned by npc_cn20k_dft_rules_alloc won't be returned to the caller.
...
> diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c
...
> @@ -1926,7 +1925,6 @@ int otx2_alloc_queue_mem(struct otx2_nic *pf)
> struct otx2_qset *qset = &pf->qset;
> struct otx2_cq_poll *cq_poll;
>
> -
> /* RQ and SQs are mapped to different CQs,
> * so find out max CQ IRQs (i.e CINTs) needed.
> */
nit: this hunk seems unrelated to the rest of the patch.
next prev parent reply other threads:[~2026-03-27 13:34 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-25 7:21 [PATCH v8 net-next 0/6] octeontx2-af: npc: Enhancements Ratheesh Kannoth
2026-03-25 7:21 ` [PATCH v8 net-next 1/6] octeontx2-af: npc: cn20k: debugfs enhancements Ratheesh Kannoth
2026-03-25 7:21 ` [PATCH v8 net-next 2/6] net/mlx5e: heap-allocate devlink param values Ratheesh Kannoth
2026-03-25 7:21 ` [PATCH v8 net-next 3/6] devlink: Implement devlink param multi attribute nested data values Ratheesh Kannoth
2026-03-25 7:21 ` [PATCH v8 net-next 4/6] octeontx2-af: npc: cn20k: add subbank search order control Ratheesh Kannoth
2026-03-25 7:21 ` [PATCH v8 net-next 5/6] octeontx2-af: npc: cn20k: dynamically allocate and free default MCAM entries Ratheesh Kannoth
2026-03-27 13:34 ` Simon Horman [this message]
2026-03-25 7:21 ` [PATCH v8 net-next 6/6] octeontx2-af: npc: Support for custom KPU profile from filesystem Ratheesh Kannoth
2026-03-27 13:30 ` Simon Horman
2026-03-30 4:59 ` Ratheesh Kannoth
2026-03-31 3:43 ` Ratheesh Kannoth
2026-04-02 8:45 ` Paolo Abeni
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=20260327133406.GF567789@horms.kernel.org \
--to=horms@kernel.org \
--cc=chuck.lever@oracle.com \
--cc=cjubran@nvidia.com \
--cc=davem@davemloft.net \
--cc=donald.hunter@gmail.com \
--cc=dtatulea@nvidia.com \
--cc=edumazet@google.com \
--cc=jiri@resnulli.us \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=matttbe@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=rkannoth@marvell.com \
--cc=sgoutham@marvell.com \
--cc=shshitrit@nvidia.com \
--cc=tariqt@nvidia.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 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.