From: <pbhagavatula@marvell.com>
To: <jerinj@marvell.com>
Cc: <vattunuru@marvell.com>, <g.singh@nxp.com>,
<sachin.saxena@nxp.com>, <hemant.agrawal@nxp.com>,
<fengchengwen@huawei.com>, <bruce.richardson@intel.com>,
<kevin.laatz@intel.com>, <conor.walsh@intel.com>,
<gmuthukrishn@marvell.com>, <vvelumuri@marvell.com>,
<anatoly.burakov@intel.com>, <dev@dpdk.org>,
Pavan Nikhilesh <pbhagavatula@marvell.com>
Subject: [25.11 PATCH 0/3] Introduce DMA enqueue/dequeue operations
Date: Wed, 16 Apr 2025 15:39:28 +0530 [thread overview]
Message-ID: <20250416100931.6544-1-pbhagavatula@marvell.com> (raw)
From: Pavan Nikhilesh <pbhagavatula@marvell.com>
Introduce DMA enqueue/dequeue operations to the DMA device library.
Add configuration flags to rte_dma_config instead of boolean for
individual features.
The enqueue/dequeue operations allow applications to communicate with the
DMA device using the rte_dma_op structure, providing a more flexible and
efficient way to manage DMA operations.
The programming model for the enqueue/dequeue operations is as follows:
* Query DMA devices capability for RTE_DMA_CAPA_OPS_ENQ_DEQ through
rte_dma_info::dev_capa.
* Enable enqueue/dequeue operations on DMA device by enabling the
flag RTE_DMA_CFG_FLAG_ENQ_DEQ in rte_dma_config::flags
during device configuration.
* Allocate a mempool for rte_dma_ops with object size of
rte_dma_op + (sizeof(struct rte_dma_sge) * rte_dma_info::max_sges * 2).
* Configure vchans and start the dma device.
* Get an rte_dma_op from the mempool, fill it with the necessary
information and use rte_dma_enqueue() to enqueue the operation.
* Call rte_dma_dequeue() operation to get the array of finished operations.
* Free the rte_dma_op back to the mempool.
The enqueue dequeue operations are not compatible with rte_dma_copy,
rte_dma_copy_sg, rte_dma_fill, rte_dma_submit, rte_dma_completed and
rte_dma_completed_status range of APIs.
Pavan Nikhilesh (3):
dmadev: add enqueue dequeue operations
dma/cnxk: implement enqueue dequeue ops
eventdev: refactor DMA adapter ops
app/test-eventdev/test_perf_common.c | 6 +-
app/test-eventdev/test_perf_common.h | 4 +-
app/test/test_dmadev.c | 160 ++++++++++++++++++
app/test/test_dmadev_api.c | 78 ++++++++-
app/test/test_event_dma_adapter.c | 6 +-
doc/guides/prog_guide/dmadev.rst | 34 ++++
.../prog_guide/eventdev/event_dma_adapter.rst | 6 +-
drivers/dma/cnxk/cnxk_dmadev.c | 60 +++++--
drivers/dma/cnxk/cnxk_dmadev.h | 7 +
drivers/dma/cnxk/cnxk_dmadev_fp.c | 152 ++++++++++++++++-
drivers/dma/dpaa/dpaa_qdma.c | 2 +-
drivers/dma/dpaa2/dpaa2_qdma.c | 2 +-
lib/dmadev/rte_dmadev.c | 30 +++-
lib/dmadev/rte_dmadev.h | 155 ++++++++++++++++-
lib/dmadev/rte_dmadev_core.h | 10 ++
lib/dmadev/rte_dmadev_trace.h | 2 +-
lib/dmadev/rte_dmadev_trace_fp.h | 20 +++
lib/dmadev/rte_dmadev_trace_points.c | 6 +
lib/eventdev/rte_event_dma_adapter.c | 18 +-
lib/eventdev/rte_event_dma_adapter.h | 57 -------
20 files changed, 695 insertions(+), 120 deletions(-)
--
2.43.0
next reply other threads:[~2025-04-16 10:09 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-16 10:09 pbhagavatula [this message]
2025-04-16 10:09 ` [25.11 PATCH 1/3] dmadev: add enqueue dequeue operations pbhagavatula
2025-04-16 10:09 ` [25.11 PATCH 2/3] dma/cnxk: implement enqueue dequeue ops pbhagavatula
2025-04-16 10:09 ` [25.11 PATCH 3/3] eventdev: refactor DMA adapter ops pbhagavatula
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=20250416100931.6544-1-pbhagavatula@marvell.com \
--to=pbhagavatula@marvell.com \
--cc=anatoly.burakov@intel.com \
--cc=bruce.richardson@intel.com \
--cc=conor.walsh@intel.com \
--cc=dev@dpdk.org \
--cc=fengchengwen@huawei.com \
--cc=g.singh@nxp.com \
--cc=gmuthukrishn@marvell.com \
--cc=hemant.agrawal@nxp.com \
--cc=jerinj@marvell.com \
--cc=kevin.laatz@intel.com \
--cc=sachin.saxena@nxp.com \
--cc=vattunuru@marvell.com \
--cc=vvelumuri@marvell.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).