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 3CB25A04BC for ; Sat, 10 Oct 2020 00:03:41 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 0A75E1D68C; Sat, 10 Oct 2020 00:03:17 +0200 (CEST) Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by dpdk.org (Postfix) with ESMTP id A05531D665 for ; Sat, 10 Oct 2020 00:03:08 +0200 (CEST) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20201009220258euoutp014affbf283b1df543729cfc3cbb9c242f~8cg_It6CJ2277122771euoutp01F for ; Fri, 9 Oct 2020 22:02:58 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20201009220258euoutp014affbf283b1df543729cfc3cbb9c242f~8cg_It6CJ2277122771euoutp01F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1602280978; bh=v4SHqhfr0CgQSyQySuuoqmQz3Fqbg8VL6UkTHS7IUM8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Cp5Sj+fvLoU+oQn+WK+jlUp0uWNFpaZEQTHlKPIOr8OjNvhEiJCKPzSWsJD88413p CMvv8qwwSVQ+IOM5puaWeUE1NrWDDNPpsBSOYCC5rzPSFSHlP9rSojaj8x50YWa9sT wrKaD/De9ngNCex3xbNpdQDv9NS20l/3/6//VmUE= Received: from eusmges3new.samsung.com (unknown [203.254.199.245]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20201009220254eucas1p23088f6944dac82ccbd8e8a99c0861686~8cg6rNjJ81919219192eucas1p2X; Fri, 9 Oct 2020 22:02:54 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges3new.samsung.com (EUCPMTA) with SMTP id 9F.E2.06318.E0ED08F5; Fri, 9 Oct 2020 23:02:54 +0100 (BST) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20201009220254eucas1p187bad9a066f00ee4c05ec6ca7fb4decd~8cg6TuLFH0869608696eucas1p1e; Fri, 9 Oct 2020 22:02:54 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20201009220254eusmtrp2d676157a36dfbba61d71992d371f9437~8cg6TMyfe2402824028eusmtrp2C; Fri, 9 Oct 2020 22:02:54 +0000 (GMT) X-AuditID: cbfec7f5-38bff700000018ae-b3-5f80de0ea37f Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id 15.5F.06017.E0ED08F5; Fri, 9 Oct 2020 23:02:54 +0100 (BST) Received: from Padamandas.fritz.box (unknown [106.210.88.70]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20201009220253eusmtip16605958d3be8e27c1c49e660b89cea1a~8cg5xP1em1990219902eusmtip1L; Fri, 9 Oct 2020 22:02:53 +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 00:02:01 +0200 Message-Id: <20201009220202.20834-15-l.wojciechow@partner.samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201009220202.20834-1-l.wojciechow@partner.samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrGIsWRmVeSWpSXmKPExsWy7djP87p89xriDSZM1LK4screom/SRyaL d5+2M1k861nHaPGv4w+7A6vHrwVLWT0W73nJ5HHw3R6mAOYoLpuU1JzMstQifbsEroxpT3qY Cm4JVZy94NnAuJ2/i5GTQ0LAROLfu0usXYxcHEICKxglNjbeZQRJCAl8YZSYdtEKIvGZUaJp 4QZGmI5L97cwQySWM0q8eXIdyvnEKLF91XY2kCo2AVuJIzO/soLYIgJhEs3Ne1m6GDk4mAWc JZ58BSsRFnCVWPNgK9hQFgFViQmNx9hBbF4BN4ndbUvZIZbJS6zecIAZxOYEirfuWsYCsktC 4DKbxJmPv9ggilwkJtydwwxhC0u8Or4FqllG4v/O+UwQDdsYJa7+/skI4exnlLjeuwKqylri 8L/fbBDXaUqs36UPEXaUWLl9FjNIWEKAT+LGW0GQMDOQOWnbdKgwr0RHmxBEtZ7E056pjDBr /6x9wgJhe0i03m5ih4TPVUaJFV82s05glJ+FsGwBI+MqRvHU0uLc9NRi47zUcr3ixNzi0rx0 veT83E2MwNg//e/41x2M+/4kHWIU4GBU4uFtSG6IF2JNLCuuzD3EKMHBrCTC63T2dJwQb0pi ZVVqUX58UWlOavEhRmkOFiVxXuNFL2OFBNITS1KzU1MLUotgskwcnFINjBnn9fj9Z8efvPNz e1Pf9B8hTJGFJl9cf99b8jGhSlRY6PSWnRKCihNEvkkHfbzaLjjr2ezsiVwnXNpPf1yi/fXz 9V8Crxi3PQjNZGHIDbkr9tHx/Lt8TnnBO4qNTpn2aXyLMtPZ/afftWbSuPu34KF1zU9zxgx1 gXu365znWF6oePbW3t54mRJLcUaioRZzUXEiAEO0PSL5AgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrOLMWRmVeSWpSXmKPExsVy+t/xu7p89xriDU6vEbW4screom/SRyaL d5+2M1k861nHaPGv4w+7A6vHrwVLWT0W73nJ5HHw3R6mAOYoPZui/NKSVIWM/OISW6VoQwsj PUNLCz0jE0s9Q2PzWCsjUyV9O5uU1JzMstQifbsEvYxpT3qYCm4JVZy94NnAuJ2/i5GTQ0LA ROLS/S3MXYxcHEICSxklPm9bydLFyAGUkJH4cEkAokZY4s+1LjaImg+MEjNn9LOBJNgEbCWO zPzKClIvIhAmcWKlP0iYWcBdYsviqcwgtrCAq8SaB1sZQWwWAVWJCY3H2EFsXgE3id1tS9kh 5stLrN5wAKyeEyjeumsZC8SuRkaJLQdeMk9g5FvAyLCKUSS1tDg3PbfYSK84Mbe4NC9dLzk/ dxMjMBC3Hfu5ZQdj17vgQ4wCHIxKPLwaiQ3xQqyJZcWVuYcYJTiYlUR4nc6ejhPiTUmsrEot yo8vKs1JLT7EaAp01URmKdHkfGCU5JXEG5oamltYGpobmxubWSiJ83YIHIwREkhPLEnNTk0t SC2C6WPi4JRqYFxxO2bTPy9B3z/HOiWK2S2P5N7jP16zunv/jmvVsWnvfHTXSsUmXWvITnF8 +9fytvnCJJ6w73s4whPVbyg3Gn+tz3oY0i1XzLvEY3FsceoJjltC8RktTL4S9ZUZ+ryOL/2e ++glbY+2FfW538gQ9t15hl7Y2e6keYriGSeKymVTq3YFRu1XYinOSDTUYi4qTgQA/p4gDFoC AAA= X-CMS-MailID: 20201009220254eucas1p187bad9a066f00ee4c05ec6ca7fb4decd X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" X-RootMTR: 20201009220254eucas1p187bad9a066f00ee4c05ec6ca7fb4decd X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20201009220254eucas1p187bad9a066f00ee4c05ec6ca7fb4decd References: <20201008052323.11547-1-l.wojciechow@partner.samsung.com> <20201009220202.20834-1-l.wojciechow@partner.samsung.com> Subject: [dpdk-stable] [PATCH v6 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 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