Hi Ashwin *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).*
*>> *I don't see any ndc_sync calls during pool_init, So the NDC is not updated at pool_init time, whereas it's getting called for all termination paths. Could you explain how this is taken care of then without an ndc sync? I need to test without NDC sync changes multiple times and confirm. BUt if you could explain how it'll work without NDC sync or how it's a side effect of IOVA as PA, it would be great. Thanks Amiya On Wed, 16 Sept 2026 at 11:13, Amiya Ranjan Mohakud < [email protected]> wrote: > Hi Ashwin - I have raised a ticket > https://bugs.dpdk.org/show_bug.cgi?id=2031 with details. Pls check if it > helps. > > Thanks > Amiya > > > On Wed, 16 Sept 2026 at 10:10, Ashwin Sekhar T K <[email protected]> > wrote: > >> 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 >> >>

