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 9D4B6A04B1; Sat, 10 Oct 2020 18:11:28 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id E0CEA1D991; Sat, 10 Oct 2020 18:06:11 +0200 (CEST) Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by dpdk.org (Postfix) with ESMTP id E5CE91D98C for ; Sat, 10 Oct 2020 18:06:07 +0200 (CEST) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20201010160557euoutp012ab5c517d1e142686510370294965047~8rSi1aF520392303923euoutp01U for ; Sat, 10 Oct 2020 16:05:57 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20201010160557euoutp012ab5c517d1e142686510370294965047~8rSi1aF520392303923euoutp01U 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-dev] [PATCH v7 14/16] distributor: fix flushing in flight packets 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" 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