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 66D10A04BC for ; Thu, 8 Oct 2020 07:24:47 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 206411BC7E; Thu, 8 Oct 2020 07:24:11 +0200 (CEST) Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by dpdk.org (Postfix) with ESMTP id 4A6911B74B for ; Thu, 8 Oct 2020 07:23:49 +0200 (CEST) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20201008052348euoutp01bc34cb12e60253826fa419a164317ed2~77PSuJlA82348223482euoutp01- for ; Thu, 8 Oct 2020 05:23:48 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20201008052348euoutp01bc34cb12e60253826fa419a164317ed2~77PSuJlA82348223482euoutp01- DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1602134628; bh=FsFW6hcE1Xj1KduQH/cVHUIWcYyv6nc/poXSMMFFipk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZcMzF0Qf3CIq4Y1B4M3wOi93tnMnxwOlWHfLIFmehmfhHgRI2jnZIiJ9ES15qqP7m ueg60iTVu36ncF0JzKjmDwQVbbqnTHhWskRjlKlEWb4b1gJ+9lIUErYy1QBesvRR9b jciBq1tjCIWx0vpL8YpGxwDV/urxwXCZ5IHucGyE= Received: from eusmges3new.samsung.com (unknown [203.254.199.245]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20201008052347eucas1p18f010b2312e0919fec007fbd74ffe6a9~77PSdCEnQ1294612946eucas1p1K; Thu, 8 Oct 2020 05:23:47 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges3new.samsung.com (EUCPMTA) with SMTP id C2.AD.06318.362AE7F5; Thu, 8 Oct 2020 06:23:47 +0100 (BST) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20201008052347eucas1p1570239523104a0d609c928d8b149ebdf~77PR_9wAT1496314963eucas1p1B; Thu, 8 Oct 2020 05:23:47 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20201008052347eusmtrp136d2ee3c644a305e8ce20a6a369b834c~77PR9xOgP2941529415eusmtrp1c; Thu, 8 Oct 2020 05:23:47 +0000 (GMT) X-AuditID: cbfec7f5-371ff700000018ae-ba-5f7ea263fb2e Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 2A.89.06314.362AE7F5; Thu, 8 Oct 2020 06:23:47 +0100 (BST) Received: from Padamandas.fritz.box (unknown [106.210.88.70]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20201008052346eusmtip1ee1a964f7b6131bbbb64453c6e763e6f~77PRWzqxi2964029640eusmtip1k; Thu, 8 Oct 2020 05:23:46 +0000 (GMT) From: Lukasz Wojciechowski To: David Hunt , Bruce Richardson Cc: dev@dpdk.org, l.wojciechow@partner.samsung.com, stable@dpdk.org Date: Thu, 8 Oct 2020 07:23:22 +0200 Message-Id: <20201008052323.11547-15-l.wojciechow@partner.samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201008052323.11547-1-l.wojciechow@partner.samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrGIsWRmVeSWpSXmKPExsWy7djP87rJi+riDXZt17a4screom/SRyaL d5+2M1k861nHaPGv4w+7A6vHrwVLWT0W73nJ5HHw3R6mAOYoLpuU1JzMstQifbsEroxZnyoL 1gpV9CzezdLA2M/fxcjJISFgInHoxGdmEFtIYAWjxL/eqi5GLiD7C6PE6i+H2SGcz4wSMw8s ZoXpWPPhByNEYjmjxNzFl5ggnE+MEkd2P2AHqWITsJU4MvMrWIeIQJhEc/Neli5GDg5mAWeJ J1/ZQMLCAq4Si391gNksAqoSD/7/YwSxeQXcJC6tfgS1TF5i9YYDYOdxAsXP/r/LCrJLQuAy m8TnBR8YIYpcJNavuA3VICzx6vgWdghbRuL05B4WiIZtjBJXf/9khHD2M0pc710BVWUtcfjf bzaI6zQl1u/Shwg7Svzfs5kZJCwhwCdx460gSJgZyJy0bTpUmFeio00IolpP4mnPVEaYtX/W PmGBsD0kXv1+zwYJn6uMEq1nJjJOYJSfhbBsASPjKkbx1NLi3PTUYuO81HK94sTc4tK8dL3k /NxNjMDYP/3v+NcdjPv+JB1iFOBgVOLhNThaGy/EmlhWXJl7iFGCg1lJhNfp7Ok4Id6UxMqq 1KL8+KLSnNTiQ4zSHCxK4rzGi17GCgmkJ5akZqemFqQWwWSZODilGhjT1PU/tzQUtOzo3L3n 5tS92revBWibTu/1eyiRvPekj/jLs7EJ11oEF/RkTz//RdV0kYH2nq83Nry/7Rk+7cJ2kxee DbZ7ZcSOlatMs69MWhaiEa91f3XINP/2fwuvG/74mXnvi/DNE2v3fH1w8tupOYumxejND9JR S//74Hfz97ztCS7rH8UnK7EUZyQaajEXFScCAL+GGGP5AgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrOLMWRmVeSWpSXmKPExsVy+t/xu7rJi+riDXYv5re4screom/SRyaL d5+2M1k861nHaPGv4w+7A6vHrwVLWT0W73nJ5HHw3R6mAOYoPZui/NKSVIWM/OISW6VoQwsj PUNLCz0jE0s9Q2PzWCsjUyV9O5uU1JzMstQifbsEvYxZnyoL1gpV9CzezdLA2M/fxcjJISFg IrHmww/GLkYuDiGBpYwSDU09QA4HUEJG4sMlAYgaYYk/17rYIGo+ANWc38IEkmATsJU4MvMr K0i9iECYxImV/iBhZgF3iS2LpzKD2MICrhKLf3WwgdgsAqoSD/7/YwSxeQXcJC6tfsQKMV9e YvWGA2D1nEDxs//vskLsamSUuHl+JtsERr4FjAyrGEVSS4tz03OLDfWKE3OLS/PS9ZLzczcx AgNx27Gfm3cwXtoYfIhRgINRiYfX4GhtvBBrYllxZe4hRgkOZiURXqezp+OEeFMSK6tSi/Lj i0pzUosPMZoCXTWRWUo0OR8YJXkl8YamhuYWlobmxubGZhZK4rwdAgdjhATSE0tSs1NTC1KL YPqYODilGhgb1p+b0qkd/Wf+1bfq0WtaVLqZtf/+EAiLnHDzl8enQ712jGn7D5l0Nj8zN0is tOlIOlij++RZ/t9P/w5m/cl+++piR/gFe9neNIu9T7czvzPn+FQ7LXat+8nUUDaX9lsBnMwV jbmMr0KdZXy3xj1a6bFQVtN0Gtcb75PPIte1CXHovC7956rEUpyRaKjFXFScCABiHU+TWgIA AA== X-CMS-MailID: 20201008052347eucas1p1570239523104a0d609c928d8b149ebdf X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" X-RootMTR: 20201008052347eucas1p1570239523104a0d609c928d8b149ebdf X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20201008052347eucas1p1570239523104a0d609c928d8b149ebdf References: <20200925224209.12173-1-l.wojciechow@partner.samsung.com> <20201008052323.11547-1-l.wojciechow@partner.samsung.com> Subject: [dpdk-stable] [PATCH v5 14/15] distributor: fix flushing in flight packets X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" rte_distributor_flush() is using total_outstanding() function to calculate if it should still wait for processing packets. However in burst mode only backlog packets were counted. This patch fixes that issue by counting also in flight packets. There are also sum fixes to properly keep count of in flight packets for each worker in bufs[].count. Fixes: 775003ad2f96 ("distributor: add new burst-capable library") Cc: david.hunt@intel.com Cc: stable@dpdk.org Signed-off-by: Lukasz Wojciechowski --- lib/librte_distributor/rte_distributor.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/lib/librte_distributor/rte_distributor.c b/lib/librte_distributor/rte_distributor.c index 4bd23a990..2478de3b7 100644 --- a/lib/librte_distributor/rte_distributor.c +++ b/lib/librte_distributor/rte_distributor.c @@ -467,6 +467,7 @@ rte_distributor_process(struct rte_distributor *d, /* Sync with worker on GET_BUF flag. */ if (__atomic_load_n(&(d->bufs[wid].bufptr64[0]), __ATOMIC_ACQUIRE) & RTE_DISTRIB_GET_BUF) { + d->bufs[wid].count = 0; release(d, wid); handle_returns(d, wid); } @@ -481,11 +482,6 @@ rte_distributor_process(struct rte_distributor *d, uint16_t matches[RTE_DIST_BURST_SIZE]; unsigned int pkts; - /* Sync with worker on GET_BUF flag. */ - if (__atomic_load_n(&(d->bufs[wkr].bufptr64[0]), - __ATOMIC_ACQUIRE) & RTE_DISTRIB_GET_BUF) - d->bufs[wkr].count = 0; - if ((num_mbufs - next_idx) < RTE_DIST_BURST_SIZE) pkts = num_mbufs - next_idx; else @@ -605,8 +601,10 @@ rte_distributor_process(struct rte_distributor *d, for (wid = 0 ; wid < d->num_workers; wid++) /* Sync with worker on GET_BUF flag. */ if ((__atomic_load_n(&(d->bufs[wid].bufptr64[0]), - __ATOMIC_ACQUIRE) & RTE_DISTRIB_GET_BUF)) + __ATOMIC_ACQUIRE) & RTE_DISTRIB_GET_BUF)) { + d->bufs[wid].count = 0; release(d, wid); + } return num_mbufs; } @@ -649,7 +647,7 @@ total_outstanding(const struct rte_distributor *d) unsigned int wkr, total_outstanding = 0; for (wkr = 0; wkr < d->num_workers; wkr++) - total_outstanding += d->backlog[wkr].count; + total_outstanding += d->backlog[wkr].count + d->bufs[wkr].count; return total_outstanding; } -- 2.17.1