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 2FB30A04B1 for ; Sat, 10 Oct 2020 18:06:47 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id B03A51D995; Sat, 10 Oct 2020 18:06:13 +0200 (CEST) Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by dpdk.org (Postfix) with ESMTP id ECD5C1D98D for ; Sat, 10 Oct 2020 18:06:08 +0200 (CEST) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20201010160557euoutp02cf40ab8816948943dc0c0d42d38d9ae6~8rSi1dcxC2850728507euoutp02g for ; Sat, 10 Oct 2020 16:05:57 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20201010160557euoutp02cf40ab8816948943dc0c0d42d38d9ae6~8rSi1dcxC2850728507euoutp02g DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1602345957; bh=v4SHqhfr0CgQSyQySuuoqmQz3Fqbg8VL6UkTHS7IUM8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SHQ2LCl9mtBXgiTDFsFwcSjThEXjMTpDXP8O6/+i2k4BsN3ST1ZRg1/SxSvMgk7nF ZFJmi8li1eT2rPOQHFUMJHTsiKxbKL6FfO3DtKNMO52/GqJr40zikQkTda9SUwAcrF uNSh7ZTwpaaDiJTRrLTbr3DCPoCvRr3ViiWukqQw= Received: from eusmges3new.samsung.com (unknown [203.254.199.245]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20201010160552eucas1p25c6bf7f21941fa98606d9cfdf780ad11~8rSd0qC4L0269602696eucas1p2p; Sat, 10 Oct 2020 16:05:52 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges3new.samsung.com (EUCPMTA) with SMTP id 10.C2.06318.0EBD18F5; Sat, 10 Oct 2020 17:05:52 +0100 (BST) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20201010160551eucas1p171642aa2d451e501287915824bfe7c24~8rScvNAaP2418924189eucas1p12; Sat, 10 Oct 2020 16:05:51 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20201010160551eusmtrp22154b66bac14e4df879548d3fe68ca77~8rScujhNj1692616926eusmtrp2M; Sat, 10 Oct 2020 16:05:51 +0000 (GMT) X-AuditID: cbfec7f5-38bff700000018ae-dc-5f81dbe0ed3e Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 76.5A.06314.FDBD18F5; Sat, 10 Oct 2020 17:05:51 +0100 (BST) Received: from Padamandas.fritz.box (unknown [106.210.88.70]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20201010160550eusmtip18b17ec1327e97c5c3dd6d499ae70e3c2~8rSb8Y5n-2442224422eusmtip17; Sat, 10 Oct 2020 16:05:50 +0000 (GMT) From: Lukasz Wojciechowski To: David Hunt , Bruce Richardson Cc: dev@dpdk.org, l.wojciechow@partner.samsung.com, stable@dpdk.org Date: Sat, 10 Oct 2020 18:05:05 +0200 Message-Id: <20201010160508.19709-15-l.wojciechow@partner.samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201010160508.19709-1-l.wojciechow@partner.samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrKIsWRmVeSWpSXmKPExsWy7djPc7oPbjfGG2xsE7O4screom/SRyaL d5+2M1k861nHaPGv4w+7A6vHrwVLWT0W73nJ5HHw3R6mAOYoLpuU1JzMstQifbsEroxpT3qY Cm4JVZy94NnAuJ2/i5GTQ0LARGLZhX6mLkYuDiGBFYwSx39uZIZwvjBKNOzfzwRSJSTwmVFi /9IKmI57nZfZIIqWM0rMPbwFquMTo8TVyw/ZQarYBGwljsz8ygpiiwiESTQ372XpYuTgYBZw lnjylQ0kLCzgKnH58ROwchYBVYnrL8+D2bwCbhLTJrSzQiyTl1i94QAziM0JFD/bdZANIn6G TeLNrFQI20XiyIuFLBC2sMSr41vYIWwZif8754O9JiGwDei23z8ZIZz9jBLXe1dAVVlLHP73 mw3iOE2J9bv0IcKOEt/arrOChCUE+CRuvBUECTMDmZO2TWeGCPNKdLQJQVTrSTztmcoIs/bP 2idQ53hIdP+/xw4JnquMEqu+tzJOYJSfhbBsASPjKkbx1NLi3PTUYuO81HK94sTc4tK8dL3k /NxNjMDIP/3v+NcdjPv+JB1iFOBgVOLhPXC8MV6INbGsuDL3EKMEB7OSCK/T2dNxQrwpiZVV qUX58UWlOanFhxilOViUxHmNF72MFRJITyxJzU5NLUgtgskycXBKAVOBt4HBgsV2LuUPXZ5J q5Q6dulH3LZMXnLAx+Dgh8znC65rzUj/wXTeWY/767ftrhn7nU/EW7N9n5qg0D/x8Y/kO0/c 5iVeedzOlvIwpCXbROTX/4AznLPPnBXKnZnRsVJ8/XLP8Anftunkflr6dJomX9Xy385XFtSt eC+vVBg65fy00ssa+TFKLMUZiYZazEXFiQA8Sjfi+AIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrOLMWRmVeSWpSXmKPExsVy+t/xu7r3bzfGG3y5ymFxY5W9Rd+kj0wW 7z5tZ7J41rOO0eJfxx92B1aPXwuWsnos3vOSyePguz1MAcxRejZF+aUlqQoZ+cUltkrRhhZG eoaWFnpGJpZ6hsbmsVZGpkr6djYpqTmZZalF+nYJehnTnvQwFdwSqjh7wbOBcTt/FyMnh4SA icS9zstsXYxcHEICSxkl5t37B+RwACVkJD5cEoCoEZb4c60LquYDo0TfwjWMIAk2AVuJIzO/ soLUiwiESZxY6Q8SZhZwl9iyeCoziC0s4Cpx+fETdhCbRUBV4vrL82A2r4CbxLQJ7awQ8+Ul Vm84AFbPCRQ/23UQalcjo8SJ2zfZJjDyLWBkWMUoklpanJueW2yoV5yYW1yal66XnJ+7iREY iNuO/dy8g/HSxuBDjAIcjEo8vBKnGuOFWBPLiitzDzFKcDArifA6nT0dJ8SbklhZlVqUH19U mpNafIjRFOiqicxSosn5wCjJK4k3NDU0t7A0NDc2NzazUBLn7RA4GCMkkJ5YkpqdmlqQWgTT x8TBKdXAmPJ/qbCqRZoW+yNduZUVrP6SntvdNq27eHp6rd2cV3sWTLrD3hzFUzzxNX9SjeSe e6JV2jYvbwrfcNi2sJSd3d+zbpOlFuO/Q6onPy1taF9yXTKiraf69o7tKxiYhLrTjJK8PjxW +v9L5vK1bKucekGNCeZCB3+nrD5krNlYv/Ja5qwc/dtiSizFGYmGWsxFxYkA8Ccf+VoCAAA= X-CMS-MailID: 20201010160551eucas1p171642aa2d451e501287915824bfe7c24 X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" X-RootMTR: 20201010160551eucas1p171642aa2d451e501287915824bfe7c24 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20201010160551eucas1p171642aa2d451e501287915824bfe7c24 References: <20201009220202.20834-1-l.wojciechow@partner.samsung.com> <20201010160508.19709-1-l.wojciechow@partner.samsung.com> Subject: [dpdk-stable] [PATCH v7 14/16] 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 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