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 9A4D9A04DB for ; Sat, 17 Oct 2020 05:08:35 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 83CA2E2F9; Sat, 17 Oct 2020 05:08:12 +0200 (CEST) Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by dpdk.org (Postfix) with ESMTP id 5A947E2B0 for ; Sat, 17 Oct 2020 05:07:41 +0200 (CEST) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20201017030723euoutp015ab66ab92edece23583a4a9a171f5681~_qLxAmC480903009030euoutp01x for ; Sat, 17 Oct 2020 03:07:23 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20201017030723euoutp015ab66ab92edece23583a4a9a171f5681~_qLxAmC480903009030euoutp01x DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1602904043; bh=GwLA6l85hqqm5pEZfxRGoVDxmc62Nhct+avgiy2//Tk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SG77pAeZOpshOlbN/unok/32PcdqugfBTv5hXTFOUwQsUFc3BQklEgELCVIdTZ3g8 4mk0lazMgFzi+clVbhKcJDEebbBPmT3b7wTIYdz3QsAyLtvhMGfkVPbV7oGEi+Pidc OM1zRXWYT0e4OJvJ+VjvCIYxavyAvhbtoZQYhf/E= Received: from eusmges2new.samsung.com (unknown [203.254.199.244]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20201017030722eucas1p11a5a1c6b033644e891624f1c0d8f5e07~_qLvS72D20652806528eucas1p1z; Sat, 17 Oct 2020 03:07:22 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges2new.samsung.com (EUCPMTA) with SMTP id F3.42.05997.9EF5A8F5; Sat, 17 Oct 2020 04:07:22 +0100 (BST) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20201017030721eucas1p2a1032e6c78d99f903ea539e49f057a83~_qLuiMlPr1097310973eucas1p27; Sat, 17 Oct 2020 03:07:21 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20201017030721eusmtrp184605379642a554399b99f27feb6a007~_qLuhrLSo3018830188eusmtrp1Z; Sat, 17 Oct 2020 03:07:21 +0000 (GMT) X-AuditID: cbfec7f4-677ff7000000176d-c7-5f8a5fe9144d Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id EE.DE.06017.9EF5A8F5; Sat, 17 Oct 2020 04:07:21 +0100 (BST) Received: from localhost.localdomain (unknown [106.210.88.70]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20201017030720eusmtip1a5605586b90a5f5d0246053259251f6a~_qLuA9QPU3071330713eusmtip1I; Sat, 17 Oct 2020 03:07:20 +0000 (GMT) From: Lukasz Wojciechowski To: David Hunt , Bruce Richardson Cc: dev@dpdk.org, l.wojciechow@partner.samsung.com, stable@dpdk.org Date: Sat, 17 Oct 2020 05:06:58 +0200 Message-Id: <20201017030701.16134-15-l.wojciechow@partner.samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201017030701.16134-1-l.wojciechow@partner.samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrMIsWRmVeSWpSXmKPExsWy7djPc7qv4rviDe66WdxYZW/RN+kjk8W7 T9uZLJ71rGO0+Nfxh92B1ePXgqWsHov3vGTyOPhuD1MAcxSXTUpqTmZZapG+XQJXxsa+K6wF t4Qq1j16xdzAuJ2/i5GTQ0LARGLj0rVMXYxcHEICKxgldl3azQjhfGGUWDd9F5TzmVFiWkcf K0zLg5OPmUFsIYHljBJ9p/wgbKCi8z+qQGw2AVuJIzO/gtWLCIRJNDfvZeli5OBgFnCWePKV DSQsLOAq8eHWGnYQm0VAVeLKzIvMICW8Am4SV1bnQmySl1i94QBYmBMo3HjcFeQaCYHLbBIH r05ig6hxkfjQPgPKFpZ4dXwLO4QtI3F6cg8LRMM2Romrv38yQjj7GSWu966AqrKWOPzvNxvE bZoS63fpQ4QdJXb9W8gOEpYQ4JO48VYQJMwMZE7aNp0ZIswr0dEmBFGtJ/G0ZyojzNo/a5+w QNgeEnNW9bJBQvAqo0T3j3MsExjlZyEsW8DIuIpRPLW0ODc9tdgoL7Vcrzgxt7g0L10vOT93 EyMw6k//O/5lB+OuP0mHGAU4GJV4eDmWdsYLsSaWFVfmHmKU4GBWEuF1Ons6Tog3JbGyKrUo P76oNCe1+BCjNAeLkjiv8aKXsUIC6YklqdmpqQWpRTBZJg5OqQZGbpUsZoFejrep9wzWHTIo 6AqQuLG9dObyv9O+L/+Yoab3r/AHe5qs0MJE52c1glJaIQ2NeyTX7dy6t4Mj4tDpqGdr7E5E GGrNf3qf12XZiiuf7zX2znQr7Zaa/NrSvPbm1cnHWtfOtNMVOr40klXX0Pjqjv0dTmzJzWFh oht58yflTCk+eOiWEktxRqKhFnNRcSIAaTKNyPYCAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrGLMWRmVeSWpSXmKPExsVy+t/xu7ov47viDW794bC4screom/SRyaL d5+2M1k861nHaPGv4w+7A6vHrwVLWT0W73nJ5HHw3R6mAOYoPZui/NKSVIWM/OISW6VoQwsj PUNLCz0jE0s9Q2PzWCsjUyV9O5uU1JzMstQifbsEvYyNfVdYC24JVax79Iq5gXE7fxcjJ4eE gInEg5OPmbsYuTiEBJYySpy40sXUxcgBlJCR+HBJAKJGWOLPtS42iJqPjBLnvl1iBkmwCdhK HJn5lRWkXkQgTOLESn+QMLOAu8SWxVPBSoQFXCU+3FrDDmKzCKhKXJl5kRmknFfATeLK6lyI 8fISqzccAAtzAoUbj7tCbGpklDg7ax3LBEa+BYwMqxhFUkuLc9Nzi430ihNzi0vz0vWS83M3 MQLDcNuxn1t2MHa9Cz7EKMDBqMTDu2FRZ7wQa2JZcWXuIUYJDmYlEV6ns6fjhHhTEiurUovy 44tKc1KLDzGaAt00kVlKNDkfGCN5JfGGpobmFpaG5sbmxmYWSuK8HQIHY4QE0hNLUrNTUwtS i2D6mDg4pRoYow6xHpP0PCusIWmkXSJ/hyk5ZPvpyoV/mco/ftZsPLSfn6d9y7QvyyZvE9pl cX9GRaDKi9PKLvNePfr0wpNF6/DLnqZ/960Onra/buLMynPVmT9Cv2DiujUbZhed6DEKP7ye s2nuBI11Nk7cTbG/3reuMRRrz7/z9eH2UxEbSk4/0+7blxh3U4mlOCPRUIu5qDgRAFbU21pZ AgAA X-CMS-MailID: 20201017030721eucas1p2a1032e6c78d99f903ea539e49f057a83 X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" X-RootMTR: 20201017030721eucas1p2a1032e6c78d99f903ea539e49f057a83 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20201017030721eucas1p2a1032e6c78d99f903ea539e49f057a83 References: <20201010160508.19709-1-l.wojciechow@partner.samsung.com> <20201017030701.16134-1-l.wojciechow@partner.samsung.com> Subject: [dpdk-stable] [PATCH v8 14/17] 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 Acked-by: David Hunt --- 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 9fea3f69a..fb4e9d93f 100644 --- a/lib/librte_distributor/rte_distributor.c +++ b/lib/librte_distributor/rte_distributor.c @@ -465,6 +465,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); } @@ -479,11 +480,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 @@ -603,8 +599,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; } @@ -647,7 +645,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