From: Stephen Hemminger <stephen@networkplumber.org>
To: Prashant Gupta <prashant.gupta_3@nxp.com>
Cc: dev@dpdk.org
Subject: Re: [PATCH v6-S1 0/6] dpaa2: bus, DMA and mempool base fixes
Date: Wed, 7 Oct 2026 08:51:29 -0700 [thread overview]
Message-ID: <20261007085129.52bddd92@phoenix.local> (raw)
In-Reply-To: <20261006150749.3591526-1-prashant.gupta_3@nxp.com>
On Tue, 6 Oct 2026 20:37:43 +0530
Prashant Gupta <prashant.gupta_3@nxp.com> wrote:
> This series is the first of four that upstream the missing NXP dpaa2
> driver changes. It collects the foundational bus/fslmc, dma/dpaa2 and
> mempool/dpaa2 fixes that the later series build on:
>
> - defer fslmc bus initialization to probe; reduce probe logging
> and skip ignored devices during DPRC population,
> - use memcpy to fill the dpaa2 QDMA completion index ring,
> - release SG FLE on completion ring overflow in the dpaa2 QDMA
> dequeue path,
> - validate the FLE pool IOVA mapping at vchan setup and free the pool
> on failure,
> - resolve the mempool ops index locally in secondary processes by
> scanning rte_mempool_ops_table, removing the need for IPC.
When running AI locally which also has context from previous reviews,
it found a couple of things. I goaded it to be more concise and
provide more concrete suggestions.
Review: [PATCH v6-S1 0/6] DPAA2 fixes
Applies to main, every commit builds with -Dwerror=true.
Patch 5 needs rework, patch 4 a small follow-up. 1-3 look good.
[PATCH 5/6] dma/dpaa2: validate FLE pool IOVA mapping at vchan setup
Error: vchan setup fails on 2M hugepages.
DPAA2_VADDR_TO_IOVA_AND_CHECK() on a whole chunk only succeeds if
the chunk fits in one fslmc dmaseg, and fslmc creates one dmaseg
per memseg (hugepage). The FLE pool is 8192 x 2312 bytes, about
19 MB, so on 2M pages the check always fails.
Also the reference offset comes from fle_pool->mz (the mempool
header), not from the object memory.
Take the offset from the first chunk and compare the rest:
struct dpaa2_qdma_fle_pool_check {
uint64_t iova2va_offset;
bool bad;
};
static void
dpaa2_qdma_fle_pool_iova_check(struct rte_mempool *mp __rte_unused,
void *opaque, struct rte_mempool_memhdr *memhdr,
unsigned int mem_idx)
{
struct dpaa2_qdma_fle_pool_check *check = opaque;
uint64_t offset;
if (memhdr->iova == RTE_BAD_IOVA) {
check->bad = true;
return;
}
offset = (uint64_t)memhdr->addr - memhdr->iova;
if (mem_idx == 0)
check->iova2va_offset = offset;
else if (offset != check->iova2va_offset)
check->bad = true;
}
and in dpaa2_qdma_vchan_setup() drop the mz based iova/va:
rte_mempool_mem_iter(qdma_dev->vqs[vchan].fle_pool,
dpaa2_qdma_fle_pool_iova_check, &fle_check);
if (fle_check.bad) {
DPAA2_QDMA_ERR("%s spans inconsistent IOVA offsets",
pool_name);
ret = -EINVAL;
goto err_pool;
}
qdma_dev->vqs[vchan].fle_iova2va_offset =
fle_check.iova2va_offset;
Warning: the later error paths (both rte_mempool_get_bulk() calls,
ring_cntx_idx alloc) still return with fle_pool allocated, so the
retry case in the commit message is still broken. Send all of them
to one label:
return 0;
err_pool:
rte_mempool_free(qdma_dev->vqs[vchan].fle_pool);
qdma_dev->vqs[vchan].fle_pool = NULL;
return ret;
}
[PATCH 4/6] dma/dpaa2: release SG FLE on completion ring overflow
Warning: the LONG branch still records the FLE before the ring
insert. Make it match the SG branch:
fle_sdd = (void *)(uintptr_t)DPAA2_GET_FD_FLC(fd);
ret = qdma_cntx_idx_ring_eq(qdma_vq->ring_cntx_idx,
&idx, 1, free_space);
if (unlikely(ret != 1)) {
rte_mempool_put(qdma_vq->fle_pool, fle_sdd);
return -ENOSPC;
}
qdma_vq->fle_elem[*fle_elem_nb] = fle_sdd;
(*fle_elem_nb)++;
Warning: drop "This matches how the caller treats a failed dq_fd()
as having consumed nothing." The FD is already pulled from QBMAN,
so on -ENOSPC its completions are lost, not retried.
[PATCH 6/6] mempool/dpaa2: look up ops index locally in secondary
Info: drop the unrelated blank line removal before
bp_list->next; this goes to stable.
next prev parent reply other threads:[~2026-10-07 16:25 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-15 11:34 [PATCH v3-S1 0/5] dpaa2: bus, DMA and mempool base fixes Prashant Gupta
2026-09-15 11:34 ` [PATCH v3-S1 1/5] bus/fslmc: defer bus initialization to probe Prashant Gupta
2026-09-15 11:34 ` [PATCH v3-S1 2/5] bus/fslmc: reduce probe-time logging and MC traffic Prashant Gupta
2026-09-15 11:34 ` [PATCH v3-S1 3/5] dma/dpaa2: fix array-bounds warning in dequeue path Prashant Gupta
2026-09-15 11:34 ` [PATCH v3-S1 4/5] dma/dpaa2: validate IOVA in pre-populate helpers Prashant Gupta
2026-09-15 11:34 ` [PATCH v3-S1 5/5] mempool/dpaa2: support ops index from primary in secondary Prashant Gupta
2026-09-15 15:24 ` [PATCH v3-S1 0/5] dpaa2: bus, DMA and mempool base fixes Stephen Hemminger
2026-09-22 9:21 ` [PATCH v4-S1 " Prashant Gupta
2026-09-22 9:21 ` [PATCH v4-S1 1/5] bus/fslmc: defer bus initialization to probe Prashant Gupta
2026-09-22 9:21 ` [PATCH v4-S1 2/5] bus/fslmc: reduce probe-time logging and MC traffic Prashant Gupta
2026-09-22 9:21 ` [PATCH v4-S1 3/5] dma/dpaa2: fix array-bounds warning in dequeue path Prashant Gupta
2026-09-22 9:21 ` [PATCH v4-S1 4/5] dma/dpaa2: validate IOVA in pre-populate helpers Prashant Gupta
2026-09-22 9:21 ` [PATCH v4-S1 5/5] mempool/dpaa2: support ops index from primary in secondary Prashant Gupta
2026-09-22 13:59 ` [PATCH v4-S1 0/5] dpaa2: bus, DMA and mempool base fixes Stephen Hemminger
2026-09-29 14:21 ` [PATCH v5-S1 " Prashant Gupta
2026-09-29 14:21 ` [PATCH v5-S1 1/5] bus/fslmc: defer bus initialization to probe Prashant Gupta
2026-09-29 14:21 ` [PATCH v5-S1 2/5] bus/fslmc: reduce probe-time logging and skip ignored devices Prashant Gupta
2026-09-29 14:21 ` [PATCH v5-S1 3/5] dma/dpaa2: fix array-bounds warning and SG FD double-put Prashant Gupta
2026-09-29 14:21 ` [PATCH v5-S1 4/5] dma/dpaa2: validate FLE pool IOVA mapping at vchan setup Prashant Gupta
2026-09-29 14:21 ` [PATCH v5-S1 5/5] mempool/dpaa2: look up ops index locally in secondary Prashant Gupta
2026-09-29 15:45 ` [PATCH v5-S1 0/5] dpaa2: bus, DMA and mempool base fixes Stephen Hemminger
2026-10-06 14:57 ` [EXT] " Prashant Gupta
2026-10-06 15:07 ` [PATCH v6-S1 0/6] " Prashant Gupta
2026-10-06 15:07 ` [PATCH v6-S1 1/6] bus/fslmc: defer bus initialization to probe Prashant Gupta
2026-10-06 15:07 ` [PATCH v6-S1 2/6] bus/fslmc: reduce probe logging and skip ignored devices Prashant Gupta
2026-10-06 15:07 ` [PATCH v6-S1 3/6] dma/dpaa2: use memcpy to fill completion index ring Prashant Gupta
2026-10-06 15:07 ` [PATCH v6-S1 4/6] dma/dpaa2: release SG FLE on completion ring overflow Prashant Gupta
2026-10-06 15:07 ` [PATCH v6-S1 5/6] dma/dpaa2: validate FLE pool IOVA mapping at vchan setup Prashant Gupta
2026-10-08 22:41 ` Stephen Hemminger
2026-10-06 15:07 ` [PATCH v6-S1 6/6] mempool/dpaa2: look up ops index locally in secondary Prashant Gupta
2026-10-07 15:51 ` Stephen Hemminger [this message]
2026-10-09 10:50 ` [PATCH v7-S1 0/6] dpaa2: bus, DMA and mempool base fixes Prashant Gupta
2026-10-09 10:50 ` [PATCH v7-S1 1/6] bus/fslmc: defer bus initialization to probe Prashant Gupta
2026-10-09 10:50 ` [PATCH v7-S1 2/6] bus/fslmc: reduce probe logging and skip ignored devices Prashant Gupta
2026-10-09 10:50 ` [PATCH v7-S1 3/6] dma/dpaa2: use memcpy to fill completion index ring Prashant Gupta
2026-10-09 10:50 ` [PATCH v7-S1 4/6] dma/dpaa2: release SG FLE on completion ring overflow Prashant Gupta
2026-10-09 10:50 ` [PATCH v7-S1 5/6] dma/dpaa2: validate FLE pool IOVA mapping at vchan setup Prashant Gupta
2026-10-09 10:50 ` [PATCH v7-S1 6/6] mempool/dpaa2: look up ops index locally in secondary Prashant Gupta
2026-10-09 19:08 ` [PATCH v7-S1 0/6] dpaa2: bus, DMA and mempool base fixes Stephen Hemminger
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=20261007085129.52bddd92@phoenix.local \
--to=stephen@networkplumber.org \
--cc=dev@dpdk.org \
--cc=prashant.gupta_3@nxp.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.