From patchwork Mon Oct 26 05:21:02 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Monjalon X-Patchwork-Id: 82157 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 3518FA04B5; Mon, 26 Oct 2020 06:25:35 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id DC8B8558E; Mon, 26 Oct 2020 06:21:54 +0100 (CET) Received: from out2-smtp.messagingengine.com (out2-smtp.messagingengine.com [66.111.4.26]) by dpdk.org (Postfix) with ESMTP id AAC6A2DCC for ; Mon, 26 Oct 2020 06:21:48 +0100 (CET) Received: from compute2.internal (compute2.nyi.internal [10.202.2.42]) by mailout.nyi.internal (Postfix) with ESMTP id 6133C5C010B; Mon, 26 Oct 2020 01:21:47 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute2.internal (MEProxy); Mon, 26 Oct 2020 01:21:47 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=monjalon.net; h= from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; s=fm2; bh=tibx62r5Tj0hV gxsMxlWD0TdTK12O/RpbGQ7N+nL8Aw=; b=FicgRy/Gjoo+J+tpdkUhL28Vb9RwG CMMlyFMsRd/PCQRzLowE10ZCnxP+a6qMs/sfpqeF/8za40vMGHZExae/MSuHMv2w WfLWqyWzkPBIxumZ3frDyW/9O4REzxChyKgYJg7kMHZvhtwAd/nb34NRV8aMRvtq QeSboslOAVk3aTCfTpxFQw+oZ1KEL9PAgdkx/1j5sbWAniqZMCqkwth1XzcI+pd1 Z0eZg9cLTiu1kzVqnze9KPiXkDSTbdAHXaNPZFO5/Mtdhes2NgZsU9bq1e6wK0Hq +6jcEz20MDDtWlwU+ZUMrt9i6Hs61AiWQ6sXcEp25AbW4Nf8IDNW3E2Sw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; bh=tibx62r5Tj0hVgxsMxlWD0TdTK12O/RpbGQ7N+nL8Aw=; b=p51oFQhc XXC91Tc4mfHeGbc5+l/P6Opa9eBpT0/3E7mVfCXIGlMyMDMmDjux/GpsdeA6pB5W 3jmFE6HXOotPuJWOwGgvm1JDLeMz8jH9nTAk8Sp+UhZH3n6J86rnJ/ayrlcrJrtr H0M/WlP+/PIVCeV2b9jbF09y0LhcGCQitmO7hnklZ63ifaV8C33QZey1yhA4iH7R K9nqv9orRsjsLaOXhpXekYdApxA+pVg8wGvN5zLS82lvaUr9NaZVZt40Ao4j/t6j HAwgOpBLyP4n3zYBckzP0Q7GDbNBa0L+bE0tHvNB/ksjf2MyUDJ1u5L3sym5Vqs3 il5BVE7SYnCKew== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedujedrkeehgdekgecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefhvffufffkofgjfhgggfestdekredtredttdenucfhrhhomhepvfhhohhmrghs ucfoohhnjhgrlhhonhcuoehthhhomhgrshesmhhonhhjrghlohhnrdhnvghtqeenucggtf frrghtthgvrhhnpedvhefgiedvjeegtdevheefhfetleefgfeivefgffevfeejgedtgfeu tdehtdegveenucfkphepjeejrddufeegrddvtdefrddukeegnecuvehluhhsthgvrhfuih iivgepleenucfrrghrrghmpehmrghilhhfrhhomhepthhhohhmrghssehmohhnjhgrlhho nhdrnhgvth X-ME-Proxy: Received: from xps.monjalon.net (184.203.134.77.rev.sfr.net [77.134.203.184]) by mail.messagingengine.com (Postfix) with ESMTPA id 4FCCD306467E; Mon, 26 Oct 2020 01:21:46 -0400 (EDT) From: Thomas Monjalon To: dev@dpdk.org Cc: ferruh.yigit@intel.com, david.marchand@redhat.com, bruce.richardson@intel.com, olivier.matz@6wind.com, andrew.rybchenko@oktetlabs.ru, akhil.goyal@nxp.com, Jerin Jacob Date: Mon, 26 Oct 2020 06:21:02 +0100 Message-Id: <20201026052105.1561859-13-thomas@monjalon.net> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201026052105.1561859-1-thomas@monjalon.net> References: <20201026052105.1561859-1-thomas@monjalon.net> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH 12/15] app/eventdev: switch flow ID to dynamic mbuf field X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" The order test stored the flow ID in the deprecated mbuf field udata64. It is moved to a dynamic field in order to allow removal of udata64. Signed-off-by: Thomas Monjalon --- app/test-eventdev/test_order_atq.c | 4 ++-- app/test-eventdev/test_order_common.c | 16 +++++++++++++++- app/test-eventdev/test_order_common.h | 5 +++++ app/test-eventdev/test_order_queue.c | 4 ++-- 4 files changed, 24 insertions(+), 5 deletions(-) diff --git a/app/test-eventdev/test_order_atq.c b/app/test-eventdev/test_order_atq.c index cfcb1dc4e9..4087c26fc5 100644 --- a/app/test-eventdev/test_order_atq.c +++ b/app/test-eventdev/test_order_atq.c @@ -35,7 +35,7 @@ order_atq_worker(void *arg, const bool flow_id_cap) } if (!flow_id_cap) - ev.flow_id = ev.mbuf->udata64; + ev.flow_id = FLOW_ID(ev.mbuf); if (ev.sub_event_type == 0) { /* stage 0 from producer */ order_atq_process_stage_0(&ev); @@ -72,7 +72,7 @@ order_atq_worker_burst(void *arg, const bool flow_id_cap) for (i = 0; i < nb_rx; i++) { if (!flow_id_cap) - ev[i].flow_id = ev[i].mbuf->udata64; + ev[i].flow_id = FLOW_ID(ev[i].mbuf); if (ev[i].sub_event_type == 0) { /*stage 0 */ order_atq_process_stage_0(&ev[i]); diff --git a/app/test-eventdev/test_order_common.c b/app/test-eventdev/test_order_common.c index dc55d93921..fc82e3ff41 100644 --- a/app/test-eventdev/test_order_common.c +++ b/app/test-eventdev/test_order_common.c @@ -4,6 +4,8 @@ #include "test_order_common.h" +int flow_id_dynfield_offset; + int order_test_result(struct evt_test *test, struct evt_options *opt) { @@ -49,7 +51,7 @@ order_producer(void *arg) const uint32_t flow = (uintptr_t)m % nb_flows; /* Maintain seq number per flow */ m->seqn = producer_flow_seq[flow]++; - m->udata64 = flow; + FLOW_ID(m) = flow; ev.flow_id = flow; ev.mbuf = m; @@ -139,6 +141,18 @@ order_test_setup(struct evt_test *test, struct evt_options *opt) { void *test_order; + static const struct rte_mbuf_dynfield flow_id_dynfield_desc = { + .name = "test_event_dynfield_flow_id", + .size = sizeof(uint32_t), + .align = __alignof__(uint32_t), + }; + flow_id_dynfield_offset = + rte_mbuf_dynfield_register(&flow_id_dynfield_desc); + if (flow_id_dynfield_offset < 0) { + evt_err("failed to register mbuf field"); + return -rte_errno; + } + test_order = rte_zmalloc_socket(test->name, sizeof(struct test_order), RTE_CACHE_LINE_SIZE, opt->socket_id); if (test_order == NULL) { diff --git a/app/test-eventdev/test_order_common.h b/app/test-eventdev/test_order_common.h index e0fe9c968a..13bf791564 100644 --- a/app/test-eventdev/test_order_common.h +++ b/app/test-eventdev/test_order_common.h @@ -13,6 +13,7 @@ #include #include #include +#include #include "evt_common.h" #include "evt_options.h" @@ -20,6 +21,10 @@ #define BURST_SIZE 16 +extern int flow_id_dynfield_offset; +#define FLOW_ID(mbuf) \ + (*RTE_MBUF_DYNFIELD(mbuf, flow_id_dynfield_offset, uint32_t *)) + struct test_order; struct worker_data { diff --git a/app/test-eventdev/test_order_queue.c b/app/test-eventdev/test_order_queue.c index 1511c0092d..80c9c24af5 100644 --- a/app/test-eventdev/test_order_queue.c +++ b/app/test-eventdev/test_order_queue.c @@ -35,7 +35,7 @@ order_queue_worker(void *arg, const bool flow_id_cap) } if (!flow_id_cap) - ev.flow_id = ev.mbuf->udata64; + ev.flow_id = FLOW_ID(ev.mbuf); if (ev.queue_id == 0) { /* from ordered queue */ order_queue_process_stage_0(&ev); @@ -73,7 +73,7 @@ order_queue_worker_burst(void *arg, const bool flow_id_cap) for (i = 0; i < nb_rx; i++) { if (!flow_id_cap) - ev[i].flow_id = ev[i].mbuf->udata64; + ev[i].flow_id = FLOW_ID(ev[i].mbuf); if (ev[i].queue_id == 0) { /* from ordered queue */ order_queue_process_stage_0(&ev[i]);