From patchwork Sun May 28 19:58:34 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerin Jacob X-Patchwork-Id: 24820 X-Patchwork-Delegate: jerinj@marvell.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id 05ECA7CF6; Sun, 28 May 2017 22:01:02 +0200 (CEST) Received: from NAM03-DM3-obe.outbound.protection.outlook.com (mail-dm3nam03on0084.outbound.protection.outlook.com [104.47.41.84]) by dpdk.org (Postfix) with ESMTP id 92A437CF1 for ; Sun, 28 May 2017 22:00:56 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=Y6ZRI7nQr8vQ2233EDZ5D5Jn9Xfs3n7MgqJp6SIyWxs=; b=XriLNusybkGtCNS0W9R9aJCwMWL7Kv//KmsLHfO946mcZ60I9I9LUsJf3kuqLV0fnSVhXm1S7tUE1xu5yY3GT0kndyYVVyByOJbkS6FC+4xH8XVkVKcg43fiNd7STy9hUsBnntiG966Y6cYxE1sUk8iQBst4aZl3Dp1bjgg1dto= Authentication-Results: dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; dmarc=none action=none header.from=caviumnetworks.com; Received: from jerin.domain.name (111.93.218.67) by CY1PR0701MB1725.namprd07.prod.outlook.com (10.163.21.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1124.9; Sun, 28 May 2017 20:00:51 +0000 From: Jerin Jacob To: dev@dpdk.org Cc: bruce.richardson@intel.com, harry.van.haaren@intel.com, hemant.agrawal@nxp.com, gage.eads@intel.com, nipun.gupta@nxp.com, narender.vangati@intel.com, nikhil.rao@intel.com, gprathyusha@caviumnetworks.com, Jerin Jacob Date: Mon, 29 May 2017 01:28:34 +0530 Message-Id: <20170528195854.6064-14-jerin.jacob@caviumnetworks.com> X-Mailer: git-send-email 2.13.0 In-Reply-To: <20170528195854.6064-1-jerin.jacob@caviumnetworks.com> References: <20170528195854.6064-1-jerin.jacob@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: BMXPR01CA0003.INDPRD01.PROD.OUTLOOK.COM (10.174.214.141) To CY1PR0701MB1725.namprd07.prod.outlook.com (10.163.21.14) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY1PR0701MB1725: X-MS-Office365-Filtering-Correlation-Id: 8eca32e1-4867-4f5e-04f6-08d4a6044060 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075)(201703031133081); SRVR:CY1PR0701MB1725; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB1725; 3:X3k13vsxopCX+i1mngrHSHXi/yFqRX93BpQvyYdNQvh/S+BP0974Y3oVbkMf26dt0N59VC4t5t9iwzQUa1RXTwtFnwjJJa3siJzPe3ZSueewR7HUhvYGZAMIAdNoEWVetqOSkdwbw1cBRbznBStXo/TQZAXv/EGbOz/gFWIOcfZSy7kb68dVmC32JgAyJ5t5pgVrzOqwPryB/ZNxJOPBqQHn46fVC0222l5bvXyUKa0+lxqlQZjgix3HGkXW7/vXR1otosaFY5oY1GdbUX4BeHbq+PPpf1CGfGPKIh0yeUO0CZX74Z3HssvokW5t94Zpk4893AZQWjRP34SP0JrSdA==; 25:VWS1YYjH3uCBJvxYKKRyVDTamxKuiJBG5AQaa3vzK2YNtbWWQqjBYATtPf4Aiq+RDBxU9rIC/rczYURvsJeUXgoXr3smqJA63QOJJr38pClMAIImLwTxiiJblBgyE9ZTCaGdZe3AzRiknmKCscrw1t6RIunvV/90R+elHnFk+u+L1EVCv0/0olNYwIN8dEMBm7wPmY9iGXhkbr0ofn5ltBeK3rpcKO3Is//IvEKMrGtpXvf4JFK8VAD4DpxfhVVVbN6nC0xV/saKjIXAT8sgMYQWpGaxwGSVbetX8UntJ/mWM5zRqJuEXIJu2vm2wF5s/l02z5NDZi8Q834VDC87RNagDLIEfMRuwDXculQ7BEaCSOZQwDilIHSj+8uF61g1JRfGOJz4F2GDAXqVE81m7cE/bQEQIL3Vd2P+HyDIZV83ZihzpTBWjLUE2iS5amSToubYXLVK/j1Va5QnM1evChySG4MQs4D405f40qeTw5A= X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB1725; 31:4+GFk+MNQod2WlX8t94fu3BWTKDq3BqEk4rsoi/6CryvRuOcfSzedo5LfPnoDYvmGRR0mAS6x4mY9Nh9QZ1DLMzBApsl8amYvMgNlaBwXPTue1WbZLZSSEOHsMi3uQb3oayRfyCoMuP5YDAU4T61CWzr3vDpeuHifm8oJkCC7W8MQ/Xd6rvNSqKxUv7pPhzJyAlUjQzRDHHk63h5cO9l5JfntJwO3B594NOOFOS5hxE=; 20:Dr+Ezif8fLBJ6Xn92/a5mOrqVl/i9Dvt426p5ZTCnErvmorQlJ0hVHp+IU22L/4mf8vXa5kYwsj6dhEV/ibGy1EN6ruclLYuA8KNC2v0WuTpVuKzy7XNNo3GBkPmSDqCgNR9peI9QYD9vqNBwcWWT8fwQmGr7ZuCJHuRtsbP1VPP4MS/rPhr6cahCpwzIOe0RHUh92Ohm0emQ2cufJTsKdkWf2UVFB18tJvE4nsjOp6tqp58Jfy8g/ww6IuDpFzR2g1vb4YPLsKp51lU1CRiVIkgacAs8e+5zvyl1uYEQyV+90wBCepGopXJrlMslAFmzJKwAECFfx8vnE9i0UWqZ0J8znkhAgz7GDF3zkjbcAB8OAqf8JjZZapLiujx3XilvKy8IreDOE89nnqbZ8ZIuWDwoL+Xf5rfeZU7DmYdwd7uInjeYnNgPpP6JhFBY8p6L9w7+8/bBNy+3YnKB5Az89mCbdEwqtDPL7hYeT5qF2WxnLlF3vjHDmqM+7hM9lkt/oiZN+tVMsZlrc0RVoxsMHrnNUCGFStT3nCASFESbxLIT0+7QzbxOXKRxhkxP6LEkMViIEYvBjSrH2da6mvmMSxIppJ0memcnVsmci7QyUQ= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700073)(100105000095)(100000701073)(100105300095)(100000702073)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(93006095)(100000703073)(100105400095)(6041248)(20161123562025)(20161123555025)(20161123560025)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(6072148)(100000704073)(100105200095)(100000705073)(100105500095); SRVR:CY1PR0701MB1725; BCL:0; PCL:0; RULEID:(100000800073)(100110000095)(100000801073)(100110300095)(100000802073)(100110100095)(100000803073)(100110400095)(100000804073)(100110200095)(100000805073)(100110500095); SRVR:CY1PR0701MB1725; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR0701MB1725; 4:4wCpjig0fXKAz6VnZGMVlZchI2z2xtYpo4FaS2uP?= c3RqcJOl+GbM8w7/3XVxNl2xPCDSdnyZjCchvMHfWwM1YkgFWrg2J7HHXe/Krk033ELKcVc6Ad7pFzUOCZ3xZ2ifoFn4BTjtFBT99NhzXFu60QRyqAkPmuKLOU3IRXlzwyXtoFeB1v5MZUaF6Wu5F/ImRoQIScXl4tmVD7Hg872bZr0IZrTLSXi8+BfHvthUOMOS5DYLaaxkRo89vhr2cjqpmmaZKFTRyFu+7h8IxtiPQy2JiQ2bouFQtekIRxK8BQ+nNphkNhD3Q8yFe45nguyYcTo/LYkM0gkN3EYFn4cAmw2XyNMkifqX6BQr/Hxj22+eVZ/7yGyIQmDx/GmkNrbjwHHfXiL5SUTslNMba1qQolmwd5esIuBOnCsERksGqt4X7n8gPYsTieEANCIAlMr4u92bQHFSoHAxvRpUmjbLn7T55ESJuTlcsVVHLeIwk0pCRGmSZVwBMf/Wx0jPazWePD42ahwiadTSO8SrLJl4WIsFtooZxrNSTwHQE07KjJdI3UZo5znTeZFegLjCXhBy9enqnoRa7jsbjbZd3BsTtqgUDcd9qyoD5/tA90h7aG/rwYsFS2QSbQy17mBUgl17bwq6wV3dIWfCzz0zuIFQwlBCis7DlVIrZP0m3wVycnIhQnEkNEgfflI7HYftRUvdSuAmcyVXnNZQlE5o2s7HhS5hFAeMEJ4UuIDt/pPNzYyD75hqz0Gv8g3Iu8uJXFcd78R/rWduqtdjlJHFoUYvu0fNkcrsRU/xUfVYQ2m8tNQvUTjrl6gYtT6S2HDJ+Fxy7AqmoggDBz+s2RC7e4I1gs0RcAy1voR9anhJJk6ItM7Pf3AhHpcQBBWkNCEVAMFsL6se2VnTt11Yz/fKM4p07ghoAuRupcs/HexkZqdr2vqZjbhqE2FN4tZddtv2ngMiMuGm9TW1CwOdOcW2kUBoNzXMb6EgS51yDvYU6z2AzpHTY0rm6UdMV0xQMMfBQJyaF+GTMCFvDTjx+icDnQUWfiGP0qQhMrTTPWlmGeESWTIqF0RHGiXCep1/svtEBk9VpRDsVzC46MouUX8qiDog7lSge/tj8m9rbqszBA3HStU= X-Forefront-PRVS: 03218BFD9F X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(39450400003)(39850400002)(39410400002)(39840400002)(39400400002)(81166006)(6486002)(66066001)(4326008)(50986999)(76176999)(50226002)(189998001)(72206003)(36756003)(6506006)(38730400002)(5003940100001)(5009440100003)(110136004)(107886003)(42186005)(53416004)(7736002)(8676002)(48376002)(50466002)(1076002)(3846002)(6116002)(575784001)(6512007)(2361001)(305945005)(2906002)(6666003)(478600001)(25786009)(5660300001)(2351001)(6916009)(42882006)(2950100002)(33646002)(8656002)(47776003)(53936002); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR0701MB1725; H:jerin.domain.name; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR0701MB1725; 23:FKKbrGsWaMLkRWBHuDYKtn2D5fnpKKlxhQjMOSJ?= MR4/HbsqVxk1SkbmO4A86CcvWCrrgSyOGa0y4WGsaXC1neznJiAGRTzBsV79BkSaKdBLICImtG+U0UJezvKwXrvPxWQa4CSl+St1yj4hnsf9oUurdXL50ropzDg1VAsa7qLJT8bEyO7g38w40vVcDAmvi9tbHF1d9MNf4rKI9nhkjs/l7p2Uphyimj0Vmf7+RQKtjLVA9FFrxXPclhpxvVdMfqsujsCRLZykfgpt481xVr4N7nXXQcmPIsXG4Eu/9HfhOAt3zesXMO0rxa5oYt7Fiy6sna/NekZObAS4NI4u7M/fE0OClXJ7SVhg1XFyjfaA78vzfHW1RsYcCtTrKZ1ptiLwI2D9gzgGB/CbZduL7tXituKtVqfuh09MrCz7HFkJTnn6EfjDGHWCOFgPrT+hXv9Kq/Y8SylcgqIn/2yMNsqunxfY4untUqnFFhRAPoB0RITuEmjEgYfr1IqCXYJbnU9XWZwmLh33MLlRF4F7vG35hXjq1BdcTWKDyEldRtxkqRdFA6S/q3Nng77rdalf2jiA8Amx5FaioiV8JIyuOEPN1/mB9m4I/IExorzNXeaJj4CEv9ei7PSuJl5CkWELPUh7ehs85zHbG+6Dg3YXAMYR0bw8NrwhP+z/ucsjKdCkATeg4xLB3uSxSxnaEbcq2q15he0UWscridEiAPJWX2hZ+ip35szL09iu3bZ4ae12koJUbE0a+KmxD0nEhFpfHhAJIsnLoPrQzl4Vrwlp9L2M+Ff56RXlS52o5yotppEHUjZ7h/pKO3XCKP8ZS9aDpavCAznduEetIo2JvRf1t3T+0IG46LJhGQhwEs1dKl3C0ZdXJ4yLEP3+xC2HUDlPO0XJ4VpzKY+JMcZe3rnJPmGDDnvmwj/3dyWkw2yPOkGArgxNk3Spc0h9re7ZLvimbtXSSdMSou9K6jRp5qPOgqNVBeQ54uZ5w5cJIubZmT6nXLv03IKLK3TkeZ1zNtGhzrTpbcZ4LfkBGcAw4Ds4qJcjwXjZi+AgF4nfOpAjZTwQnLt3dccya1Xpjd2bQ7qi/cb8qB/mt2hiscBPf3dYsnKPWwzf9vB+/rpioxgBemjNhtj2TbMClpeawrnutttLyAJKIcVG9QMI9XEoyw4ykv3OWNcjflzaQg5O1mT0hASBZZZETJD/2zjiSPI0YzveS3XwXPc7516Hzvk59cc1IOA== X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB1725; 6:bYJWixi9yEH6nHlsRh0lutXPIYXFPKvtui3BT8YVfQs4glCrSdsspy9l2OT3/KUysnIoLN76jw7WMJ1leEj6GrB/caWZzPtueQnoCHWsC3/pjBbz15RXi5yCz/lEKnVN8zhgUIGTbMgh6skN8O3uFduqOP5oQ7YWQuPf5OEdCfRjT7BqF3/RA0m89SuUX2jKut4D2l3KNfU7vOBxZnadu/lVP0GmRiTzP9VPvBkxhirexcZAOZkp5xaA5Zh7/tdFlWqixy/1AUWOt42QQ3mWE9EmUJevVtYBEO90yTjOH5B1xvEwi0Cdp8mr6tbHerGPxIdgAj+FKEg2WLUC4hXx8z4osqlcceVacsceNz17qLAtV8H0v6gz7nyH70v6G6eKHOR/pmdvU6XiBx79ezvoPamsqKj+D3YPOVOVvaocBZ3Y486HAy7cjgUwRAj7sm8dQ+OGSvCkDcpjb6hatS0Ni91L+Oxi5KPXrgDjHAd6LiFVooP8qrUmMCvjbix+wygAZYIRIGoqJb7SWoklfODLng== X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB1725; 5:e5bZjwUWbfV71wp6Nd5L7d/+qQawcRPc/BPSZ2CC6ejFrYivAJkj2JM+h0mBvrf5bIbgIJJAQEToVGGPdghyI5wuQ/rl8LLXSRBg+UU2OIuOQehExvDN8uGlKTEUmVY8Slqjk2C877Y8uvmrX0gQhPk/sJ41HJsEPiWNQA/D8VuFOzXgOCNWd6fRAxxFMjFsgxIcr/jFTwOeMgL4+Mvr/1QY1E5pF8tmH4k0n/Wwj3PGdtqBMM/NJzkdk0MHii9J1tR7yAd70HpVEw/moMnbAsnQO6gyf1Owt8MzBmUqjRvLqZBUZHTMvskfaUk98WfEak0HpEZijzrF2GKe3/NklqNY+K8vRH6urTO9uDtaar7/kICuGMW/UzswRwwx3eqf6La1pHHA3bKLqiN6K2FHWw7PKLoJhGNipaEprBGoDHYwtDdsvHVZuTF0rH9gJO0yJonQ3Z/aRg1ok/b63US0Q8mBA0z2KlrC3vNSYGi1OrhMa2H2tY+DOemUbjcWnSwG; 24:MKiSex2D12KP8Q/ltrKoXxl0yuql56qmijv68AvQVEVWNQQcASYaDoFl40GzwfX1Zb5yDsRzMaVUH3kBUlI3CKB12m6n8e8BDILoNFcgbQY= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB1725; 7:qqI62rPYDhMh5Uo8tORe0Ums3u7hQiDzwt0maAPPZDXPW1TL+QubXiYAMlfs0yuTF2MlbzpH1qnqvYbyjMkqsP6eSN1NVm+/rDgU+Lp2c/XF5JkO4q4FXnsCxxoL/ngzH4V/8KWZJIQe0W+1RKJmdutwScjdCrlUdMEGRnW9+8cFLjxqD1hj3XwZFsQVDskKKV26lIKJ0QV6JNa2QGWrPLFSF14p9+mIpT9V/ezIz8Ajz+IA0SisDKwzuIAX42Tmk+q6w7q0cLuhIj0SEqjpacDE8ZPNlPl05DVvekny8FRlVImDXP3vlmha1BCBWb1qyKNS8y0xV09Fnph0yTCArw== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 May 2017 20:00:51.7756 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR0701MB1725 Subject: [dpdk-dev] [PATCH 13/33] app/testeventdev: order: add basic functions 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" add functions to create mempool, destroy mempool, dump the options, check the options and print the test result. Signed-off-by: Jerin Jacob --- app/test-eventdev/test_order_common.c | 95 +++++++++++++++++++++++++++++++++++ app/test-eventdev/test_order_common.h | 12 +++++ 2 files changed, 107 insertions(+) diff --git a/app/test-eventdev/test_order_common.c b/app/test-eventdev/test_order_common.c index b8ba8a0d1..6d636e66a 100644 --- a/app/test-eventdev/test_order_common.c +++ b/app/test-eventdev/test_order_common.c @@ -33,6 +33,55 @@ #include "test_order_common.h" int +order_test_result(struct evt_test *test, struct evt_options *opt) +{ + RTE_SET_USED(opt); + struct test_order *t = evt_test_priv(test); + + return t->result; +} + +int +order_opt_check(struct evt_options *opt) +{ + /* 1 producer + N workers + 1 master */ + if (rte_lcore_count() < 3) { + evt_err("test need minimum 3 lcores"); + return -1; + } + + /* Validate worker lcores */ + if (evt_lcores_has_overlap(opt->wlcores, rte_get_master_lcore())) { + evt_err("worker lcores overlaps with master lcore"); + return -1; + } + if (evt_lcores_has_overlap(opt->wlcores, opt->plcore)) { + evt_err("worker lcores overlaps producer lcore"); + return -1; + } + if (evt_has_disabled_lcore(opt->wlcores)) { + evt_err("one or more workers lcores are not enabled"); + return -1; + } + if (!evt_has_active_lcore(opt->wlcores)) { + evt_err("minimum one worker is required"); + return -1; + } + + /* Validate producer lcore */ + if (opt->plcore == (int)rte_get_master_lcore()) { + evt_err("producer lcore and master lcore should be different"); + return -1; + } + if (!rte_lcore_is_enabled(opt->plcore)) { + evt_err("producer lcore is not enabled"); + return -1; + } + + return 0; +} + +int order_test_setup(struct evt_test *test, struct evt_options *opt) { void *test_order; @@ -90,3 +139,49 @@ order_test_destroy(struct evt_test *test, struct evt_options *opt) rte_free(t->producer_flow_seq); rte_free(test->test_priv); } + +int +order_mempool_setup(struct evt_test *test, struct evt_options *opt) +{ + struct test_order *t = evt_test_priv(test); + + t->pool = rte_pktmbuf_pool_create(test->name, opt->pool_sz, + 256 /* Cache */, 0, + 512, /* Use very small mbufs */ + opt->socket_id); + if (t->pool == NULL) { + evt_err("failed to create mempool"); + return -ENOMEM; + } + + return 0; +} + +void +order_mempool_destroy(struct evt_test *test, struct evt_options *opt) +{ + RTE_SET_USED(opt); + struct test_order *t = evt_test_priv(test); + + rte_mempool_free(t->pool); +} + +void +order_eventdev_destroy(struct evt_test *test, struct evt_options *opt) +{ + RTE_SET_USED(test); + + rte_event_dev_stop(opt->dev_id); + rte_event_dev_close(opt->dev_id); +} + +void +order_opt_dump(struct evt_options *opt) +{ + evt_dump_producer_lcore(opt); + evt_dump("nb_wrker_lcores", "%d", evt_nr_active_lcores(opt->wlcores)); + evt_dump_worker_lcores(opt); + evt_dump("nb_evdev_ports", "%d", order_nb_event_ports(opt)); +} + + diff --git a/app/test-eventdev/test_order_common.h b/app/test-eventdev/test_order_common.h index a9dfb647a..ccddef6fb 100644 --- a/app/test-eventdev/test_order_common.h +++ b/app/test-eventdev/test_order_common.h @@ -84,7 +84,19 @@ struct test_order { struct evt_options *opt; } __rte_cache_aligned; +static inline int +order_nb_event_ports(struct evt_options *opt) +{ + return evt_nr_active_lcores(opt->wlcores) + 1 /* producer */; +} + +int order_test_result(struct evt_test *test, struct evt_options *opt); +int order_opt_check(struct evt_options *opt); int order_test_setup(struct evt_test *test, struct evt_options *opt); +int order_mempool_setup(struct evt_test *test, struct evt_options *opt); void order_test_destroy(struct evt_test *test, struct evt_options *opt); +void order_opt_dump(struct evt_options *opt); +void order_mempool_destroy(struct evt_test *test, struct evt_options *opt); +void order_eventdev_destroy(struct evt_test *test, struct evt_options *opt); #endif /* _TEST_ORDER_COMMON_ */