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 D6B44A04C0 for ; Sat, 26 Sep 2020 00:42:40 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 547AF1E9F9; Sat, 26 Sep 2020 00:42:28 +0200 (CEST) Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by dpdk.org (Postfix) with ESMTP id 005B01D59C for ; Sat, 26 Sep 2020 00:42:20 +0200 (CEST) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20200925224219euoutp02ad852097e7680353a16ab405b0c46c20~4KBVf4szn1843518435euoutp02q for ; Fri, 25 Sep 2020 22:42:19 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20200925224219euoutp02ad852097e7680353a16ab405b0c46c20~4KBVf4szn1843518435euoutp02q DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1601073739; bh=M70jyjhJkQ52yq17tdbmgDGsBAiRhgmJKfBpY0H3dWg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VLadxRJgQS605JB1jDPS9enZwkeZXoTPvk/LHksgR+NdLqZOHq3hVWydRa0eSuGDC /4PlRkUatHMfM3yt6sgRXrACTCGcsOMoELcBgvIGeFRBFvOzUgRS0MdBmNhLZFgG1Y HgixJ/fyD01wXG5VjOLPhWm1E8+N7nR59NoZxwKA= Received: from eusmges3new.samsung.com (unknown [203.254.199.245]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20200925224219eucas1p1d9149d54caf3718e3c6243e2e9278615~4KBU85tTg0081500815eucas1p1F; Fri, 25 Sep 2020 22:42:19 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges3new.samsung.com (EUCPMTA) with SMTP id DB.0A.06318.B427E6F5; Fri, 25 Sep 2020 23:42:19 +0100 (BST) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20200925224218eucas1p221c1af87b0e4547547106503cd336afd~4KBUwL1DQ0960309603eucas1p2m; Fri, 25 Sep 2020 22:42:18 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20200925224218eusmtrp1792567e3410dbb88bd93fc7367828350~4KBUvo-zw1720917209eusmtrp19; Fri, 25 Sep 2020 22:42:18 +0000 (GMT) X-AuditID: cbfec7f5-371ff700000018ae-07-5f6e724babd4 Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 6E.3C.06314.A427E6F5; Fri, 25 Sep 2020 23:42:18 +0100 (BST) Received: from localhost.localdomain (unknown [106.210.88.70]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20200925224218eusmtip2d54d3de51e7ff484a48b5e82d5c33f6f~4KBUI-rL41081510815eusmtip21; Fri, 25 Sep 2020 22:42:18 +0000 (GMT) From: Lukasz Wojciechowski To: David Hunt , Bruce Richardson Cc: dev@dpdk.org, l.wojciechow@partner.samsung.com, stable@dpdk.org Date: Sat, 26 Sep 2020 00:42:05 +0200 Message-Id: <20200925224209.12173-5-l.wojciechow@partner.samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200925224209.12173-1-l.wojciechow@partner.samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrMIsWRmVeSWpSXmKPExsWy7djP87reRXnxBo/3clvcWGVv0TfpI5PF u0/bmSye9axjtPjX8YfdgdXj14KlrB6L97xk8jj4bg9TAHMUl01Kak5mWWqRvl0CV8a8hdsZ C1aoVjycdJOxgbFVrouRk0NCwERi+ZnF7F2MXBxCAisYJeY3XWODcL4wSrTf+s0GUiUk8JlR 4t3Hgi5GDrCOux85IWqWM0qc2nqYCcIBqnnx7hYjSAObgK3EkZlfWUFsEYEwiebmvSwgzcwC zhJPvrKBmMIC1hJrziWDVLAIqEo8e7KXCcTmFXCV+LhpJTPEcfISqzccALM5Bdwkvu2bywyy SkLgOpvEpdnfmCCKXCTetG5ngbCFJV4d38IOYctInJ7cwwLRsI1R4urvn4wQzn5Gieu9K6Cq rCUO//vNBnGcpsT6XfoQYUeJ09dfMEI8zCdx460gSJgZyJy0bTozRJhXoqNNCKJaT+Jpz1RG mLV/1j5hgSjxkNi7MwgSgleBQdUeMYFRfhbCqgWMjKsYxVNLi3PTU4uN81LL9YoTc4tL89L1 kvNzNzECo/70v+NfdzDu+5N0iFGAg1GJh/fEo9x4IdbEsuLK3EOMEhzMSiK8TmdPxwnxpiRW VqUW5ccXleakFh9ilOZgURLnNV70MlZIID2xJDU7NbUgtQgmy8TBKdXA2NKQaOc+penFnKTp 8m+vGzHxa/AEnpvoU+c5M95Sfh9Tz9Qzuoury+dyyBZ5mjJnSQg+70ue6rX3HGtY37ONcrJC /Qnri1effHfYpmVG3vkg8bfLSjcdWNybPCVh1/5TOaLWk0ICltWLPNkmcU1oMvclo6BLP2c4 a7677J0jctm89lmYmu5bJZbijERDLeai4kQANiv15vYCAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrGLMWRmVeSWpSXmKPExsVy+t/xe7peRXnxBlvXm1vcWGVv0TfpI5PF u0/bmSye9axjtPjX8YfdgdXj14KlrB6L97xk8jj4bg9TAHOUnk1RfmlJqkJGfnGJrVK0oYWR nqGlhZ6RiaWeobF5rJWRqZK+nU1Kak5mWWqRvl2CXsa8hdsZC1aoVjycdJOxgbFVrouRg0NC wETi7kfOLkYuDiGBpYwS92ZcYIeIy0h8uCTQxcgJZApL/LnWxQZR85FR4vjsG0wgCTYBW4kj M7+ygtSLCIRJnFjpDxJmFnCX2LJ4KjNIWFjAWmLNuWSQMIuAqsSzJ3vBOnkFXCU+blrJDDFe XmL1hgNgNqeAm8S3fXOZIVY1Mkr0vOljncDIt4CRYRWjSGppcW56brGhXnFibnFpXrpecn7u JkZgGG479nPzDsZLG4MPMQpwMCrx8J54lBsvxJpYVlyZe4hRgoNZSYTX6ezpOCHelMTKqtSi /Pii0pzU4kOMpkBXTWSWEk3OB8ZIXkm8oamhuYWlobmxubGZhZI4b4fAwRghgfTEktTs1NSC 1CKYPiYOTqkGRie5jE+dm1/N1/Savtn0TdKJpq2GJyd9l3Svzv3OMPNr1bzcvf1Xq3/uecGq e/6dWOq93YZaLNyVKVsMZjx6+2D6vtZZ4rVrJxeuntmy4VvBiop11vPFjsfNX/6p/L217LbC 1U2MDfl31dY8yP/4qlM3443apqoFof+etXQ8Xv3u+9LaTdqT2NYrsRRnJBpqMRcVJwIApmjX eVkCAAA= X-CMS-MailID: 20200925224218eucas1p221c1af87b0e4547547106503cd336afd X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" X-RootMTR: 20200925224218eucas1p221c1af87b0e4547547106503cd336afd X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200925224218eucas1p221c1af87b0e4547547106503cd336afd References: <20200923132541.21417-1-l.wojciechow@partner.samsung.com> <20200925224209.12173-1-l.wojciechow@partner.samsung.com> Subject: [dpdk-stable] [PATCH v4 4/8] test/distributor: fix freeing mbufs 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 | 30 +++++++----------------------- 1 file changed, 7 insertions(+), 23 deletions(-) diff --git a/app/test/test_distributor.c b/app/test/test_distributor.c index 0e3ab0c4f..b302ed118 100644 --- a/app/test/test_distributor.c +++ b/app/test/test_distributor.c @@ -65,20 +65,18 @@ handle_work(void *arg) struct rte_mbuf *buf[8] __rte_cache_aligned; struct worker_params *wp = arg; struct rte_distributor *db = wp->dist; - unsigned int count = 0, num; + unsigned int num; unsigned int id = __atomic_fetch_add(&worker_idx, 1, __ATOMIC_RELAXED); num = rte_distributor_get_pkt(db, id, buf, NULL, 0); while (!quit) { __atomic_fetch_add(&worker_stats[id].handled_packets, num, __ATOMIC_ACQ_REL); - count += num; num = rte_distributor_get_pkt(db, id, buf, buf, num); } __atomic_fetch_add(&worker_stats[id].handled_packets, num, __ATOMIC_ACQ_REL); - count += num; rte_distributor_return_pkt(db, id, buf, num); return 0; } @@ -274,21 +272,18 @@ 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; unsigned int id = __atomic_fetch_add(&worker_idx, 1, __ATOMIC_RELAXED); num = rte_distributor_get_pkt(d, id, buf, NULL, 0); while (!quit) { - count += num; __atomic_fetch_add(&worker_stats[id].handled_packets, num, __ATOMIC_ACQ_REL); for (i = 0; i < num; i++) rte_pktmbuf_free(buf[i]); num = rte_distributor_get_pkt(d, id, buf, NULL, 0); } - count += num; __atomic_fetch_add(&worker_stats[id].handled_packets, num, __ATOMIC_ACQ_REL); rte_distributor_return_pkt(d, id, buf, num); @@ -316,7 +311,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); @@ -340,15 +334,11 @@ 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; - 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); @@ -365,7 +355,6 @@ 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++) @@ -378,12 +367,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) { @@ -393,19 +377,19 @@ handle_work_for_shutdown_test(void *arg) while (zero_quit) usleep(100); + for (i = 0; i < num; i++) + rte_pktmbuf_free(buf[i]); num = rte_distributor_get_pkt(d, id, buf, NULL, 0); while (!quit) { - count += num; - rte_pktmbuf_free(pkt); - num = rte_distributor_get_pkt(d, id, buf, NULL, 0); __atomic_fetch_add(&worker_stats[id].handled_packets, num, __ATOMIC_ACQ_REL); + for (i = 0; i < num; i++) + rte_pktmbuf_free(buf[i]); + num = rte_distributor_get_pkt(d, id, buf, NULL, 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