* [PATCH v0 1/1] dmadev: add domain_id field to access group join API @ 2025-11-03 10:29 Vamsi Krishna 2025-11-04 0:45 ` fengchengwen 2025-11-04 5:21 ` [PATCH v2 " Vamsi Krishna 0 siblings, 2 replies; 7+ messages in thread From: Vamsi Krishna @ 2025-11-03 10:29 UTC (permalink / raw) To: dev, fengchengwen; +Cc: thomas, vattunuru From: Vamsi Attunuru <vattunuru@marvell.com> Add domain_id field to access group join API, which is required to retrieve handler information associated with the specified domain. This enhancement ensures that domain-specific context is available during group join operations, improving flexibility and traceability in multi-domain environments. It also aligns the parameters of access group create and join APIs for consistency and clarity. Signed-off-by: Vamsi Attunuru <vattunuru@marvell.com> --- lib/dmadev/rte_dmadev.c | 6 +++--- lib/dmadev/rte_dmadev.h | 10 ++++++---- lib/dmadev/rte_dmadev_pmd.h | 4 ++-- lib/dmadev/rte_dmadev_trace.h | 6 ++++-- 4 files changed, 15 insertions(+), 11 deletions(-) diff --git a/lib/dmadev/rte_dmadev.c b/lib/dmadev/rte_dmadev.c index c008e829db..b75b4f9bd1 100644 --- a/lib/dmadev/rte_dmadev.c +++ b/lib/dmadev/rte_dmadev.c @@ -875,8 +875,8 @@ rte_dma_access_pair_group_destroy(int16_t dev_id, int16_t group_id) RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_dma_access_pair_group_join, 25.11) int -rte_dma_access_pair_group_join(int16_t dev_id, int16_t group_id, rte_uuid_t token, - rte_dma_access_pair_group_event_cb_t cb) +rte_dma_access_pair_group_join(int16_t dev_id, rte_uuid_t domain_id, rte_uuid_t token, + int16_t group_id, rte_dma_access_pair_group_event_cb_t cb) { struct rte_dma_info dev_info; struct rte_dma_dev *dev; @@ -899,7 +899,7 @@ rte_dma_access_pair_group_join(int16_t dev_id, int16_t group_id, rte_uuid_t toke if (*dev->dev_ops->access_pair_group_join == NULL) return -ENOTSUP; - return (*dev->dev_ops->access_pair_group_join)(dev, group_id, token, cb); + return (*dev->dev_ops->access_pair_group_join)(dev, domain_id, token, group_id, cb); } RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_dma_access_pair_group_leave, 25.11) diff --git a/lib/dmadev/rte_dmadev.h b/lib/dmadev/rte_dmadev.h index 0f4f10ec12..5287b0f32d 100644 --- a/lib/dmadev/rte_dmadev.h +++ b/lib/dmadev/rte_dmadev.h @@ -912,10 +912,12 @@ int rte_dma_access_pair_group_destroy(int16_t dev_id, int16_t group_id); * * @param dev_id * Identifier of the DMA device attempting to join the group. - * @param group_id - * ID of the access group to join. + * @param domain_id + * Unique identifier representing the process or OS domain. * @param token * Authentication token used to validate group membership. + * @param group_id + * ID of the access group to join. * @param cb * Callback function to be invoked when the device leaves the group * or when the group is destroyed due to some exception or failure. @@ -925,8 +927,8 @@ int rte_dma_access_pair_group_destroy(int16_t dev_id, int16_t group_id); * negative value on failure indicating the error code. */ __rte_experimental -int rte_dma_access_pair_group_join(int16_t dev_id, int16_t group_id, rte_uuid_t token, - rte_dma_access_pair_group_event_cb_t cb); +int rte_dma_access_pair_group_join(int16_t dev_id, rte_uuid_t domain_id, rte_uuid_t token, + int16_t group_id, rte_dma_access_pair_group_event_cb_t cb); /** * Leave an access group, removing the device's entry from the group table diff --git a/lib/dmadev/rte_dmadev_pmd.h b/lib/dmadev/rte_dmadev_pmd.h index 16fd625c2d..8a6b0a9c98 100644 --- a/lib/dmadev/rte_dmadev_pmd.h +++ b/lib/dmadev/rte_dmadev_pmd.h @@ -75,8 +75,8 @@ typedef int (*rte_dma_access_pair_group_destroy_t)(const struct rte_dma_dev *dev int16_t group_id); /** @internal Used to join an access pair group for inter-process or inter-OS DMA transfers. */ -typedef int (*rte_dma_access_pair_group_join_t)(const struct rte_dma_dev *dev, int16_t group_id, - rte_uuid_t token, +typedef int (*rte_dma_access_pair_group_join_t)(const struct rte_dma_dev *dev, rte_uuid_t domain_id, + rte_uuid_t token, int16_t group_id, rte_dma_access_pair_group_event_cb_t cb); /** @internal Used to leave an access pair group, removing the device from the group. */ diff --git a/lib/dmadev/rte_dmadev_trace.h b/lib/dmadev/rte_dmadev_trace.h index da80a8cb50..7ad00b5bfa 100644 --- a/lib/dmadev/rte_dmadev_trace.h +++ b/lib/dmadev/rte_dmadev_trace.h @@ -120,10 +120,12 @@ RTE_TRACE_POINT( RTE_TRACE_POINT( rte_dma_trace_access_pair_group_join, - RTE_TRACE_POINT_ARGS(int16_t dev_id, int16_t group_id, rte_uuid_t token), + RTE_TRACE_POINT_ARGS(int16_t dev_id, rte_uuid_t domain_id, rte_uuid_t token, + int16_t group_id), rte_trace_point_emit_i16(dev_id); - rte_trace_point_emit_i16(group_id); + rte_trace_point_emit_u8_ptr(&domain_id[0]); rte_trace_point_emit_u8_ptr(&token[0]); + rte_trace_point_emit_i16(group_id); ) RTE_TRACE_POINT( -- 2.34.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v0 1/1] dmadev: add domain_id field to access group join API 2025-11-03 10:29 [PATCH v0 1/1] dmadev: add domain_id field to access group join API Vamsi Krishna @ 2025-11-04 0:45 ` fengchengwen 2025-11-04 4:02 ` [EXTERNAL] " Vamsi Krishna Attunuru 2025-11-04 5:21 ` [PATCH v2 " Vamsi Krishna 1 sibling, 1 reply; 7+ messages in thread From: fengchengwen @ 2025-11-04 0:45 UTC (permalink / raw) To: Vamsi Krishna, dev; +Cc: thomas On 11/3/2025 6:29 PM, Vamsi Krishna wrote: > From: Vamsi Attunuru <vattunuru@marvell.com> > > Add domain_id field to access group join API, which is required > to retrieve handler information associated with the specified domain. > This enhancement ensures that domain-specific context is available > during group join operations, improving flexibility and traceability > in multi-domain environments. > > It also aligns the parameters of access group create and join APIs > for consistency and clarity. > > Signed-off-by: Vamsi Attunuru <vattunuru@marvell.com> > --- > lib/dmadev/rte_dmadev.c | 6 +++--- > lib/dmadev/rte_dmadev.h | 10 ++++++---- > lib/dmadev/rte_dmadev_pmd.h | 4 ++-- > lib/dmadev/rte_dmadev_trace.h | 6 ++++-- > 4 files changed, 15 insertions(+), 11 deletions(-) > > diff --git a/lib/dmadev/rte_dmadev.c b/lib/dmadev/rte_dmadev.c > index c008e829db..b75b4f9bd1 100644 > --- a/lib/dmadev/rte_dmadev.c > +++ b/lib/dmadev/rte_dmadev.c > @@ -875,8 +875,8 @@ rte_dma_access_pair_group_destroy(int16_t dev_id, int16_t group_id) > > RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_dma_access_pair_group_join, 25.11) > int > -rte_dma_access_pair_group_join(int16_t dev_id, int16_t group_id, rte_uuid_t token, > - rte_dma_access_pair_group_event_cb_t cb) > +rte_dma_access_pair_group_join(int16_t dev_id, rte_uuid_t domain_id, rte_uuid_t token, > + int16_t group_id, rte_dma_access_pair_group_event_cb_t cb) > { > struct rte_dma_info dev_info; > struct rte_dma_dev *dev; > @@ -899,7 +899,7 @@ rte_dma_access_pair_group_join(int16_t dev_id, int16_t group_id, rte_uuid_t toke > > if (*dev->dev_ops->access_pair_group_join == NULL) > return -ENOTSUP; > - return (*dev->dev_ops->access_pair_group_join)(dev, group_id, token, cb); > + return (*dev->dev_ops->access_pair_group_join)(dev, domain_id, token, group_id, cb); > } > > RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_dma_access_pair_group_leave, 25.11) > diff --git a/lib/dmadev/rte_dmadev.h b/lib/dmadev/rte_dmadev.h > index 0f4f10ec12..5287b0f32d 100644 > --- a/lib/dmadev/rte_dmadev.h > +++ b/lib/dmadev/rte_dmadev.h > @@ -912,10 +912,12 @@ int rte_dma_access_pair_group_destroy(int16_t dev_id, int16_t group_id); > * > * @param dev_id > * Identifier of the DMA device attempting to join the group. > - * @param group_id > - * ID of the access group to join. > + * @param domain_id > + * Unique identifier representing the process or OS domain. This domain_id should be local process or OS domain, so how bout: Unique identifier representing my process or OS domain. And please change the rte_dma_access_pair_group_create 's comment about the domain_id. > * @param token > * Authentication token used to validate group membership. > + * @param group_id > + * ID of the access group to join. > * @param cb > * Callback function to be invoked when the device leaves the group > * or when the group is destroyed due to some exception or failure. > @@ -925,8 +927,8 @@ int rte_dma_access_pair_group_destroy(int16_t dev_id, int16_t group_id); > * negative value on failure indicating the error code. > */ > __rte_experimental > -int rte_dma_access_pair_group_join(int16_t dev_id, int16_t group_id, rte_uuid_t token, > - rte_dma_access_pair_group_event_cb_t cb); > +int rte_dma_access_pair_group_join(int16_t dev_id, rte_uuid_t domain_id, rte_uuid_t token, > + int16_t group_id, rte_dma_access_pair_group_event_cb_t cb); > > /** > * Leave an access group, removing the device's entry from the group table > diff --git a/lib/dmadev/rte_dmadev_pmd.h b/lib/dmadev/rte_dmadev_pmd.h > index 16fd625c2d..8a6b0a9c98 100644 > --- a/lib/dmadev/rte_dmadev_pmd.h > +++ b/lib/dmadev/rte_dmadev_pmd.h > @@ -75,8 +75,8 @@ typedef int (*rte_dma_access_pair_group_destroy_t)(const struct rte_dma_dev *dev > int16_t group_id); > > /** @internal Used to join an access pair group for inter-process or inter-OS DMA transfers. */ > -typedef int (*rte_dma_access_pair_group_join_t)(const struct rte_dma_dev *dev, int16_t group_id, > - rte_uuid_t token, > +typedef int (*rte_dma_access_pair_group_join_t)(const struct rte_dma_dev *dev, rte_uuid_t domain_id, > + rte_uuid_t token, int16_t group_id, > rte_dma_access_pair_group_event_cb_t cb); > > /** @internal Used to leave an access pair group, removing the device from the group. */ > diff --git a/lib/dmadev/rte_dmadev_trace.h b/lib/dmadev/rte_dmadev_trace.h > index da80a8cb50..7ad00b5bfa 100644 > --- a/lib/dmadev/rte_dmadev_trace.h > +++ b/lib/dmadev/rte_dmadev_trace.h > @@ -120,10 +120,12 @@ RTE_TRACE_POINT( > > RTE_TRACE_POINT( > rte_dma_trace_access_pair_group_join, > - RTE_TRACE_POINT_ARGS(int16_t dev_id, int16_t group_id, rte_uuid_t token), > + RTE_TRACE_POINT_ARGS(int16_t dev_id, rte_uuid_t domain_id, rte_uuid_t token, > + int16_t group_id), > rte_trace_point_emit_i16(dev_id); > - rte_trace_point_emit_i16(group_id); > + rte_trace_point_emit_u8_ptr(&domain_id[0]); > rte_trace_point_emit_u8_ptr(&token[0]); > + rte_trace_point_emit_i16(group_id); > ) There are one detail missing: 1. every process could generate one unique domain_id 2. process A create the access group, and share it's domain_id, the access group token, group_id to process B 3. process B join the access group, which verify by token and group id obtained in step 2 4. both process use rte_dma_access_pair_group_handler_get() API to get each other's domain. This is the detail missing: how process A know the process B's domain_id??? ---by extra communication channel??? Please add such detail on dmadev.rst Thanks > > RTE_TRACE_POINT( ^ permalink raw reply [flat|nested] 7+ messages in thread
* RE: [EXTERNAL] Re: [PATCH v0 1/1] dmadev: add domain_id field to access group join API 2025-11-04 0:45 ` fengchengwen @ 2025-11-04 4:02 ` Vamsi Krishna Attunuru 0 siblings, 0 replies; 7+ messages in thread From: Vamsi Krishna Attunuru @ 2025-11-04 4:02 UTC (permalink / raw) To: fengchengwen, dev@dpdk.org; +Cc: thomas@monjalon.net >ZjQcmQRYFpfptBannerEnd >On 11/3/2025 6:29 PM, Vamsi Krishna wrote: >> From: Vamsi Attunuru <vattunuru@marvell.com> >> >> Add domain_id field to access group join API, which is required to >> retrieve handler information associated with the specified domain. >> This enhancement ensures that domain-specific context is available >> during group join operations, improving flexibility and traceability >> in multi-domain environments. >> >> It also aligns the parameters of access group create and join APIs for >> consistency and clarity. >> >> Signed-off-by: Vamsi Attunuru <vattunuru@marvell.com> >> --- >> lib/dmadev/rte_dmadev.c | 6 +++--- >> lib/dmadev/rte_dmadev.h | 10 ++++++---- >> lib/dmadev/rte_dmadev_pmd.h | 4 ++-- >> lib/dmadev/rte_dmadev_trace.h | 6 ++++-- >> 4 files changed, 15 insertions(+), 11 deletions(-) >> >> diff --git a/lib/dmadev/rte_dmadev.c b/lib/dmadev/rte_dmadev.c index >> c008e829db..b75b4f9bd1 100644 >> --- a/lib/dmadev/rte_dmadev.c >> +++ b/lib/dmadev/rte_dmadev.c >> @@ -875,8 +875,8 @@ rte_dma_access_pair_group_destroy(int16_t >dev_id, >> int16_t group_id) >> >> RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_dma_access_pair_group_join, >25.11) >> int -rte_dma_access_pair_group_join(int16_t dev_id, int16_t group_id, >> rte_uuid_t token, >> - rte_dma_access_pair_group_event_cb_t cb) >> +rte_dma_access_pair_group_join(int16_t dev_id, rte_uuid_t domain_id, >rte_uuid_t token, >> + int16_t group_id, >rte_dma_access_pair_group_event_cb_t cb) >> { >> struct rte_dma_info dev_info; >> struct rte_dma_dev *dev; >> @@ -899,7 +899,7 @@ rte_dma_access_pair_group_join(int16_t dev_id, >> int16_t group_id, rte_uuid_t toke >> >> if (*dev->dev_ops->access_pair_group_join == NULL) >> return -ENOTSUP; >> - return (*dev->dev_ops->access_pair_group_join)(dev, group_id, >token, cb); >> + return (*dev->dev_ops->access_pair_group_join)(dev, domain_id, >> +token, group_id, cb); >> } >> >> >RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_dma_access_pair_group_leave, >> 25.11) diff --git a/lib/dmadev/rte_dmadev.h b/lib/dmadev/rte_dmadev.h >> index 0f4f10ec12..5287b0f32d 100644 >> --- a/lib/dmadev/rte_dmadev.h >> +++ b/lib/dmadev/rte_dmadev.h >> @@ -912,10 +912,12 @@ int rte_dma_access_pair_group_destroy(int16_t >dev_id, int16_t group_id); >> * >> * @param dev_id >> * Identifier of the DMA device attempting to join the group. >> - * @param group_id >> - * ID of the access group to join. >> + * @param domain_id >> + * Unique identifier representing the process or OS domain. > >This domain_id should be local process or OS domain, so how bout: Unique >identifier representing my process or OS domain. > >And please change the rte_dma_access_pair_group_create 's comment >about the domain_id. > Ack, will update both the comments. >> * @param token >> * Authentication token used to validate group membership. >> + * @param group_id >> + * ID of the access group to join. >> * @param cb >> * Callback function to be invoked when the device leaves the group >> * or when the group is destroyed due to some exception or failure. >> @@ -925,8 +927,8 @@ int rte_dma_access_pair_group_destroy(int16_t >dev_id, int16_t group_id); >> * negative value on failure indicating the error code. >> */ >> __rte_experimental >> -int rte_dma_access_pair_group_join(int16_t dev_id, int16_t group_id, >rte_uuid_t token, >> - rte_dma_access_pair_group_event_cb_t >cb); >> +int rte_dma_access_pair_group_join(int16_t dev_id, rte_uuid_t >domain_id, rte_uuid_t token, >> + int16_t group_id, >rte_dma_access_pair_group_event_cb_t cb); >> >> /** >> * Leave an access group, removing the device's entry from the group >> table diff --git a/lib/dmadev/rte_dmadev_pmd.h >> b/lib/dmadev/rte_dmadev_pmd.h index 16fd625c2d..8a6b0a9c98 100644 >> --- a/lib/dmadev/rte_dmadev_pmd.h >> +++ b/lib/dmadev/rte_dmadev_pmd.h >> @@ -75,8 +75,8 @@ typedef int >(*rte_dma_access_pair_group_destroy_t)(const struct rte_dma_dev *dev >> int16_t group_id); >> >> /** @internal Used to join an access pair group for inter-process or >> inter-OS DMA transfers. */ -typedef int >(*rte_dma_access_pair_group_join_t)(const struct rte_dma_dev *dev, >int16_t group_id, >> - rte_uuid_t token, >> +typedef int (*rte_dma_access_pair_group_join_t)(const struct >rte_dma_dev *dev, rte_uuid_t domain_id, >> + rte_uuid_t token, int16_t >group_id, >> > rte_dma_access_pair_group_event_cb_t cb); >> >> /** @internal Used to leave an access pair group, removing the device >> from the group. */ diff --git a/lib/dmadev/rte_dmadev_trace.h >> b/lib/dmadev/rte_dmadev_trace.h index da80a8cb50..7ad00b5bfa 100644 >> --- a/lib/dmadev/rte_dmadev_trace.h >> +++ b/lib/dmadev/rte_dmadev_trace.h >> @@ -120,10 +120,12 @@ RTE_TRACE_POINT( >> >> RTE_TRACE_POINT( >> rte_dma_trace_access_pair_group_join, >> - RTE_TRACE_POINT_ARGS(int16_t dev_id, int16_t group_id, >rte_uuid_t token), >> + RTE_TRACE_POINT_ARGS(int16_t dev_id, rte_uuid_t domain_id, >rte_uuid_t token, >> + int16_t group_id), >> rte_trace_point_emit_i16(dev_id); >> - rte_trace_point_emit_i16(group_id); >> + rte_trace_point_emit_u8_ptr(&domain_id[0]); >> rte_trace_point_emit_u8_ptr(&token[0]); >> + rte_trace_point_emit_i16(group_id); >> ) > >There are one detail missing: >1. every process could generate one unique domain_id 2. process A create >the access group, and share it's domain_id, the access group token, group_id >to process B 3. process B join the access group, which verify by token and >group id obtained in step 2 4. both process use >rte_dma_access_pair_group_handler_get() API to get each other's domain. > This is the detail missing: how process A know the process B's domain_id??? >---by extra communication channel??? > >Please add such detail on dmadev.rst ack, will add more details in v2. > >Thanks >> >> RTE_TRACE_POINT( ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v2 1/1] dmadev: add domain_id field to access group join API 2025-11-03 10:29 [PATCH v0 1/1] dmadev: add domain_id field to access group join API Vamsi Krishna 2025-11-04 0:45 ` fengchengwen @ 2025-11-04 5:21 ` Vamsi Krishna 2025-11-04 6:05 ` fengchengwen 1 sibling, 1 reply; 7+ messages in thread From: Vamsi Krishna @ 2025-11-04 5:21 UTC (permalink / raw) To: dev, fengchengwen; +Cc: thomas, vattunuru From: Vamsi Attunuru <vattunuru@marvell.com> Add domain_id field to access group join API, which is required to retrieve handler information associated with the specified domain. This enhancement ensures that domain-specific context is available during group join operations, improving flexibility and traceability in multi-domain environments. Patch aligns the parameters of access group create and join APIs for consistency and clarity, also updates the dmadev.rst file with detailed steps. Signed-off-by: Vamsi Attunuru <vattunuru@marvell.com> --- V2 changes: * Updated domain_id field description. * Added more detailed steps in dmadev.rst file. doc/guides/prog_guide/dmadev.rst | 43 +++++++++++++++++++++----------- lib/dmadev/rte_dmadev.c | 6 ++--- lib/dmadev/rte_dmadev.h | 12 +++++---- lib/dmadev/rte_dmadev_pmd.h | 4 +-- lib/dmadev/rte_dmadev_trace.h | 6 +++-- 5 files changed, 44 insertions(+), 27 deletions(-) diff --git a/doc/guides/prog_guide/dmadev.rst b/doc/guides/prog_guide/dmadev.rst index 776a860070..1a2384eea1 100644 --- a/doc/guides/prog_guide/dmadev.rst +++ b/doc/guides/prog_guide/dmadev.rst @@ -177,7 +177,7 @@ the :doc:`../howto/telemetry`. Inter-domain DMA Transfers -~~~~~~~~~~~~~~~~~~~~~~~~~~ +-------------------------- The inter-domain DMA feature enables DMA devices to perform data transfers across different processes and OS domains. @@ -201,32 +201,45 @@ can perform DMA transfers across processes or OS domains. Below is the API usage flow for setting up the access pair group for DMA between process#1 and process#2. +Each process must generate a unique ``domain_id`` to represent its identity +(e.g., a process-specific or OS-specific domain identifier). + Process#1 (Group Creator) -^^^^^^^^^^^^^^^^^^^^^^^^^ +~~~~~~~~~~~~~~~~~~~~~~~~~ + +* Generates a unique ``token`` that will be used to secure the access pair group. + +* Calls ``rte_dma_access_pair_group_create`` to establish a new access pair group. -Calls ``rte_dma_access_pair_group_create`` to establish a new access pair group, -then shares the ``group_id``, ``token`` and ``domain_id`` with Process#2 via IPC. +* Shares the ``group_id``, ``token`` and its ``domain_id`` details with Process#2 + via IPC or sideband communication channel. 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. +* Receives the ``group_id``, ``token`` and Process#1's ``domain_id``. + +* Passes ``group_id``, ``token`` and its own ``domain_id`` to ``rte_dma_access_pair_group_join`` + to join the access group. + +* Shares its ``domain_id`` details with Process#1 via IPC or sideband communication channel. Both Processes -^^^^^^^^^^^^^^ +~~~~~~~~~~~~~~ + +* Each process retrieves the ``handler`` information associated with its own or the peer's + ``domain_id`` using ``rte_dma_access_pair_group_handler_get``. -Use ``rte_dma_access_pair_group_handler_get`` to obtain ``handler`` information -for domains in the group. +* Use these ``handler`` details to setup the virtual channel configuration. -Perform inter-domain DMA transfers as required. +* Perform the inter-domain DMA transfers as required. Process#2 (when finished) -^^^^^^^^^^^^^^^^^^^^^^^^^ +~~~~~~~~~~~~~~~~~~~~~~~~~ -Calls ``rte_dma_access_pair_group_leave`` to exit the group. +* Calls ``rte_dma_access_pair_group_leave`` to exit the group. Process#1 (final cleanup) -^^^^^^^^^^^^^^^^^^^^^^^^^ +~~~~~~~~~~~~~~~~~~~~~~~~~ -Calls ``rte_dma_access_pair_group_destroy`` to destroy the group. +* Calls ``rte_dma_access_pair_group_destroy`` to destroy the group. diff --git a/lib/dmadev/rte_dmadev.c b/lib/dmadev/rte_dmadev.c index c008e829db..b75b4f9bd1 100644 --- a/lib/dmadev/rte_dmadev.c +++ b/lib/dmadev/rte_dmadev.c @@ -875,8 +875,8 @@ rte_dma_access_pair_group_destroy(int16_t dev_id, int16_t group_id) RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_dma_access_pair_group_join, 25.11) int -rte_dma_access_pair_group_join(int16_t dev_id, int16_t group_id, rte_uuid_t token, - rte_dma_access_pair_group_event_cb_t cb) +rte_dma_access_pair_group_join(int16_t dev_id, rte_uuid_t domain_id, rte_uuid_t token, + int16_t group_id, rte_dma_access_pair_group_event_cb_t cb) { struct rte_dma_info dev_info; struct rte_dma_dev *dev; @@ -899,7 +899,7 @@ rte_dma_access_pair_group_join(int16_t dev_id, int16_t group_id, rte_uuid_t toke if (*dev->dev_ops->access_pair_group_join == NULL) return -ENOTSUP; - return (*dev->dev_ops->access_pair_group_join)(dev, group_id, token, cb); + return (*dev->dev_ops->access_pair_group_join)(dev, domain_id, token, group_id, cb); } RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_dma_access_pair_group_leave, 25.11) diff --git a/lib/dmadev/rte_dmadev.h b/lib/dmadev/rte_dmadev.h index 0f4f10ec12..c554c4289c 100644 --- a/lib/dmadev/rte_dmadev.h +++ b/lib/dmadev/rte_dmadev.h @@ -867,7 +867,7 @@ typedef void (*rte_dma_access_pair_group_event_cb_t)(int16_t dev_id, * @param dev_id * Identifier of the DMA device initiating the group. * @param domain_id - * Unique identifier representing the process or OS domain. + * Unique identifier representing the current process or OS domain. * @param token * Authentication token used to establish the access group. * @param[out] group_id @@ -912,10 +912,12 @@ int rte_dma_access_pair_group_destroy(int16_t dev_id, int16_t group_id); * * @param dev_id * Identifier of the DMA device attempting to join the group. - * @param group_id - * ID of the access group to join. + * @param domain_id + * Unique identifier representing the current process or OS domain. * @param token * Authentication token used to validate group membership. + * @param group_id + * ID of the access group to join. * @param cb * Callback function to be invoked when the device leaves the group * or when the group is destroyed due to some exception or failure. @@ -925,8 +927,8 @@ int rte_dma_access_pair_group_destroy(int16_t dev_id, int16_t group_id); * negative value on failure indicating the error code. */ __rte_experimental -int rte_dma_access_pair_group_join(int16_t dev_id, int16_t group_id, rte_uuid_t token, - rte_dma_access_pair_group_event_cb_t cb); +int rte_dma_access_pair_group_join(int16_t dev_id, rte_uuid_t domain_id, rte_uuid_t token, + int16_t group_id, rte_dma_access_pair_group_event_cb_t cb); /** * Leave an access group, removing the device's entry from the group table diff --git a/lib/dmadev/rte_dmadev_pmd.h b/lib/dmadev/rte_dmadev_pmd.h index 16fd625c2d..8a6b0a9c98 100644 --- a/lib/dmadev/rte_dmadev_pmd.h +++ b/lib/dmadev/rte_dmadev_pmd.h @@ -75,8 +75,8 @@ typedef int (*rte_dma_access_pair_group_destroy_t)(const struct rte_dma_dev *dev int16_t group_id); /** @internal Used to join an access pair group for inter-process or inter-OS DMA transfers. */ -typedef int (*rte_dma_access_pair_group_join_t)(const struct rte_dma_dev *dev, int16_t group_id, - rte_uuid_t token, +typedef int (*rte_dma_access_pair_group_join_t)(const struct rte_dma_dev *dev, rte_uuid_t domain_id, + rte_uuid_t token, int16_t group_id, rte_dma_access_pair_group_event_cb_t cb); /** @internal Used to leave an access pair group, removing the device from the group. */ diff --git a/lib/dmadev/rte_dmadev_trace.h b/lib/dmadev/rte_dmadev_trace.h index da80a8cb50..7ad00b5bfa 100644 --- a/lib/dmadev/rte_dmadev_trace.h +++ b/lib/dmadev/rte_dmadev_trace.h @@ -120,10 +120,12 @@ RTE_TRACE_POINT( RTE_TRACE_POINT( rte_dma_trace_access_pair_group_join, - RTE_TRACE_POINT_ARGS(int16_t dev_id, int16_t group_id, rte_uuid_t token), + RTE_TRACE_POINT_ARGS(int16_t dev_id, rte_uuid_t domain_id, rte_uuid_t token, + int16_t group_id), rte_trace_point_emit_i16(dev_id); - rte_trace_point_emit_i16(group_id); + rte_trace_point_emit_u8_ptr(&domain_id[0]); rte_trace_point_emit_u8_ptr(&token[0]); + rte_trace_point_emit_i16(group_id); ) RTE_TRACE_POINT( -- 2.34.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v2 1/1] dmadev: add domain_id field to access group join API 2025-11-04 5:21 ` [PATCH v2 " Vamsi Krishna @ 2025-11-04 6:05 ` fengchengwen 2025-11-04 11:53 ` [EXTERNAL] " Vamsi Krishna Attunuru 2025-11-05 10:06 ` Thomas Monjalon 0 siblings, 2 replies; 7+ messages in thread From: fengchengwen @ 2025-11-04 6:05 UTC (permalink / raw) To: Vamsi Krishna, dev; +Cc: thomas Signed-off-by: Chengwen Feng <fengchengwen@huawei.com> On 11/4/2025 1:21 PM, Vamsi Krishna wrote: > From: Vamsi Attunuru <vattunuru@marvell.com> > > Add domain_id field to access group join API, which is required > to retrieve handler information associated with the specified domain. > This enhancement ensures that domain-specific context is available > during group join operations, improving flexibility and traceability > in multi-domain environments. > > Patch aligns the parameters of access group create and join APIs > for consistency and clarity, also updates the dmadev.rst file with > detailed steps. > > Signed-off-by: Vamsi Attunuru <vattunuru@marvell.com> ^ permalink raw reply [flat|nested] 7+ messages in thread
* RE: [EXTERNAL] Re: [PATCH v2 1/1] dmadev: add domain_id field to access group join API 2025-11-04 6:05 ` fengchengwen @ 2025-11-04 11:53 ` Vamsi Krishna Attunuru 2025-11-05 10:06 ` Thomas Monjalon 1 sibling, 0 replies; 7+ messages in thread From: Vamsi Krishna Attunuru @ 2025-11-04 11:53 UTC (permalink / raw) To: thomas@monjalon.net; +Cc: fengchengwen, dev@dpdk.org Hi Thomas, Gentle ping for merge. Regards Vamsi >-----Original Message----- >From: fengchengwen <fengchengwen@huawei.com> >Sent: Tuesday, November 4, 2025 11:36 AM >To: Vamsi Krishna Attunuru <vattunuru@marvell.com>; dev@dpdk.org >Cc: thomas@monjalon.net >Subject: [EXTERNAL] Re: [PATCH v2 1/1] dmadev: add domain_id field to >access group join API > >Signed-off-by: Chengwen Feng <fengchengwen@ huawei. com> On >11/4/2025 1: 21 PM, Vamsi Krishna wrote: > From: Vamsi Attunuru ><vattunuru@ marvell. com> > > Add domain_id field to access group join API, >which is required > to ZjQcmQRYFpfptBannerStart Prioritize security for >external emails: >Confirm sender and content safety before clicking links or opening >attachments <https://us-phishalarm- >ewt.proofpoint.com/EWT/v1/CRVmXkqW!tg3ZdN80AjTwNAwdmXxwLa- >etC2CV_lbTBNEBP8hf8TBxPjQSqqCRRJOiHyyb13qTkXEm5TxzdiZxiXJu3u- >Kk1yQl6F9JefmIs$> >Report Suspicious > >ZjQcmQRYFpfptBannerEnd >Signed-off-by: Chengwen Feng <fengchengwen@huawei.com> > >On 11/4/2025 1:21 PM, Vamsi Krishna wrote: >> From: Vamsi Attunuru <vattunuru@marvell.com> >> >> Add domain_id field to access group join API, which is required to >> retrieve handler information associated with the specified domain. >> This enhancement ensures that domain-specific context is available >> during group join operations, improving flexibility and traceability >> in multi-domain environments. >> >> Patch aligns the parameters of access group create and join APIs for >> consistency and clarity, also updates the dmadev.rst file with >> detailed steps. >> >> Signed-off-by: Vamsi Attunuru <vattunuru@marvell.com> ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2 1/1] dmadev: add domain_id field to access group join API 2025-11-04 6:05 ` fengchengwen 2025-11-04 11:53 ` [EXTERNAL] " Vamsi Krishna Attunuru @ 2025-11-05 10:06 ` Thomas Monjalon 1 sibling, 0 replies; 7+ messages in thread From: Thomas Monjalon @ 2025-11-05 10:06 UTC (permalink / raw) To: Vamsi Krishna; +Cc: dev, fengchengwen > > Add domain_id field to access group join API, which is required > > to retrieve handler information associated with the specified domain. > > This enhancement ensures that domain-specific context is available > > during group join operations, improving flexibility and traceability > > in multi-domain environments. > > > > Patch aligns the parameters of access group create and join APIs > > for consistency and clarity, also updates the dmadev.rst file with > > detailed steps. > > > > Signed-off-by: Vamsi Attunuru <vattunuru@marvell.com> > Signed-off-by: Chengwen Feng <fengchengwen@huawei.com> Applied, thanks. ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2025-11-05 10:06 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-11-03 10:29 [PATCH v0 1/1] dmadev: add domain_id field to access group join API Vamsi Krishna 2025-11-04 0:45 ` fengchengwen 2025-11-04 4:02 ` [EXTERNAL] " Vamsi Krishna Attunuru 2025-11-04 5:21 ` [PATCH v2 " Vamsi Krishna 2025-11-04 6:05 ` fengchengwen 2025-11-04 11:53 ` [EXTERNAL] " Vamsi Krishna Attunuru 2025-11-05 10:06 ` Thomas Monjalon
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).