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 748CBA04B6 for ; Wed, 23 Sep 2020 03:47:32 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 04A9D1DB51; Wed, 23 Sep 2020 03:47:32 +0200 (CEST) Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by dpdk.org (Postfix) with ESMTP id 85E3B1DB11 for ; Wed, 23 Sep 2020 03:47:21 +0200 (CEST) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20200923014721euoutp02a0a3f8126f88b7146616115f56587ecd~3RnBwnarF1896818968euoutp02w for ; Wed, 23 Sep 2020 01:47:21 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20200923014721euoutp02a0a3f8126f88b7146616115f56587ecd~3RnBwnarF1896818968euoutp02w DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1600825641; bh=YRopDLWwJh/3CXOBB33AlussyX1QSadasjirLpQnkUQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=e2638WGrpEDYiQtoIZQ5QiVx99ZF09syvOFiiqmiBKwv0pP6CegR3RsRObYbKhShq H3w6wPHnmyqLKaKPN2rQhK1FAoDRXoczoGEJ6MEnUn0PQBBUylXdwkZtW2KupMHatb QA1SvsLf3N26iKNZC+00+kJltiQKJi2xgCjSnbt4= Received: from eusmges1new.samsung.com (unknown [203.254.199.242]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20200923014720eucas1p258aaba5a2a881c675ecbd7464263dad7~3RnBYrnFI1449114491eucas1p2o; Wed, 23 Sep 2020 01:47:20 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges1new.samsung.com (EUCPMTA) with SMTP id 25.6D.06456.829AA6F5; Wed, 23 Sep 2020 02:47:20 +0100 (BST) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20200923014719eucas1p165c419cff4f265cff8add8cc818210ff~3RnAfD_mx1653216532eucas1p1B; Wed, 23 Sep 2020 01:47:19 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20200923014719eusmtrp21445833c75126368bd607e9c28cb216e~3RnAehxIH2054820548eusmtrp2Q; Wed, 23 Sep 2020 01:47:19 +0000 (GMT) X-AuditID: cbfec7f2-809ff70000001938-dc-5f6aa928f96f Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 34.9A.06314.729AA6F5; Wed, 23 Sep 2020 02:47:19 +0100 (BST) Received: from Padamandas.fritz.box (unknown [106.210.88.70]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20200923014719eusmtip15677f00c562f19921215a79d11e594c8~3Rm-zXb8U0729307293eusmtip1O; Wed, 23 Sep 2020 01:47:19 +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 03:47:08 +0200 Message-Id: <20200923014713.16932-4-l.wojciechow@partner.samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200923014713.16932-1-l.wojciechow@partner.samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrGIsWRmVeSWpSXmKPExsWy7djPc7oaK7PiDfqOGFrcWGVv0TfpI5PF u0/bmSye9axjtPjX8YfdgdXj14KlrB6L97xk8jj4bg9TAHMUl01Kak5mWWqRvl0CV8bRxmds BS9UKz7c38PYwPhctouRk0NCwERi7dcFLF2MXBxCAisYJa7dOQrlfGGUeHn4KROE85lR4sGK q0wwLeuvTGSGSCxnlNi0Zw47hPOJUWL++7PsIFVsArYSR2Z+ZQWxRQTCJJqb9wLN5eBgFnCW ePKVDSQsLOAh8f31KrChLAKqElumbWcEsXkFXCU+z9jLDrFMXmL1hgPMIK2cAm4ST//JQ4Rv s0nsn68OYbtIzD64hAXCFpZ4dXwLVKuMxP+d88EekBDYxihx9fdPRghnP6PE9d4VUFXWEof/ /WaDuE1TYv0ufYiwo8SSN/fZQcISAnwSN94KgoSZgcxJ26YzQ4R5JTrahCCq9SSe9kxlhFn7 Z+0TqHM8JNbcmMgICZ2rjBL9dw6xT2CUn4WwbAEj4ypG8dTS4tz01GLDvNRyveLE3OLSvHS9 5PzcTYzA2D/97/inHYxfLyUdYhTgYFTi4X3xJDNeiDWxrLgy9xCjBAezkgiv09nTcUK8KYmV ValF+fFFpTmpxYcYpTlYlMR5jRe9jBUSSE8sSc1OTS1ILYLJMnFwSjUw+i2z22/mb9bEY2W5 Ov09/1neY5etpx/v2KE788+3bv6SnrYXJQEXt//zkNidWiSvt47PQky+OG2Jw3aVW1Uagk2l tZdvfRFjlgzY921pmeM9Z98VagbeFseE17JJn3vxarLnyepVpzri2o5G2B3XSD0YqGh+eN8t qyn6FSUFm/4VNTek3jijxFKckWioxVxUnAgARQYC/PkCAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrOLMWRmVeSWpSXmKPExsVy+t/xu7rqK7PiDXpOG1ncWGVv0TfpI5PF u0/bmSye9axjtPjX8YfdgdXj14KlrB6L97xk8jj4bg9TAHOUnk1RfmlJqkJGfnGJrVK0oYWR nqGlhZ6RiaWeobF5rJWRqZK+nU1Kak5mWWqRvl2CXsbRxmdsBS9UKz7c38PYwPhctouRk0NC wERi/ZWJzF2MXBxCAksZJSaevc/WxcgBlJCR+HBJAKJGWOLPtS42iJoPjBKdi6exgCTYBGwl jsz8ygpSLyIQJnFipT9ImFnAXWLL4qnMILawgIfE99ermEBsFgFViS3TtjOC2LwCrhKfZ+xl h5gvL7F6wwFmkDGcAm4ST//JQ6xqZJSYsfA1+wRGvgWMDKsYRVJLi3PTc4sN9YoTc4tL89L1 kvNzNzECA3HbsZ+bdzBe2hh8iFGAg1GJh/fFk8x4IdbEsuLK3EOMEhzMSiK8TmdPxwnxpiRW VqUW5ccXleakFh9iNAU6aiKzlGhyPjBK8kriDU0NzS0sDc2NzY3NLJTEeTsEDsYICaQnlqRm p6YWpBbB9DFxcEo1MMYmfyi9OyOFkYUpz+/60/+zzwdpegfmZjnbNZu+FIvavWbvwb9mOdJb 581MLqpfcOjqm6fFVj/qF742kVb80eM2M/qqxFebSye+mV9c0ym2/8GvfPlHu2zFlqf+L51x 8OCs3RdcL3/ST5BTK/FM8z3O1L7vue6WL8aJ01zyf34QShLTFY+WtFViKc5INNRiLipOBACj AkW6WgIAAA== X-CMS-MailID: 20200923014719eucas1p165c419cff4f265cff8add8cc818210ff X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" X-RootMTR: 20200923014719eucas1p165c419cff4f265cff8add8cc818210ff X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200923014719eucas1p165c419cff4f265cff8add8cc818210ff References: <20200915193449.13310-1-l.wojciechow@partner.samsung.com> <20200923014713.16932-1-l.wojciechow@partner.samsung.com> Subject: [dpdk-stable] [PATCH v2 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 --- 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