From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 5DE9F454DE; Mon, 24 Jun 2024 11:22:59 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4E1924027B; Mon, 24 Jun 2024 11:22:59 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by mails.dpdk.org (Postfix) with ESMTP id 21F3E4026E for ; Mon, 24 Jun 2024 11:22:57 +0200 (CEST) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 45NMrSQH002247 for ; Mon, 24 Jun 2024 02:22:57 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h= cc:content-transfer-encoding:content-type:date:from:message-id :mime-version:subject:to; s=pfpt0220; bh=hxfWR1whBCDr/ls78OdENo0 ENmzWwKmQpzm46UqIbwk=; b=NP4aC63sp0Apfti6+gOwWmutFDjwumS9jbRh8ty g2gcxKejW2lcQiHaDOg1rgAKTypKdmc8dv9cPsG8iQk6ch4UD4WPRyxFf6uNqZ0F zUQcRkISvOBPDIGEfzSWxo2W76hWMxXpRg1BlzJYeDDyn2QxFRa6ADWWkhvrxTwl ylo+kFYmGeLXZVjDVrPdj75ehDrNLS07YymMaLv8fMVrbKOtfT2np5KS9QYa7/Vv 72xTJZAoiw2d1/P22bLy9sMsW0uhbYKQEMjkfyupqrGko38ZrWpT1fRYyaoefr0z 9Ap0f+adApOSDO4Pk8urqzUXXD8yZOt8fVVBVSnWnKF+PqA== Received: from dc5-exch05.marvell.com ([199.233.59.128]) by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 3yxcgtjyc1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 24 Jun 2024 02:22:57 -0700 (PDT) Received: from DC5-EXCH05.marvell.com (10.69.176.209) by DC5-EXCH05.marvell.com (10.69.176.209) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Mon, 24 Jun 2024 02:22:56 -0700 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH05.marvell.com (10.69.176.209) with Microsoft SMTP Server id 15.2.1544.4 via Frontend Transport; Mon, 24 Jun 2024 02:22:56 -0700 Received: from MININT-80QBFE8.corp.innovium.com (MININT-80QBFE8.marvell.com [10.28.164.106]) by maili.marvell.com (Postfix) with ESMTP id B218D3F7077; Mon, 24 Jun 2024 02:22:54 -0700 (PDT) From: To: , Amit Prakash Shukla CC: , Pavan Nikhilesh Subject: [PATCH] eventdev/dma: fix missing response info in forward mode Date: Mon, 24 Jun 2024 14:52:51 +0530 Message-ID: <20240624092251.2970-1-pbhagavatula@marvell.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Proofpoint-GUID: 4DMHzlgY9chGCvUhO7GGxfTwp3hHiV04 X-Proofpoint-ORIG-GUID: 4DMHzlgY9chGCvUhO7GGxfTwp3hHiV04 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-06-24_08,2024-06-21_01,2024-05-17_01 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org From: Pavan Nikhilesh 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 --- 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