On 11/3/2025 6:29 PM, Vamsi Krishna wrote: > From: Vamsi Attunuru <[email protected]> > > 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 <[email protected]> > --- > 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(

