From: <pbhagavatula@marvell.com>
To: <jerinj@marvell.com>, Amit Prakash Shukla <amitprakashs@marvell.com>
Cc: <dev@dpdk.org>, Pavan Nikhilesh <pbhagavatula@marvell.com>
Subject: [PATCH] eventdev/dma: fix missing response info in forward mode
Date: Mon, 24 Jun 2024 14:52:51 +0530 [thread overview]
Message-ID: <20240624092251.2970-1-pbhagavatula@marvell.com> (raw)
From: Pavan Nikhilesh <pbhagavatula@marvell.com>
When in OP_FWD mode the DMA completion response should
use the `rte_event_dma_adapter_op::event_meta` to inject
the completion event.
Bugzilla ID: 1469
Fixes: 588dcac23610 ("eventdev/dma: reorganize event DMA ops")
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
---
app/test/test_event_dma_adapter.c | 10 +++++++---
lib/eventdev/rte_event_dma_adapter.c | 1 +
lib/eventdev/rte_event_dma_adapter.h | 11 ++++++++++-
3 files changed, 18 insertions(+), 4 deletions(-)
diff --git a/app/test/test_event_dma_adapter.c b/app/test/test_event_dma_adapter.c
index d9dff4ff7d..3b39521153 100644
--- a/app/test/test_event_dma_adapter.c
+++ b/app/test/test_event_dma_adapter.c
@@ -61,7 +61,8 @@ struct rte_event dma_response_info = {
.queue_id = TEST_APP_EV_QUEUE_ID,
.sched_type = RTE_SCHED_TYPE_ATOMIC,
.flow_id = TEST_APP_EV_FLOWID,
- .priority = TEST_APP_EV_PRIORITY
+ .priority = TEST_APP_EV_PRIORITY,
+ .op = RTE_EVENT_OP_NEW,
};
static struct event_dma_adapter_test_params params;
@@ -263,10 +264,12 @@ test_op_forward_mode(void)
op->op_mp = params.op_mpool;
op->dma_dev_id = TEST_DMA_DEV_ID;
op->vchan = TEST_DMA_VCHAN_ID;
+ op->event_meta = dma_response_info.event;
/* Fill in event info and update event_ptr with rte_event_dma_adapter_op */
memset(&ev[i], 0, sizeof(struct rte_event));
ev[i].event = 0;
+ ev[i].op = RTE_EVENT_OP_NEW;
ev[i].event_type = RTE_EVENT_TYPE_DMADEV;
ev[i].queue_id = TEST_DMA_EV_QUEUE_ID;
ev[i].sched_type = RTE_SCHED_TYPE_ATOMIC;
@@ -574,10 +577,11 @@ configure_event_dma_adapter(enum rte_event_dma_adapter_mode mode)
ret = rte_event_dma_adapter_create(TEST_ADAPTER_ID, evdev, &conf, mode);
TEST_ASSERT_SUCCESS(ret, "Failed to create event dma adapter\n");
- if (cap & RTE_EVENT_DMA_ADAPTER_CAP_INTERNAL_PORT_VCHAN_EV_BIND) {
+ event.event = dma_response_info.event;
+ if (cap & RTE_EVENT_DMA_ADAPTER_CAP_INTERNAL_PORT_VCHAN_EV_BIND)
ret = rte_event_dma_adapter_vchan_add(TEST_ADAPTER_ID, TEST_DMA_DEV_ID,
TEST_DMA_VCHAN_ID, &event);
- } else
+ else
ret = rte_event_dma_adapter_vchan_add(TEST_ADAPTER_ID, TEST_DMA_DEV_ID,
TEST_DMA_VCHAN_ID, NULL);
diff --git a/lib/eventdev/rte_event_dma_adapter.c b/lib/eventdev/rte_event_dma_adapter.c
index e52ef46a1b..ff2bc408c1 100644
--- a/lib/eventdev/rte_event_dma_adapter.c
+++ b/lib/eventdev/rte_event_dma_adapter.c
@@ -666,6 +666,7 @@ edma_ops_enqueue_burst(struct event_dma_adapter *adapter, struct rte_event_dma_a
ev->op = RTE_EVENT_OP_FORWARD;
else
ev->op = RTE_EVENT_OP_NEW;
+ ev->event = ops[i]->event_meta;
}
do {
diff --git a/lib/eventdev/rte_event_dma_adapter.h b/lib/eventdev/rte_event_dma_adapter.h
index 048ddba3f3..768390cd30 100644
--- a/lib/eventdev/rte_event_dma_adapter.h
+++ b/lib/eventdev/rte_event_dma_adapter.h
@@ -179,8 +179,17 @@ struct rte_event_dma_adapter_op {
* The dma device implementation should not modify this area.
*/
uint64_t event_meta;
- /**< Event metadata that defines event attributes when used in OP_NEW mode.
+ /**< Event metadata of DMA completion event.
+ * Used when RTE_EVENT_DMA_ADAPTER_CAP_INTERNAL_PORT_VCHAN_EV_BIND is not
+ * supported in OP_NEW mode.
* @see rte_event_dma_adapter_mode::RTE_EVENT_DMA_ADAPTER_OP_NEW
+ * @see RTE_EVENT_DMA_ADAPTER_CAP_INTERNAL_PORT_VCHAN_EV_BIND
+ *
+ * Used when RTE_EVENT_DMA_ADAPTER_CAP_INTERNAL_PORT_OP_FWD is not
+ * supported in OP_FWD mode.
+ * @see rte_event_dma_adapter_mode::RTE_EVENT_DMA_ADAPTER_OP_FORWARD
+ * @see RTE_EVENT_DMA_ADAPTER_CAP_INTERNAL_PORT_OP_FWD
+ *
* @see struct rte_event::event
*/
int16_t dma_dev_id;
--
2.25.1
next reply other threads:[~2024-06-24 9:22 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-24 9:22 pbhagavatula [this message]
2024-06-25 8:01 ` Amit Prakash Shukla
2024-06-26 2:17 ` Jiale, SongX
2024-06-26 10:59 ` Jerin Jacob
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=20240624092251.2970-1-pbhagavatula@marvell.com \
--to=pbhagavatula@marvell.com \
--cc=amitprakashs@marvell.com \
--cc=dev@dpdk.org \
--cc=jerinj@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).