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 0265BA04B1; Sat, 10 Oct 2020 18:12:22 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 304EE1D8FD; Sat, 10 Oct 2020 18:06:24 +0200 (CEST) Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by dpdk.org (Postfix) with ESMTP id DBCEB1D905 for ; Sat, 10 Oct 2020 18:06:22 +0200 (CEST) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20201010160611euoutp013f30be796059d454617450623ebb633a~8rSvz2qAG0381003810euoutp01j for ; Sat, 10 Oct 2020 16:06:11 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20201010160611euoutp013f30be796059d454617450623ebb633a~8rSvz2qAG0381003810euoutp01j DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1602345971; bh=QLPUD9KOQYFHJXu7SCPKNy9u0rZMb6AcEwQp21bwlhc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=UYiBXNIid3zX86zkPmGGvzpXplnlziIMVX930yGeeQmRsXm2TeiFzP4S6Dts+fOn6 neuhc9jChsRSrhIMPnpInLtaoRvKx5pScTtXTxY4927vKC3qYWD7YOmWIPGmD2cZvU oPCVKf+vOTsXdM7NoWVRg+G+twS/R45mC4nrfbJ4= Received: from eusmges2new.samsung.com (unknown [203.254.199.244]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20201010160606eucas1p2518fa1c12ebf0b262f7362a4425ffd94~8rSqwCeQF0179501795eucas1p2w; Sat, 10 Oct 2020 16:06:06 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges2new.samsung.com (EUCPMTA) with SMTP id EA.58.05997.EEBD18F5; Sat, 10 Oct 2020 17:06:06 +0100 (BST) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20201010160605eucas1p1ff6b4cb5065e1355cb8eeafd4696abaf~8rSqDeZk92439624396eucas1p12; Sat, 10 Oct 2020 16:06:05 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20201010160605eusmtrp1818a0a39442cc34ab2b5e89daa6c49d8~8rSqC8rOh2920229202eusmtrp10; Sat, 10 Oct 2020 16:06:05 +0000 (GMT) X-AuditID: cbfec7f4-65dff7000000176d-9a-5f81dbee371f Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id E7.5A.06314.DEBD18F5; Sat, 10 Oct 2020 17:06:05 +0100 (BST) Received: from Padamandas.fritz.box (unknown [106.210.88.70]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20201010160554eusmtip17edb86a0f5afdbb94e6fc8f9b481f36c~8rSfW8EUO2972929729eusmtip1E; Sat, 10 Oct 2020 16:05:53 +0000 (GMT) From: Lukasz Wojciechowski To: David Hunt Cc: dev@dpdk.org, l.wojciechow@partner.samsung.com Date: Sat, 10 Oct 2020 18:05:07 +0200 Message-Id: <20201010160508.19709-17-l.wojciechow@partner.samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201010160508.19709-1-l.wojciechow@partner.samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrLIsWRmVeSWpSXmKPExsWy7djP87rvbjfGG7Ts5Lfom/SRyeLdp+1M Fs961jE6MHv8WrCU1WPxnpdMHgff7WEKYI7isklJzcksSy3St0vgyphylb+gQbGi9cwJtgbG W1JdjJwcEgImEo/utzJ2MXJxCAmsYJTYOfUPlPOFUWL6usnMEM5nRokjC7aydDFygLVcvi0D EV/OKPGgdworhPOJUWLK0RXMIHPZBGwljsz8ygpiiwioSvzb/4kJxGYWMJJ42T0RrEZYwEfi bGMPI4jNAlTTtvgRmM0r4CbR9vc2K8R98hKrNxwAq+cEip/tOsgGskxC4ACbxNxTvxghLnKR 2HSKEaJeWOLV8S3sELaMxOnJPSwQ9dsYJa7+/skI4exnlLjeuwKqylri8L/fbCCDmAU0Jdbv 0ocIO0qsenkL6mM+iRtvBSHu55OYtG06M0SYV6KjTQiiWk/iac9URpi1f9Y+YYGwPSSWT5gL DdGrjBJ//u5nnsAoPwth2QJGxlWM4qmlxbnpqcVGeanlesWJucWleel6yfm5mxiBkX763/Ev Oxh3/Uk6xCjAwajEwytxqjFeiDWxrLgy9xCjBAezkgiv09nTcUK8KYmVValF+fFFpTmpxYcY pTlYlMR5jRe9jBUSSE8sSc1OTS1ILYLJMnFwSjUwlgXbtxRNNVxiZKM04eFcrl1Vhv3vv92+ 31Uk2JUunn/37DXlXW5LtWZoO6RyvJH72vAi9WT2rR3Xq14JV+pbbTgYkuYfaBzqOZ0nysPZ 4lXJQluF5LkN5+PrPCy0Z7p1pVSx3otl6d+Usl/YdM0Xf1efwpehR7h4H2rnH/z+8vfnGlO/ 8hAlluKMREMt5qLiRAD48l0x8AIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrHLMWRmVeSWpSXmKPExsVy+t/xu7pvbzfGG3x4K2XRN+kjk8W7T9uZ LJ71rGN0YPb4tWApq8fiPS+ZPA6+28MUwBylZ1OUX1qSqpCRX1xiqxRtaGGkZ2hpoWdkYqln aGwea2VkqqRvZ5OSmpNZllqkb5eglzHlKn9Bg2JF65kTbA2Mt6S6GDk4JARMJC7fluli5OIQ EljKKLHg5kEmiLiMxIdLAl2MnECmsMSfa11sEDUfGCU6731iBkmwCdhKHJn5lRXEFhFQlfi3 /xMTiM0MNPP2vCY2EFtYwEfibGMPI4jNAlTTtvgRmM0r4CbR9vc2K8QCeYnVGw6AzeQEip/t Ogi1rJFR4sTtm2wTGPkWMDKsYhRJLS3OTc8tNtQrTswtLs1L10vOz93ECAy7bcd+bt7BeGlj 8CFGAQ5GJR5eiVON8UKsiWXFlbmHGCU4mJVEeJ3Ono4T4k1JrKxKLcqPLyrNSS0+xGgKdNVE ZinR5HxgTOSVxBuaGppbWBqaG5sbm1koifN2CByMERJITyxJzU5NLUgtgulj4uCUamAUtXu/ JiR7uvPhiKV+Uy4Y2c/k+f33DPfn3kl2xfM2f9l0avo3lVef22asbfkw84zV2Sn8Twp70tzX 7T33LbxwQsXVNde1nB563cwMLNZbYP7oV2tBoM/8dR+/aQieOnZc0LOncM/lfjup8PxDjpGG gWueii4r3tLd877kj+qDd99iOXNdfxjrK7EUZyQaajEXFScCACV3Zl1RAgAA X-CMS-MailID: 20201010160605eucas1p1ff6b4cb5065e1355cb8eeafd4696abaf X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" X-RootMTR: 20201010160605eucas1p1ff6b4cb5065e1355cb8eeafd4696abaf X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20201010160605eucas1p1ff6b4cb5065e1355cb8eeafd4696abaf References: <20201009220202.20834-1-l.wojciechow@partner.samsung.com> <20201010160508.19709-1-l.wojciechow@partner.samsung.com> Subject: [dpdk-dev] [PATCH v7 16/16] test/distributor: ensure all packets are delivered X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" In all distributor tests there is a chance that tests will send packets to distributor with rte_distributor_process() before workers are started and requested for packets. This patch ensures that all packets are delivered to workers by calling rte_distributor_process() in loop until number of successfully processed packets reaches required by test. Change is applied to every first call in test case. Signed-off-by: Lukasz Wojciechowski --- app/test/test_distributor.c | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/app/test/test_distributor.c b/app/test/test_distributor.c index 4fc10b3cc..3c56358d4 100644 --- a/app/test/test_distributor.c +++ b/app/test/test_distributor.c @@ -103,6 +103,7 @@ sanity_test(struct worker_params *wp, struct rte_mempool *p) struct rte_mbuf *returns[BURST*2]; unsigned int i, count; unsigned int retries; + unsigned int processed; printf("=== Basic distributor sanity tests ===\n"); clear_packet_count(); @@ -116,7 +117,11 @@ sanity_test(struct worker_params *wp, struct rte_mempool *p) for (i = 0; i < BURST; i++) bufs[i]->hash.usr = 0; - rte_distributor_process(db, bufs, BURST); + processed = 0; + while (processed < BURST) + processed += rte_distributor_process(db, &bufs[processed], + BURST - processed); + count = 0; do { @@ -304,6 +309,7 @@ sanity_test_with_mbuf_alloc(struct worker_params *wp, struct rte_mempool *p) struct rte_distributor *d = wp->dist; unsigned i; struct rte_mbuf *bufs[BURST]; + unsigned int processed; printf("=== Sanity test with mbuf alloc/free (%s) ===\n", wp->name); @@ -316,7 +322,10 @@ sanity_test_with_mbuf_alloc(struct worker_params *wp, struct rte_mempool *p) bufs[j]->hash.usr = (i+j) << 1; } - rte_distributor_process(d, bufs, BURST); + processed = 0; + while (processed < BURST) + processed += rte_distributor_process(d, + &bufs[processed], BURST - processed); } rte_distributor_flush(d); @@ -409,6 +418,7 @@ sanity_test_with_worker_shutdown(struct worker_params *wp, struct rte_mbuf *bufs2[BURST]; unsigned int i; unsigned int failed = 0; + unsigned int processed = 0; printf("=== Sanity test of worker shutdown ===\n"); @@ -426,7 +436,10 @@ sanity_test_with_worker_shutdown(struct worker_params *wp, for (i = 0; i < BURST; i++) bufs[i]->hash.usr = 1; - rte_distributor_process(d, bufs, BURST); + processed = 0; + while (processed < BURST) + processed += rte_distributor_process(d, &bufs[processed], + BURST - processed); rte_distributor_flush(d); /* at this point, we will have processed some packets and have a full @@ -488,6 +501,7 @@ test_flush_with_worker_shutdown(struct worker_params *wp, struct rte_mbuf *bufs[BURST]; unsigned int i; unsigned int failed = 0; + unsigned int processed; printf("=== Test flush fn with worker shutdown (%s) ===\n", wp->name); @@ -502,7 +516,10 @@ test_flush_with_worker_shutdown(struct worker_params *wp, for (i = 0; i < BURST; i++) bufs[i]->hash.usr = 0; - rte_distributor_process(d, bufs, BURST); + processed = 0; + while (processed < BURST) + processed += rte_distributor_process(d, &bufs[processed], + BURST - processed); /* at this point, we will have processed some packets and have a full * backlog for the other ones at worker 0. */ @@ -584,6 +601,7 @@ sanity_mark_test(struct worker_params *wp, struct rte_mempool *p) unsigned int i, count, id; unsigned int sorted[buf_count], seq; unsigned int failed = 0; + unsigned int processed; printf("=== Marked packets test ===\n"); clear_packet_count(); @@ -614,7 +632,11 @@ sanity_mark_test(struct worker_params *wp, struct rte_mempool *p) count = 0; for (i = 0; i < buf_count/burst; i++) { - rte_distributor_process(db, &bufs[i * burst], burst); + processed = 0; + while (processed < burst) + processed += rte_distributor_process(db, + &bufs[i * burst + processed], + burst - processed); count += rte_distributor_returned_pkts(db, &returns[count], buf_count - count); } -- 2.17.1