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 13E30A04B5 for ; Wed, 23 Sep 2020 15:25:56 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id AEBDD1DCA7; Wed, 23 Sep 2020 15:25:54 +0200 (CEST) Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by dpdk.org (Postfix) with ESMTP id D87041DB81 for ; Wed, 23 Sep 2020 15:25:47 +0200 (CEST) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20200923132547euoutp0221f332149c1d9ee40838714b28e83bf4~3bI2HiCwS1049510495euoutp02z for ; Wed, 23 Sep 2020 13:25:47 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20200923132547euoutp0221f332149c1d9ee40838714b28e83bf4~3bI2HiCwS1049510495euoutp02z DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1600867547; bh=/Yh9Xifz6ErYuPI2lEwh0VvbJ/gETpniH4w5BJzBnQA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=DSG5PGgMPVmfMibmgvrPLgzjFuPuefTcQWyUa59p913i07rxzRS4xAKT+yPo3DFir xN/9eoxVuZ608elmwMY6+lAE7IcSq5faNm//v24NcZhpGVAq4L06BrUb+H+ny0e0fF LamPyBDDNEV92Ljs2Ao32qmYDsproCccQ72lqxfA= Received: from eusmges2new.samsung.com (unknown [203.254.199.244]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20200923132547eucas1p21693a65131f275ad20ff3a85768522e8~3bI171cD90346503465eucas1p2h; Wed, 23 Sep 2020 13:25:47 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges2new.samsung.com (EUCPMTA) with SMTP id 34.84.05997.BDC4B6F5; Wed, 23 Sep 2020 14:25:47 +0100 (BST) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20200923132547eucas1p130620b0d5f3080a7a57234838a992e0e~3bI1nRsLV2306723067eucas1p1a; Wed, 23 Sep 2020 13:25:47 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20200923132547eusmtrp1dd1cef75130e0caa4648a92e90426871~3bI1murmY3185331853eusmtrp1u; Wed, 23 Sep 2020 13:25:47 +0000 (GMT) X-AuditID: cbfec7f4-677ff7000000176d-55-5f6b4cdb3258 Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id BA.FA.06017.ADC4B6F5; Wed, 23 Sep 2020 14:25:47 +0100 (BST) Received: from Padamandas.fritz.box (unknown [106.210.88.70]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20200923132546eusmtip2f6438fdefa30497e8978cb14a57e611d~3bI038-WV2716427164eusmtip2K; Wed, 23 Sep 2020 13:25:46 +0000 (GMT) From: Lukasz Wojciechowski To: David Hunt , Bruce Richardson Cc: dev@dpdk.org, l.wojciechow@partner.samsung.com, stable@dpdk.org Date: Wed, 23 Sep 2020 15:25:36 +0200 Message-Id: <20200923132541.21417-4-l.wojciechow@partner.samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200923132541.21417-1-l.wojciechow@partner.samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrKIsWRmVeSWpSXmKPExsWy7djPc7q3fbLjDU68ELW4screom/SRyaL d5+2M1k861nHaPGv4w+7A6vHrwVLWT0W73nJ5HHw3R6mAOYoLpuU1JzMstQifbsErowV+68w F0xVqzg9q42lgbFfrouRk0NCwETi6/91TF2MXBxCAisYJc5u380O4XxhlJjavpMFwvnMKLH3 XR9jFyMHWMvsA2YQ8eWMEg923Ifq+MQocevPbxaQuWwCthJHZn5lBbFFBMIkmpv3soA0Mws4 Szz5ygYSFhbwkFjf2AdWziKgKrHr3yd2EJtXwFVi/syNTBDnyUus3nCAGcTmFHCT+PDjPSNE /DqbxOOdARC2i8TM97vYIGxhiVfHt7BD2DISpyf3gD0gIbCNUeLq75+MEM5+RonrvSugqqwl Dv/7zQZxnKbE+l36EGFHicVPVjBBPMwnceOtIEiYGcictG06M0SYV6KjTQiiWk/iac9URpi1 f9Y+YYEo8ZDoeFsLCZ2rjBJvbuxkm8AoPwth1wJGxlWM4qmlxbnpqcVGeanlesWJucWleel6 yfm5mxiBkX/63/EvOxh3/Uk6xCjAwajEw8uhmx0vxJpYVlyZe4hRgoNZSYTX6ezpOCHelMTK qtSi/Pii0pzU4kOM0hwsSuK8xotexgoJpCeWpGanphakFsFkmTg4pRoYixx+h2rbJN3g9F3u eaGMb83n0NjiFZd5jIXvmxr4TeR+UGJcn+Q2w8hlRfrzHW/vX905X5ztjWlOpcvziyflbup2 hJzturBjof8jPXGduQ8EzgUIc+j4BUpx5FTlHfgt+mfLqYkfdI6EHTvfm/7laND+7/ZzXvB4 +hcJepyIrDGY8qPTJOK+EktxRqKhFnNRcSIAlltaBvgCAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrOLMWRmVeSWpSXmKPExsVy+t/xe7q3fbLjDdbsZ7S4screom/SRyaL d5+2M1k861nHaPGv4w+7A6vHrwVLWT0W73nJ5HHw3R6mAOYoPZui/NKSVIWM/OISW6VoQwsj PUNLCz0jE0s9Q2PzWCsjUyV9O5uU1JzMstQifbsEvYwV+68wF0xVqzg9q42lgbFfrouRg0NC wERi9gGzLkYuDiGBpYwSr9f+ZYOIy0h8uCTQxcgJZApL/LnWxQZR84FR4vunm2wgCTYBW4kj M7+ygtSLCIRJnFjpDxJmFnCX2LJ4KjOILSzgIbG+sY8FxGYRUJXY9e8TO4jNK+AqMX/mRiaI +fISqzccAKvnFHCT+PDjPSPErkZGiY1v2xgnMPItYGRYxSiSWlqcm55bbKRXnJhbXJqXrpec n7uJERiI24793LKDsetd8CFGAQ5GJR5eDt3seCHWxLLiytxDjBIczEoivE5nT8cJ8aYkVlal FuXHF5XmpBYfYjQFumois5Rocj4wSvJK4g1NDc0tLA3Njc2NzSyUxHk7BA7GCAmkJ5akZqem FqQWwfQxcXBKNTA2l+vxKlsk+a+cIWdZwvFw7z0Gp2OWSk0SZmF3P/EsMuwxOv7g3VEu+ZsF us1rF/k+C5N+G35pWnKhwFNnW9kVCnyzjp65Gr41x+Nz0CmZuytj/f9JbJ1Wu0T508JFM/bW nZZbI10n4tZtzsJddSzpUk/n7xXaVrUHVYVCJ+Wpl2is+umn9lWJpTgj0VCLuag4EQBUwe3C WgIAAA== X-CMS-MailID: 20200923132547eucas1p130620b0d5f3080a7a57234838a992e0e X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" X-RootMTR: 20200923132547eucas1p130620b0d5f3080a7a57234838a992e0e X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200923132547eucas1p130620b0d5f3080a7a57234838a992e0e References: <20200923014713.16932-1-l.wojciechow@partner.samsung.com> <20200923132541.21417-1-l.wojciechow@partner.samsung.com> Subject: [dpdk-stable] [PATCH v3 3/8] app/test: fix freeing mbufs in distributor tests 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" Sanity tests with mbuf alloc and shutdown tests assume that mbufs passed to worker cores are freed in handlers. Such packets should not be returned to the distributor's main core. The only packets that should be returned are the packets send after completion of the tests in quit_workers function. This patch fixes freeing mbufs, stops returning them to distributor's core and cleans up unused variables. Fixes: c0de0eb82e40 ("distributor: switch over to new API") Cc: david.hunt@intel.com Cc: stable@dpdk.org Signed-off-by: Lukasz Wojciechowski Acked-by: David Hunt --- app/test/test_distributor.c | 50 +++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 27 deletions(-) diff --git a/app/test/test_distributor.c b/app/test/test_distributor.c index 0e49e3714..94b65b382 100644 --- a/app/test/test_distributor.c +++ b/app/test/test_distributor.c @@ -277,24 +277,23 @@ handle_work_with_free_mbufs(void *arg) struct rte_mbuf *buf[8] __rte_cache_aligned; struct worker_params *wp = arg; struct rte_distributor *d = wp->dist; - unsigned int count = 0; unsigned int i; unsigned int num = 0; unsigned int id = __atomic_fetch_add(&worker_idx, 1, __ATOMIC_RELAXED); for (i = 0; i < 8; i++) buf[i] = NULL; - num = rte_distributor_get_pkt(d, id, buf, buf, num); + num = rte_distributor_get_pkt(d, id, buf, buf, 0); while (!quit) { - count += num; __atomic_fetch_add(&worker_stats[id].handled_packets, num, __ATOMIC_ACQ_REL); - for (i = 0; i < num; i++) + for (i = 0; i < num; i++) { rte_pktmbuf_free(buf[i]); + buf[i] = NULL; + } num = rte_distributor_get_pkt(d, - id, buf, buf, num); + id, buf, buf, 0); } - count += num; __atomic_fetch_add(&worker_stats[id].handled_packets, num, __ATOMIC_ACQ_REL); rte_distributor_return_pkt(d, id, buf, num); @@ -322,7 +321,6 @@ sanity_test_with_mbuf_alloc(struct worker_params *wp, struct rte_mempool *p) rte_distributor_process(d, NULL, 0); for (j = 0; j < BURST; j++) { bufs[j]->hash.usr = (i+j) << 1; - rte_mbuf_refcnt_set(bufs[j], 1); } rte_distributor_process(d, bufs, BURST); @@ -346,20 +344,18 @@ sanity_test_with_mbuf_alloc(struct worker_params *wp, struct rte_mempool *p) static int handle_work_for_shutdown_test(void *arg) { - struct rte_mbuf *pkt = NULL; struct rte_mbuf *buf[8] __rte_cache_aligned; struct worker_params *wp = arg; struct rte_distributor *d = wp->dist; - unsigned int count = 0; unsigned int num = 0; - unsigned int total = 0; unsigned int i; - unsigned int returned = 0; unsigned int zero_id = 0; const unsigned int id = __atomic_fetch_add(&worker_idx, 1, __ATOMIC_RELAXED); + for (i = 0; i < 8; i++) + buf[i] = NULL; - num = rte_distributor_get_pkt(d, id, buf, buf, num); + num = rte_distributor_get_pkt(d, id, buf, buf, 0); zero_id = __atomic_load_n(&zero_idx, __ATOMIC_ACQUIRE); if (id == zero_id && num > 0) { @@ -371,13 +367,14 @@ handle_work_for_shutdown_test(void *arg) /* wait for quit single globally, or for worker zero, wait * for zero_quit */ while (!quit && !(id == zero_id && zero_quit)) { - count += num; __atomic_fetch_add(&worker_stats[id].handled_packets, num, __ATOMIC_ACQ_REL); - for (i = 0; i < num; i++) + for (i = 0; i < num; i++) { rte_pktmbuf_free(buf[i]); + buf[i] = NULL; + } num = rte_distributor_get_pkt(d, - id, buf, buf, num); + id, buf, buf, 0); zero_id = __atomic_load_n(&zero_idx, __ATOMIC_ACQUIRE); if (id == zero_id && num > 0) { @@ -385,12 +382,7 @@ handle_work_for_shutdown_test(void *arg) __ATOMIC_ACQUIRE); __atomic_store_n(&zero_idx, zero_id, __ATOMIC_RELEASE); } - - total += num; } - count += num; - returned = rte_distributor_return_pkt(d, id, buf, num); - __atomic_fetch_add(&worker_stats[id].handled_packets, num, __ATOMIC_ACQ_REL); if (id == zero_id) { @@ -400,20 +392,24 @@ handle_work_for_shutdown_test(void *arg) while (zero_quit) usleep(100); + for (i = 0; i < num; i++) { + rte_pktmbuf_free(buf[i]); + buf[i] = NULL; + } num = rte_distributor_get_pkt(d, - id, buf, buf, num); + id, buf, buf, 0); while (!quit) { - count += num; - rte_pktmbuf_free(pkt); - num = rte_distributor_get_pkt(d, id, buf, buf, num); __atomic_fetch_add(&worker_stats[id].handled_packets, num, __ATOMIC_ACQ_REL); + for (i = 0; i < num; i++) { + rte_pktmbuf_free(buf[i]); + buf[i] = NULL; + } + num = rte_distributor_get_pkt(d, id, buf, buf, 0); } - returned = rte_distributor_return_pkt(d, - id, buf, num); - printf("Num returned = %d\n", returned); } + rte_distributor_return_pkt(d, id, buf, num); return 0; } -- 2.17.1