From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 905ABA04DD; Wed, 28 Oct 2020 11:30:57 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 644F4CA5D; Wed, 28 Oct 2020 11:27:36 +0100 (CET) Received: from out4-smtp.messagingengine.com (out4-smtp.messagingengine.com [66.111.4.28]) by dpdk.org (Postfix) with ESMTP id 11617C9EE for ; Wed, 28 Oct 2020 11:27:27 +0100 (CET) Received: from compute2.internal (compute2.nyi.internal [10.202.2.42]) by mailout.nyi.internal (Postfix) with ESMTP id B8E6E5C01A3; Wed, 28 Oct 2020 06:27:25 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute2.internal (MEProxy); Wed, 28 Oct 2020 06:27:25 -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=HhLwf0w4DGO4G rUYkzhR7OWJ7zfGCnjW/SYxuiDy6eY=; b=vAVC4ZVjhtZTCkU0QOSv77P4GAjAb xy3S5dCXcp7BY5vp3DJ2QK3o4UWqDw+fuMoOTM2/4X+JGC89yuCRFKhjqcnELQDV G8sprwMOY8SnU6E7231e9wwQcASOYY79JsMEf1WTBCSLHU3D5+prTBJklQ2cjo3x 5UYM1s3s0yJR+xhcJHlDhGEApm/QiYs/5jy2qfWv4H8YxuCNDSvI6sppBhCdIQQ8 VsQO1CeAk+cnDrbpwF+qXPnFBL6fgp9YF7E1DgLIBe0fa65vZMpRGt40FxNlLnlY W5NIyRTsokRUViCvRdptMIxrfEsJXQPTRNJ8nUJqUCC/tMcr6PSjAPDgA== 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=HhLwf0w4DGO4GrUYkzhR7OWJ7zfGCnjW/SYxuiDy6eY=; b=H/DubX13 JO89iugMHwq7Zhb8SpLHKHnlU2Zjv+1wpTuhWR+UVO0k5gwjSN73E47xlRQ6IcKT pscoHXfMST1gTFg+gtlEdBFgjoe/vH/QOwfF5lLNZsrF3IS73h3pQ7my701tEHtY yc2xr69QOumrS+w0EswjcE3t9IRZIpCkn+NFW7S1hetk2Hloq0fBIaPfTboj5jjU 6Zy8Tr6O00fDmfCiEF3Xw+xIvjcRA6p8u8DWWs1hGmt2MH/ixaWtf9a22h4Lx5qc blbGGFEmTBddwWfl52TTwJOHqdVVL60uvV8vBe5lrVkT+E1FH92zV7Vtjz9LTTxo oL0JURj+wdV0CA== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedujedrledugdduhecutefuodetggdotefrodftvf 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 B842D3280060; Wed, 28 Oct 2020 06:27:24 -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: Wed, 28 Oct 2020 11:26:37 +0100 Message-Id: <20201028102640.3191964-13-thomas@monjalon.net> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201028102640.3191964-1-thomas@monjalon.net> References: <20201026052105.1561859-1-thomas@monjalon.net> <20201028102640.3191964-1-thomas@monjalon.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-dev] [PATCH v4 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 | 21 +++++++++++++++------ app/test-eventdev/test_order_common.h | 21 +++++++++++++++++++++ app/test-eventdev/test_order_queue.c | 4 ++-- 4 files changed, 40 insertions(+), 10 deletions(-) diff --git a/app/test-eventdev/test_order_atq.c b/app/test-eventdev/test_order_atq.c index cfcb1dc4e9..71215a07b6 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; + order_flow_id_copy_from_mbuf(t, &ev); 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; + order_flow_id_copy_from_mbuf(t, &ev[i]); 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..01a44bcd75 100644 --- a/app/test-eventdev/test_order_common.c +++ b/app/test-eventdev/test_order_common.c @@ -46,13 +46,10 @@ order_producer(void *arg) if (m == NULL) continue; - const uint32_t flow = (uintptr_t)m % nb_flows; + const flow_id_t flow = (uintptr_t)m % nb_flows; /* Maintain seq number per flow */ m->seqn = producer_flow_seq[flow]++; - m->udata64 = flow; - - ev.flow_id = flow; - ev.mbuf = m; + order_flow_id_save(t, flow, m, &ev); while (rte_event_enqueue_burst(dev_id, port, &ev, 1) != 1) { if (t->err) @@ -138,6 +135,12 @@ int order_test_setup(struct evt_test *test, struct evt_options *opt) { void *test_order; + struct test_order *t; + static const struct rte_mbuf_dynfield flow_id_dynfield_desc = { + .name = "test_event_dynfield_flow_id", + .size = sizeof(flow_id_t), + .align = __alignof__(flow_id_t), + }; test_order = rte_zmalloc_socket(test->name, sizeof(struct test_order), RTE_CACHE_LINE_SIZE, opt->socket_id); @@ -146,8 +149,14 @@ order_test_setup(struct evt_test *test, struct evt_options *opt) goto nomem; } test->test_priv = test_order; + t = evt_test_priv(test); - struct test_order *t = evt_test_priv(test); + t->flow_id_dynfield_offset = + rte_mbuf_dynfield_register(&flow_id_dynfield_desc); + if (t->flow_id_dynfield_offset < 0) { + evt_err("failed to register mbuf field"); + return -rte_errno; + } t->producer_flow_seq = rte_zmalloc_socket("test_producer_flow_seq", sizeof(*t->producer_flow_seq) * opt->nb_flows, diff --git a/app/test-eventdev/test_order_common.h b/app/test-eventdev/test_order_common.h index e0fe9c968a..90eac96fc8 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,8 @@ #define BURST_SIZE 16 +typedef uint32_t flow_id_t; + struct test_order; struct worker_data { @@ -49,6 +52,7 @@ struct test_order { uint32_t nb_flows; uint64_t nb_pkts; struct rte_mempool *pool; + int flow_id_dynfield_offset; struct prod_data prod; struct worker_data worker[EVT_MAX_PORTS]; uint32_t *producer_flow_seq; @@ -56,6 +60,23 @@ struct test_order { struct evt_options *opt; } __rte_cache_aligned; +static inline void +order_flow_id_copy_from_mbuf(struct test_order *t, struct rte_event *event) +{ + event->flow_id = *RTE_MBUF_DYNFIELD(event->mbuf, + t->flow_id_dynfield_offset, flow_id_t *); +} + +static inline void +order_flow_id_save(struct test_order *t, flow_id_t flow_id, + struct rte_mbuf *mbuf, struct rte_event *event) +{ + *RTE_MBUF_DYNFIELD(mbuf, + t->flow_id_dynfield_offset, flow_id_t *) = flow_id; + event->flow_id = flow_id; + event->mbuf = mbuf; +} + static inline int order_nb_event_ports(struct evt_options *opt) { diff --git a/app/test-eventdev/test_order_queue.c b/app/test-eventdev/test_order_queue.c index 1511c0092d..621367805a 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; + order_flow_id_copy_from_mbuf(t, &ev); 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; + order_flow_id_copy_from_mbuf(t, &ev[i]); if (ev[i].queue_id == 0) { /* from ordered queue */ order_queue_process_stage_0(&ev[i]); -- 2.28.0