From: Vamsi Krishna Attunuru <vattunuru@marvell.com>
To: Thomas Monjalon <thomas@monjalon.net>
Cc: "dev@dpdk.org" <dev@dpdk.org>,
"fengchengwen@huawei.com" <fengchengwen@huawei.com>,
"bruce.richardson@intel.com" <bruce.richardson@intel.com>,
"anatoly.burakov@intel.com" <anatoly.burakov@intel.com>,
"kevin.laatz@intel.com" <kevin.laatz@intel.com>,
Jerin Jacob <jerinj@marvell.com>
Subject: RE: [EXTERNAL] Re: [PATCH v4 1/1] lib/dma: add control-plane APIs for inter-domain DMA transfers
Date: Sun, 19 Oct 2025 08:37:33 +0000 [thread overview]
Message-ID: <SJ4PPFEA6F74CA2C8C8EAE365AE5505773DA6F4A@SJ4PPFEA6F74CA2.namprd18.prod.outlook.com> (raw)
In-Reply-To: <3166338.vzjCzTo3RI@thomas>
>ZjQcmQRYFpfptBannerEnd
>17/10/2025 16:06, Vamsi Krishna:
>> From: Vamsi Attunuru <vattunuru@marvell.com>
>>
>> Secure and controlled inter-domain DMA transfers require dedicated
>> control-plane APIs to create and manage access groups.
>>
>> DMA devices used for inter-process data transfer can be categorized as
>> follows:
>>
>> Class A: Both endpoints require a DMA device for data transfer (e.g.,
>> Marvell DMA devices).
>> Class B: Only one endpoint requires a DMA device; the other does not.
>> Class C: Other device types not currently classified.
>>
>> Providing a unified API for all these categories is complex, as Linux
>> and other operating systems do not offer native control-plane APIs for
>> this purpose. Therefore, DPDK can implement its own control-plane
>> mechanisms to support Class A, B, and C devices.
>>
>> This commit introduces the necessary APIs for Class A DMA devices.
>> Devices can create or join access groups using token-based
>> authentication, ensuring that only authorized devices within the same
>> group can perform DMA transfers across processes or OS domains.
>>
>> API Usage Flow:
>>
>> Process 1 (Group Creator):
>> Invokes rte_dma_access_pair_group_create() to establish a new access
>> pair group, then shares the group_id and token with Process 2 via IPC.
>>
>> Process 2 (Group Joiner):
>> Receives the group_id and token from Process 1 and calls
>> rte_dma_access_pair_group_join() to join the group.
>>
>> Both Processes:
>> Use rte_dma_access_pair_group_handler_get() to obtain handler
>> information for domains in the group.
>> Perform DMA transfers as required.
>>
>> Process 2 (when finished):
>> Calls rte_dma_access_pair_group_leave() to exit the group.
>>
>> Process 1:
>> Monitors for group updates and confirms group membership as needed.
>>
>> Depends-on: patch-36386 (lib/dma: introduce inter-process and inter-OS
>> DMA)
>>
>> Signed-off-by: Vamsi Attunuru <vattunuru@marvell.com>
>> Acked-by: Chengwen Feng <fengchengwen@huawei.com>
>
>Added experimental status, release notes, cleaned doc and logs.
>It doesn't look ready but I've applied it because Chengwen Feng acked it.
>
>I'm not sure about having different API functions for leave and destroy.
>I think the last leaving should automatically call the destroy driver function.
>
Thanks Thomas. The leave and destroy operations are invoked from different contexts.
Group joiners call leave to exit the group, whereas group creator calls destroy to
terminate the group after all members have left.
next prev parent reply other threads:[~2025-10-19 8:37 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-01 12:33 [RFC] lib/dma: introduce inter-process and inter-OS DMA Vamsi Krishna
2025-09-18 11:06 ` Vamsi Krishna Attunuru
2025-09-19 9:02 ` fengchengwen
2025-09-22 11:48 ` [EXTERNAL] " Vamsi Krishna Attunuru
2025-09-24 4:14 ` Vamsi Krishna Attunuru
2025-09-25 1:34 ` fengchengwen
2025-10-01 5:57 ` Jerin Jacob
2025-10-06 13:59 ` Vamsi Krishna Attunuru
2025-10-09 2:27 ` Vamsi Krishna Attunuru
2025-10-09 11:08 ` fengchengwen
2025-10-10 10:40 ` Jerin Jacob
2025-09-25 2:06 ` fengchengwen
2025-10-10 14:46 ` [PATCH v2 1/1] " Vamsi Krishna
2025-10-12 1:49 ` fengchengwen
2025-10-13 4:07 ` [EXTERNAL] " Vamsi Krishna Attunuru
2025-10-13 18:10 ` [PATCH v2 1/1] lib/dma: add control-plane APIs for inter-domain DMA transfers Vamsi Krishna
2025-10-15 6:59 ` fengchengwen
2025-10-17 6:30 ` [EXTERNAL] " Vamsi Krishna Attunuru
2025-10-17 12:26 ` [PATCH v3 " Vamsi Krishna
2025-10-17 13:10 ` fengchengwen
2025-10-17 14:06 ` [PATCH v4 " Vamsi Krishna
2025-10-18 16:50 ` Thomas Monjalon
2025-10-19 8:12 ` Thomas Monjalon
2025-10-19 8:37 ` Vamsi Krishna Attunuru [this message]
2025-10-19 8:59 ` [EXTERNAL] " Thomas Monjalon
2025-10-19 9:40 ` Vamsi Krishna Attunuru
2025-10-19 10:05 ` Thomas Monjalon
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=SJ4PPFEA6F74CA2C8C8EAE365AE5505773DA6F4A@SJ4PPFEA6F74CA2.namprd18.prod.outlook.com \
--to=vattunuru@marvell.com \
--cc=anatoly.burakov@intel.com \
--cc=bruce.richardson@intel.com \
--cc=dev@dpdk.org \
--cc=fengchengwen@huawei.com \
--cc=jerinj@marvell.com \
--cc=kevin.laatz@intel.com \
--cc=thomas@monjalon.net \
/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).