[EXTERNAL] [PATCH v2] common/cnxk: fix NPA pool RANGE interrupt handling

Ashwin Sekhar T K asekhar at marvell.com
Wed Sep 16 06:40:46 CEST 2026


Hi Amiya,
> Yes — the root cause is NDC staleness. The AQ INIT writes pool context (including ptr_start=0, ptr_end=~0) directly to RAM, bypassing NDC.
The AQ INIT does not bypass NDC. May I know how you arrived at this conclusion?
Even your other NDC sync patch is not required. The only time NDC sync is required is at teardown time because at this point, we free the stack memory. So, after this, NPA should not evict any stale stack pages back to memory (which is already freed).

> Sorry for my poor wordings. on my part. The pool stack does not get drained — it never gets populated.During cnxk_mempool_populate(), each roc_npa_aura_op_free() call silently drops the buffer (NPA sees stale context with ena=0 or ptr_end=0 via NDC). After populate completes, the pool has 0 
> available buffers despite no error being returned. Subsequent roc_npa_aura_op_alloc() returns NULL, causing port start failures.
It will not silently drop. You should be getting AURA DISABLED interrupts.

Could you please explain the exact use case and issue that you are facing?

Thanks
Ashwin



More information about the dev mailing list