From: Pavan Nikhilesh Bhagavatula <pbhagavatula@marvell.com>
To: fengchengwen <fengchengwen@huawei.com>,
Jerin Jacob <jerinj@marvell.com>,
Kevin Laatz <kevin.laatz@intel.com>,
Bruce Richardson <bruce.richardson@intel.com>,
Gagandeep Singh <g.singh@nxp.com>,
Sachin Saxena <sachin.saxena@nxp.com>,
Hemant Agrawal <hemant.agrawal@nxp.com>
Cc: Vamsi Krishna Attunuru <vattunuru@marvell.com>,
"conor.walsh@intel.com" <conor.walsh@intel.com>,
Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>,
Vidya Sagar Velumuri <vvelumuri@marvell.com>,
"anatoly.burakov@intel.com" <anatoly.burakov@intel.com>,
"dev@dpdk.org" <dev@dpdk.org>
Subject: RE: [EXTERNAL] Re: [25.11 PATCH 1/3] dmadev: add enqueue dequeue operations
Date: Fri, 2 May 2025 10:38:24 +0000 [thread overview]
Message-ID: <PH0PR18MB408689F0B8A3A2C2DBE801C8DE8D2@PH0PR18MB4086.namprd18.prod.outlook.com> (raw)
In-Reply-To: <b296e45a-131e-4956-a9dd-260d7a120996@huawei.com>
Hi Fengchengwen,
> Hi Pavan,
>
> On 2025/4/16 18:09, pbhagavatula@marvell.com wrote:
> > From: Pavan Nikhilesh <pbhagavatula@marvell.com>
> >
> > Add enqueue/dequeue operations that use struct rte_dma_op
> > to communicate with the dma device.
> > These operations need to be enabled at dma device configuration
> > time by setting the flag rte_dma_conf::enable_enq_deq if the
> > device supports RTE_DMA_CAPA_OPS_ENQ_DEQ capability.
> > The enqueue dequeue operations are not compatible with
> > rte_dma_copy, rte_dma_copy_sg, rte_dma_fill, rte_dma_submit,
> > rte_dma_completed, rte_dma_completed_status range of APIs.
> >
> > Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
> > ---
> > app/test/test_dmadev.c | 160 +++++++++++++++++++++++++++
> > app/test/test_dmadev_api.c | 78 +++++++++++--
> > doc/guides/prog_guide/dmadev.rst | 34 ++++++
> > 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 +
> > 11 files changed, 477 insertions(+), 22 deletions(-)
>
> It seemed this API couldn't use at the same time with original API. Could you
> describe this explicitly?
Ack, I will add more documentation in the next version.
> I'm inferring that this feature is added mainly for performance. and we traded
> it off when design the API.
> So could you share the performance gain when use this API compared with
> original API?
Sure, In the next version I will update dma-perf to have an option to test this and
also share the performance uplift on our platform.
Note that we found this style of API to be extremely helpful in one of our virtio
use case to reduce latency.
>
> You have show the programming model for the enqueue/dequeue operations
> at cover letter, that's nice,
> but I want to know the higher level: how the library API interact with
> Application. so that I can
> understand why the rte_dma_op contain so such fields.
rte_dma_op is also used in event_dma_adapter and lot of fields are used in
the event API. I think we can further improve the enqueue/dequeue API by
reading the vchan from rte_dma_op instead of passing it as a parameter.
>
> And also, please split this commit to at least two: one for library, one for UT.
Sure, I will split it in v2.
>
> Thanks
Thanks,
Pavan.
next prev parent reply other threads:[~2025-05-02 10:38 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-16 10:09 [25.11 PATCH 0/3] Introduce DMA enqueue/dequeue operations pbhagavatula
2025-04-16 10:09 ` [25.11 PATCH 1/3] dmadev: add enqueue dequeue operations pbhagavatula
2025-04-24 7:01 ` fengchengwen
2025-05-02 10:38 ` Pavan Nikhilesh Bhagavatula [this message]
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=PH0PR18MB408689F0B8A3A2C2DBE801C8DE8D2@PH0PR18MB4086.namprd18.prod.outlook.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).