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 A26D8A04C7 for ; Tue, 15 Sep 2020 21:35:07 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 63A311C136; Tue, 15 Sep 2020 21:35:07 +0200 (CEST) Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by dpdk.org (Postfix) with ESMTP id 4C5001C119 for ; Tue, 15 Sep 2020 21:35:00 +0200 (CEST) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20200915193459euoutp0107e3460a8147601b61c926006d28b6c9~1DA6knQLa1761317613euoutp01- for ; Tue, 15 Sep 2020 19:34:59 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20200915193459euoutp0107e3460a8147601b61c926006d28b6c9~1DA6knQLa1761317613euoutp01- DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1600198499; bh=BVJe8/A3whspe3s69DyHdj0CtB/By4/BhAUSBV03VnQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BkqHbjiw2R82Ra1wNNdDeyn0P6esoCkqUr83fESVC6V4zDVnR4hsmpapHgui4efYX mhuD/qNaP1bfnV+tkenxGND+i4c4cC2mWnndCcMHFz7c40UjQUVSL7SF5UwZjwI4cT v2NCBxevGMAo4rMBB859ryz94RcS+ly+c1+K/z3g= Received: from eusmges2new.samsung.com (unknown [203.254.199.244]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20200915193458eucas1p1ba92f4c2431dd9bb73315dfa2c310f20~1DA5_ZrER2429224292eucas1p19; Tue, 15 Sep 2020 19:34:58 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges2new.samsung.com (EUCPMTA) with SMTP id DE.60.05997.267116F5; Tue, 15 Sep 2020 20:34:58 +0100 (BST) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20200915193458eucas1p1d9308e63063eda28f96eedba3a361a2b~1DA5syDRT1351113511eucas1p1g; Tue, 15 Sep 2020 19:34:58 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20200915193458eusmtrp191bcd90d7dda133db6cd22d802b66ee5~1DA5sTFDj1473114731eusmtrp1-; Tue, 15 Sep 2020 19:34:58 +0000 (GMT) X-AuditID: cbfec7f4-65dff7000000176d-0d-5f611762ba67 Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id D9.6C.06017.267116F5; Tue, 15 Sep 2020 20:34:58 +0100 (BST) Received: from Padamandas.fritz.box (unknown [106.210.88.70]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20200915193458eusmtip27bee4959e6e39ac8d0e521b1fdbc6e54~1DA5Ga2mP2964229642eusmtip2W; Tue, 15 Sep 2020 19:34:57 +0000 (GMT) From: Lukasz Wojciechowski To: David Hunt , Bruce Richardson Cc: dev@dpdk.org, l.wojciechow@partner.samsung.com, stable@dpdk.org Date: Tue, 15 Sep 2020 21:34:46 +0200 Message-Id: <20200915193449.13310-4-l.wojciechow@partner.samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200915193449.13310-1-l.wojciechow@partner.samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrOIsWRmVeSWpSXmKPExsWy7djP87pJ4onxBvvXWlvcWGVv0TfpI5PF u0/bmSye9axjtPjX8YfdgdXj14KlrB6L97xk8jj4bg9TAHMUl01Kak5mWWqRvl0CV8bCPdEF PSoVSza3MTcwPpLpYuTkkBAwkWhs3s/YxcjFISSwglHi78cOVgjnC6NE99s1TBDOZ0aJH007 GWFaHu++wwyRWM4oMf/SfBYI5xOjxO7GR2BVbAK2EkdmfmUFsUUEwiSam/cCFXFwMAs4Szz5 ygYSFhbwkPjbdYMJxGYRUJXYfuUfM4jNK+Aq8WjJMzaIZfISqzccAItzCrhJXP04G2yxhMBl Nombf2axQxS5SPydeRXKFpZ4dXwLlC0jcXpyDwtEwzZGiau/fzJCOPsZJa73roCqspY4/O83 G8R1mhLrd+lDhB0lju5ZCHa0hACfxI23giBhZiBz0rbpzBBhXomONiGIaj2Jpz1TGWHW/ln7 hAXC9pB4fOUUNLBmMkpM3nWBdQKj/CyEZQsYGVcxiqeWFuempxYb5aWW6xUn5haX5qXrJefn bmIERv/pf8e/7GDc9SfpEKMAB6MSD++C2wnxQqyJZcWVuYcYJTiYlUR4nc6ejhPiTUmsrEot yo8vKs1JLT7EKM3BoiTOa7zoZayQQHpiSWp2ampBahFMlomDU6qBcd3NF2+2ZFl9fdntJyaY Pyfy2CPP6Wd1PZs6F3zfvJpHKO3s9Dsu8k8/2ck82JbOPllc/73GK1Ob819/Vn3gY93032ty 0ekUhvfnHvntS4x7udj26PyYjc+mnng1W6FSZenDa3kGZZJCJ/krYqpnF0S95v+1ucNh7n05 hcVt5jUrC/j5TAU5DymxFGckGmoxFxUnAgClaQ5C+gIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrGLMWRmVeSWpSXmKPExsVy+t/xe7pJ4onxBus3qFncWGVv0TfpI5PF u0/bmSye9axjtPjX8YfdgdXj14KlrB6L97xk8jj4bg9TAHOUnk1RfmlJqkJGfnGJrVK0oYWR nqGlhZ6RiaWeobF5rJWRqZK+nU1Kak5mWWqRvl2CXsbCPdEFPSoVSza3MTcwPpLpYuTkkBAw kXi8+w5zFyMXh5DAUkaJ9jsrmboYOYASMhIfLglA1AhL/LnWxQZR84FRYu7jDnaQBJuArcSR mV9ZQepFBMIkTqz0BwkzC7hLbFk8lRnEFhbwkPjbdYMJxGYRUJXYfuUfWJxXwFXi0ZJnbBDz 5SVWbzgAFucUcJO4+nE2mC0EVLP45Hn2CYx8CxgZVjGKpJYW56bnFhvpFSfmFpfmpesl5+du YgSG4bZjP7fsYOx6F3yIUYCDUYmHd8HthHgh1sSy4srcQ4wSHMxKIrxOZ0/HCfGmJFZWpRbl xxeV5qQWH2I0BTpqIrOUaHI+MEbySuINTQ3NLSwNzY3Njc0slMR5OwQOxggJpCeWpGanphak FsH0MXFwSjUwThC+qNG4V2jWN++Nl50820oWde+/bvNo2Yf1BR0BCdP5Zkx9P6kh9oDInRc3 lk/W263n+7d0Z7Wu08mVt9h1XGSn+IbLXnQ/UCOZe7WD7VopV8HkVaEvJ8tzvm6Y3+Okqmm2 4m/nerY1h8T53VVZIk4ErdynGpzVcHLHujlHDIMkxcQTnSRmKbEUZyQaajEXFScCAIJrg5tZ AgAA X-CMS-MailID: 20200915193458eucas1p1d9308e63063eda28f96eedba3a361a2b X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" X-RootMTR: 20200915193458eucas1p1d9308e63063eda28f96eedba3a361a2b X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200915193458eucas1p1d9308e63063eda28f96eedba3a361a2b References: <20200915193449.13310-1-l.wojciechow@partner.samsung.com> Subject: [dpdk-stable] [PATCH v1 3/6] 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 | 37 +++++++++++-------------------------- 1 file changed, 11 insertions(+), 26 deletions(-) diff --git a/app/test/test_distributor.c b/app/test/test_distributor.c index 0e49e3714..da13a9a3f 100644 --- a/app/test/test_distributor.c +++ b/app/test/test_distributor.c @@ -277,24 +277,21 @@ 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++) rte_pktmbuf_free(buf[i]); 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 +319,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 +342,15 @@ 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); - - 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 +362,12 @@ 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++) rte_pktmbuf_free(buf[i]); 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 +375,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 +385,20 @@ 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, 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]); + 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