Subject: Re: [PATCH v8 net-next 6/6] octeontx2-af: npc: Support for custom KPU profile from filesystem

From: Simon Horman <[email-masked]>
Date: Fri, 27 Mar 2026 13:30:36 +0000

On Wed, Mar 25, 2026 at 12:51:59PM +0530, Ratheesh Kannoth wrote:

...

Thanks for the updates, much appreciated.

I have a few more minor questions.

> +void npc_load_kpu_profile(struct rvu *rvu)
> +{
> +	struct npc_kpu_profile_adapter *profile = &rvu->kpu;
> +	const char *kpu_profile = rvu->kpu_pfl_name;
> +
> +	profile->from_fs = false;
> +
> +	/* If user not specified profile customization */
> +	if (!strncmp(kpu_profile, def_pfl_name, KPU_NAME_LEN))  {
> +		npc_prepare_default_kpu(rvu, profile);
> +		return;
> +	}
> +
> +	/* Order of preceedence for load loading NPC profile (high to low)
> +	 * Firmware binary in filesystem.
> +	 * Firmware database method.
> +	 * Default KPU profile.
> +	 */
> +
> +	/* No support for filesystem KPU loading for cn20k */
> +npc_prepare_default_kpu	if (!is_cn20k(rvu->pdev)) {
> +		if (!npc_load_kpu_profile_from_fs(rvu))

AI review flags that:

npc_load_kpu_profile_from_fs() calls npc_apply_custom_kpu(),
which returns early if the following condition is met.

	if (fw->kpus > profile->kpus)

Does npc_prepare_default_kpu() need to be called before
npc_load_kpu_profile_from_fs() to initialise profile->kpus,
which is 0 by default due to profile being allocated using devm_kzalloc()?

> +			return;
> +	}
> +
> +	/* First prepare default KPU, then we'll customize top entries. */
> +	npc_prepare_default_kpu(rvu, profile);
> +	if (!npc_load_kpu_profile_from_fw(rvu))
> +		return;
>  
> -revert_to_default:
>  	npc_prepare_default_kpu(rvu, profile);

Is this call to npc_prepare_default_kpu() still needed?

>  }
>  
>  static void npc_parser_profile_init(struct rvu *rvu, int blkaddr)
>  {
> +	struct npc_kpu_profile_adapter *profile = &rvu->kpu;
>  	struct rvu_hwinfo *hw = rvu->hw;
>  	int num_pkinds, num_kpus, idx;
>  

...