DPDK patches and discussions
 help / color / mirror / Atom feed
From: Pavan Nikhilesh Bhagavatula <pbhagavatula@marvell.com>
To: Bruce Richardson <bruce.richardson@intel.com>
Cc: Jerin Jacob <jerinj@marvell.com>,
	Vamsi Krishna Attunuru <vattunuru@marvell.com>,
	"g.singh@nxp.com" <g.singh@nxp.com>,
	"sachin.saxena@nxp.com" <sachin.saxena@nxp.com>,
	"hemant.agrawal@nxp.com" <hemant.agrawal@nxp.com>,
	"fengchengwen@huawei.com" <fengchengwen@huawei.com>,
	"kevin.laatz@intel.com" <kevin.laatz@intel.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: [25.11 PATCH v3 0/5] Introduce DMA enqueue/dequeue operations
Date: Wed, 1 Oct 2025 09:22:47 +0000	[thread overview]
Message-ID: <PH0PR18MB40863F1D0859F31AF051E164DE1AA@PH0PR18MB4086.namprd18.prod.outlook.com> (raw)
In-Reply-To: <aNK3KPYmVmMKfFoH@bricha3-mobl1.ger.corp.intel.com>

>> Hi Bruce,
>>
>> >On Sat, May 24, 2025 at 02:43:10PM +0530, <pbhagavatula@marvell.com> wrote:
>> >> 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.
>> >>
>> >
>> >While I have no really strong objections to this addition to the dmadev
>> >API, I'd appreciate if you could explain WHY or how this method of working
>> >is more efficient in your usecase? When designing the dmadev APIs
>> >originally, we looked at using both an enqueue-type API as well as the
>> >implemented individual-op-based APIs. IIRC at that time testing showed that
>> >using the single ops directly was faster than using the enqueue APIs, so
>> >I'm wondering what exactly has changed, or is different about your usecase?
>> >
>>
>> Here is an example where we see enqueue/dequeue ops to be useful especially when
>> integrating with Graph library.
>>
>> We had to write an entire wrapper[1] for tracking sges with the current implementation
>> making our nodes[2] very complex.
>>
>
>Can you explain a bit more here. Why do you need the wrapper rather than
>just tracking in a circular ring all the copies offloaded? How does having
>an enqueue API make this better?

This is what we already do in our wrapper.
We found it unnecessary overhead since, the driver already does this internally
and we can leverage the existing functionality.
This also reduces the memory footprint as in the case below we use a lot of VCHANS.

Instead of checking for completions and maintaining the circular ring, we can spend
those cycles doing other things in the application.

>Can you perhaps give a trivial example
>showing the difference it makes here? The examples you give below are
>rather long to understand quickly.
>

The example below is a graph based application which currently uses the wrapper implementation.
Which we want to swap with enq/deq ops to reduce overhead.

Also, the ops descriptor already existes for eventdev subsystem, we are just importing it to DMA
device and reusing it.

>Thanks,
>/Bruce
>
>> [1]<https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_MarvellEmbeddedProcessors_dao_blob_dao-2Ddevel_lib_common_dao-5Fdma.h&d=DwIBAg&c=nKjWec2b6R0mOyPaz7xtfQ&r=E3SgYMjtKCMVsB-fmvgGV3o-g_fjLhk5Pupi9ijohpc&m=dXtUywAGV8Rir_dtqGP5J-tvRAxN9zQjmM96PeDo6Ke6QybID8eLdPbVwWzlgZFy&s=QryV2vh2_mWEz5yS37615Xb1F6B-gQZHM1uZ3badxoU&e=>
>> [2]<https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_MarvellEmbeddedProcessors_dao_blob_3f364261de91e355699bd9af20d60ea6459f7d67_lib_virtio-5Fnet_virtio-5Fnet-5Fdeq-5Fext.c-23L51&d=DwIBAg&c=nKjWec2b6R0mOyPaz7xtfQ&r=E3SgYMjtKCMVsB-fmvgGV3o-g_fjLhk5Pupi9ijohpc&m=dXtUywAGV8Rir_dtqGP5J-tvRAxN9zQjmM96PeDo6Ke6QybID8eLdPbVwWzlgZFy&s=Bl2X7g7xXg_XrWvVIjPhMuIZuy3PG7tOM-Eje9i2ITA&e=>
>>
>> >/Bruce
>>
>> Thanks,
>> Pavan.
>>

      reply	other threads:[~2025-10-01  9:22 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-04-16 10:09 [25.11 PATCH 0/3] " 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     ` [EXTERNAL] " Pavan Nikhilesh Bhagavatula
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
2025-05-19 18:55 ` [25.11 PATCH v2 0/5] Introduce DMA enqueue/dequeue operations pbhagavatula
2025-05-19 18:56   ` [25.11 PATCH v2 1/5] dmadev: add enqueue dequeue operations pbhagavatula
2025-05-19 18:56   ` [25.11 PATCH v2 2/5] test/dma: " pbhagavatula
2025-05-19 18:56   ` [25.11 PATCH v2 3/5] app/dma-perf: add option to measure enq deq ops pbhagavatula
2025-05-19 18:56   ` [25.11 PATCH v2 4/5] dma/cnxk: implement enqueue dequeue ops pbhagavatula
2025-05-19 18:56   ` [25.11 PATCH v2 5/5] eventdev: refactor DMA adapter ops pbhagavatula
2025-05-24  9:13   ` [25.11 PATCH v3 0/5] Introduce DMA enqueue/dequeue operations pbhagavatula
2025-05-24  9:13     ` [25.11 PATCH v3 1/5] dmadev: add enqueue dequeue operations pbhagavatula
2025-05-24  9:13     ` [25.11 PATCH v3 2/5] test/dma: " pbhagavatula
2025-05-24  9:13     ` [25.11 PATCH v3 3/5] app/dma-perf: add option to measure enq deq ops pbhagavatula
2025-05-24  9:13     ` [25.11 PATCH v3 4/5] dma/cnxk: implement enqueue dequeue ops pbhagavatula
2025-05-24  9:13     ` [25.11 PATCH v3 5/5] eventdev: refactor DMA adapter ops pbhagavatula
2025-05-26  8:15     ` [25.11 PATCH v3 0/5] Introduce DMA enqueue/dequeue operations Bruce Richardson
2025-06-09 10:03       ` [EXTERNAL] " Pavan Nikhilesh Bhagavatula
2025-09-14 15:34         ` Pavan Nikhilesh Bhagavatula
2025-09-23 14:48           ` Pavan Nikhilesh Bhagavatula
2025-09-23 15:05         ` [EXTERNAL] " Bruce Richardson
2025-10-01  9:22           ` Pavan Nikhilesh Bhagavatula [this message]

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=PH0PR18MB40863F1D0859F31AF051E164DE1AA@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).