From patchwork Tue Jan 16 17:46:00 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pavan Nikhilesh X-Patchwork-Id: 33845 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 [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 84AE11B328; Tue, 16 Jan 2018 18:48:05 +0100 (CET) Received: from NAM03-DM3-obe.outbound.protection.outlook.com (mail-dm3nam03on0046.outbound.protection.outlook.com [104.47.41.46]) by dpdk.org (Postfix) with ESMTP id A49F21B33C for ; Tue, 16 Jan 2018 18:48:03 +0100 (CET) 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=ZoBkJRm5MCc7uS9w4a2AoVc/OuNEXuotK/cldub70SE=; b=JSniX0CrC382ONWsdHurbv6LsuzF/264o7RcY9A3+wYngdBtsnapfdE0dze2/N8Wy4+8KGGOy0kLRFkUN4LeZZiz9vZUL01Z3lwzX9nrC8FtU6CqSI4JGgSTG63u3RslWqFlYwX/u4pvzoGL7q4rEFNBpHbnamU91+jHkbRPBsM= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Pavan.Bhagavatula@cavium.com; Received: from localhost.localdomain (111.93.218.67) by CY4PR07MB3464.namprd07.prod.outlook.com (10.171.252.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.407.7; Tue, 16 Jan 2018 17:47:54 +0000 From: Pavan Nikhilesh To: jerin.jacob@caviumnetworks.com, santosh.shukla@caviumnetworks.com, harry.van.haaren@intel.com, gage.eads@intel.com, hemant.agrawal@nxp.com, nipun.gupta@nxp.com, liang.j.ma@intel.com Cc: dev@dpdk.org, Pavan Nikhilesh Date: Tue, 16 Jan 2018 23:16:00 +0530 Message-Id: <20180116174607.10821-8-pbhagavatula@caviumnetworks.com> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20180116174607.10821-1-pbhagavatula@caviumnetworks.com> References: <20171130072406.15605-1-pbhagavatula@caviumnetworks.com> <20180116174607.10821-1-pbhagavatula@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: HK2PR02CA0158.apcprd02.prod.outlook.com (10.171.30.18) To CY4PR07MB3464.namprd07.prod.outlook.com (10.171.252.145) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b92ad045-b0e4-4f53-db9e-08d55d0947ef X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:CY4PR07MB3464; X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3464; 3:ND93p8uZYaG7BAKqDYiGohrUTYzXcUwwbjBy4mE33hY95n55D9hxYe3EwDZ0Th7HKrUq7WmYdLDrelb/Y7yho2wvxZHJijojPxrS2LmaEIGij4aaKB4F6dO2MQGoMKITPubsbA0kfyrEuvnfeiXmIq+tdCp/+yqStRJTxXb132usn1nnteBk/84M2Rx/pO/MImrNFg/yBVdEH/F0PfeW0Yx4G4PE6hgmT1wdIqvuzkL1EtIhCkCc21XqWDm+EpKO; 25:5ogK/2EKybXnL4/yJSjCwQuxaLw/lvjPpt0IizZkGqeH81Yv4mHsTEAQ+E9wlmLxR8LII1tkRGJlGCGYQ6mwrxSq7Tb0w4Ox+skHTqflEKdhX8IpJHBWV0jkDwMMuK77xCjjXRcgDRjgv7svO5w3THSweYGy9rkrTSyhJB7rvq7ZbFAVa8yw7V7EidLwqaH/LLeyZKZfxhCtA8RD1OjCKkelqLp+BChdNnckoIJLafQZC5dVIZA9K8H45nFikhi8Wip4Omelo/T0nPXey+hVntMbGcrnGbPRGMs7SFwJZMGyrIzO44pfDO7KsDtNZ5wBDv1Y8tXZdXuaZbijVBRuLA==; 31:qpn9XQQ8HRvxR/QqHz+F58mzwFtiRTOyHEylVYjkGS49vTnNFTVKdSTRfjGjtBLnO1ETT2gn4rA6w0oAdnP2dZTsIaZI6BMusuRGceHxuhBZbpmahmul1SR13f1B541Cn4MYruc/7Q4Sj6O4LOe1lgobFlez68fkzP2iBx7BIl5LGF5aIRPVh6aENI5EHmOGzkyKCxQOmRiiK8DHMt1n/E2Jjp7XQNft4Kf8wMudAIs= X-MS-TrafficTypeDiagnostic: CY4PR07MB3464: X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3464; 20:OaUu0S9SUxfcchUwO+y1ZcCTjmoZZ5MXJlb4N84d7uyRfRhWRe9kViskFIjG+vMlJ9y39M4tZTNZ4q/fbbZ+TSZ4fldPNRz2+S32OImt0Ue1/Vn+KT9EKYVa738yPPRJdqjUh9W6S2djKLksptSUGmD+TI+cLAKSpmuS+8olCzb+eQ56/terD1PyK3nk7dReY0eUgUBUuLmlH3mwCCP5YX4cFjpB3ST0qqdJbHjPVpONCSgFpJfxm0CQZ3JrbrlJStq4jb92kpfyWBdLPfc3DBjJy8d4dyTxR0bzQWrx29UZiSCaA2JuxkZ5ddkTSHGI1vLE60t81PII90yj1zMFzK9WGHOx9HrYI0tS/d9dGKRMm1KAk6F2/eF3JH8wJzV1zKRa3hC/xO/Rc5BGD9kH8ssbDtPio1Qq1uyHEQKSrvQ46XjQOCXTAf9EnNzbzTQ2v0/VasvWVjM8Ql+POu/w1JzYyPfg/Xlw4DTS0r13HnEePUrOGUUroSE2r6un+YEA0wZ/vBWzXOv7dpazTSUHE8fvy0DY9Hx+/HBRGN4NUsWnHqV1Z+XeYmq7B3IF/cJNWsdv92HL74LOxQHepGFAVC7M44O/QoI7S1M6JB85U58=; 4:uq558sN+4JP2KGCiTtwNnsG8cL5Jr4ZqhaZb8xeP2ys3OJtWAg3BTxhq3yEEx2zRbxYRihcqLngtbsD8u1PsIdZ6cjcnmQ/ATgGcLCNUfeSMtPMWGJWgDaqT/7Cw34RUnV6ScdLzLk/y/VR1M9rr0B3leihwnq6qJbouYsVFM4mIZcxNZSUmgNzCtn2bbbjX8cxgrTiSo/bmHK6IHP00V15D/vRVPcfGL4cEuJNB1punM2u/IL8TRpgPtqve9TCIv6BdBBSBhM1t3l6HudSydLArrbXTU0GzGlfUSZWdWy+fzSgisnMugETY/p4sPhlN X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(228905959029699); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040470)(2401047)(5005006)(8121501046)(3231023)(944501161)(93006095)(3002001)(10201501046)(6041268)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123560045)(20161123562045)(20161123558120)(6072148)(201708071742011); SRVR:CY4PR07MB3464; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:CY4PR07MB3464; X-Forefront-PRVS: 0554B1F54F X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6069001)(346002)(366004)(39860400002)(376002)(39380400002)(396003)(189003)(199004)(81166006)(97736004)(8676002)(6116002)(5009440100003)(52116002)(305945005)(8936002)(107886003)(1076002)(51416003)(81156014)(25786009)(8656006)(4326008)(50466002)(6486002)(5660300001)(3846002)(7736002)(50226002)(16526018)(68736007)(106356001)(26005)(76176011)(53936002)(6512007)(59450400001)(47776003)(48376002)(16586007)(386003)(6506007)(66066001)(72206003)(2950100002)(36756003)(2906002)(105586002)(478600001)(316002)(6666003)(42882006)(42262002); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR07MB3464; H:localhost.localdomain; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR07MB3464; 23:7rIrV812R2vpXvMOa1yf9Bsx4CK2HoKX1vY1ZqMgM?= mRHhbOAyQRkCvDP95ml0aIRJDmLET7a4/ssNt9YGLW5drB8NJKb0FllygILfenbajbi/73w9qFfbMDunKJver69UWpi+4FLKChO/kGeBJRAuNvOGXPsdO4/Xw4CBS0rNE0CYW2kS9P8bNXhvMMierR4mFqPZPmP22lg0wbJ14DS3dGPWQbVgdT1aDf+/Y6iPt3FJw2hMw3GYeqygZ4WOS5SAOO/kRx3wmEzFx95gb4Vyg2zoHizmHIImThhupZuiaXLog6qCSytWFUm/MebIm+utwX85O2ua6YOEspNl/zL3NNpxSJImQ5+alKN8ZTNQRXeIYsT3uE9waP2flDY2t8zepzAgyytmP5qH9uh4aiEif9q6upAZE0pSoCsDBpNOtYVXiK8F1y5nh3pZ61MlO4g9caZmAwMfOBsZ9F7zysChwQhjQ4eRaJDJ3TjsVxfuwMqSf5urOTkceZLnwS20EBlJZ1uJ6fntCUlsDhqxZy97xNCkRR3/4n0EXKpWY4JL4CBYFSDM0eVpIn+iRVgtZUTzuvKoaQ2Z/QZ8XGngFJZ/LtjTTNYAQFNbs+hVVWJZJkyu6se4aCbt2ly8+XufL38nIWja2cl5l1PNRKJcqMyMayDeGUd+5hDRfIA0c47zIBdwRoLjLhLwgr7CYQxFquaWVdCR2j28mvH8JrZqEb8dQN110kMHuUoLgKYysJs42tz9IV2hVpHl1StuX4ZVPweTeIkm5dxXTK9NldZYeMd2NyReMuxqHeuWi2jsyrHayZU8b6cC3V6hTk/B6Da2TeD+XJoUs6RjNQf+7x4EM+OuCeD39rsaz/xx+wZN1U6DfgvvJ9A1+SSVeHmpv8f4F89iYdt1J3i41cEtfavsSlIG8328Kv8wP0N63EkZTTC/VFxqoydkIHoTy4zY9WqfbxYJcJTrwkZuM4lk/BQkMhVl5VXa8eaBbAd0GXUPFPBEC0QOw4IxAIy4rp/LGkMSQKVCt1amoIFFQCbqd9Jf5MKCqIZCpYflv+X3Te1nfeoBAz6Cmmq+8vsy8qkQrlu7U5ycweLXLbki2AmPusbE5ziOaDFirNju433A+IEs/MTIeUFR97hRF/wa0P2NBpay/1LNWUal0KjjqgNJYI5b1wypNqxAIdd8+jQ4+RSPUChniV1DpQ9JlgKB5Efawg08ywN2c/C9NW+QbBF+2byu7vwEEDZILlzJ+3XKOmXKvP0jSA= X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3464; 6:QL6qmf5hHBtGGEz5w5l6Zp8KGPiiecPQdEVepiat0Z8iL3XhxsIu3+Qp/R+QHFmDMFO4peOZZplWimRIhaZz3zgewpRTxs2oHmLg57f9Fz1tHaqbgm/cnZIACyfUlMK/zAIzJyLMU6ZBPuRkPerK+VluS00XwHquRjVmxC/7Mj+wWFktuujJ4GTeZ9el3pw1toVem25bTdPHNrxuMV0RF1+Lx6unUPCxKtej4cSfz3m4E5/QHixG6Y3BjlQiEJWU7hnJ0YZd+KgQ286PQ9wlTspoKRqdoubzinLw+dctap9/OHHf2fOFRIyDCoCmTGpWqHbzLPTCysoVKFKpLCUZSbdCQHqGpQFI/9gWnP1HELI=; 5:zkg4HRzMd7nNFvxvHUkoNB5jowARc3azKC6MT0GNFY0aZMTwUsnKzhy4rCTCWQNeQ+/LM9rUVQ2CJEmohZe6FygEH/GuNwNiAv5d6FPJcX4OelmmP8N6Hsa64bBP2kLB5jciFEp9BLn3q0qUD+15MFGKOPG01ShuIJ2EC6bODLw=; 24:0ZyetZz9Q0zju5k5Gk/xAgSkwDWNEyOO3BWMd07QckFA7TfMHwyCNAbOUYWTgaHIawKRwhTBZDc4OJmbBT7rkMbj2maTw2cCoLaptqB4RMQ=; 7:ROskMf2JVYs4Gr6FZWbN3J7ZL367w7hDdCH+nomU8siMke7Gde1XIwmyW1RLzflkKkEcbC1MCnKVcmWiY4EGY2UpZ2wH8TBaBQ3RTas37KBdDFDUiy4Y+nF0gg6JGRyIQ6UCv4LB/O1JLQBXxJMtgDoef70+JFvaze4kWuvsoMbGfWG4GXiYvdCEempSj6L0TjQ5rHACiNLXXYtA0Y7XKPo3mzvd3sXzvEb4JJuDGcxMK54mjl0tRaNLcvI1hcpl SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jan 2018 17:47:54.6408 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b92ad045-b0e4-4f53-db9e-08d55d0947ef X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR07MB3464 Subject: [dpdk-dev] [PATCH v7 08/15] app/eventdev: launch pipeline lcores 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" The event master lcore's test termination and the logic to print the mpps are common for the queue and all types queue test. Move them as the common function. Signed-off-by: Pavan Nikhilesh Acked-by: Harry van Haaren --- app/test-eventdev/test_pipeline_common.c | 67 ++++++++++++++++++++++++++++++++ app/test-eventdev/test_pipeline_common.h | 2 + 2 files changed, 69 insertions(+) diff --git a/app/test-eventdev/test_pipeline_common.c b/app/test-eventdev/test_pipeline_common.c index 98df423ae..6cad9357b 100644 --- a/app/test-eventdev/test_pipeline_common.c +++ b/app/test-eventdev/test_pipeline_common.c @@ -90,6 +90,73 @@ pipeline_opt_dump(struct evt_options *opt, uint8_t nb_queues) evt_dump_producer_type(opt); } +static inline uint64_t +processed_pkts(struct test_pipeline *t) +{ + uint8_t i; + uint64_t total = 0; + + rte_smp_rmb(); + if (t->mt_unsafe) + total = t->tx_service.processed_pkts; + else + for (i = 0; i < t->nb_workers; i++) + total += t->worker[i].processed_pkts; + + return total; +} + +int +pipeline_launch_lcores(struct evt_test *test, struct evt_options *opt, + int (*worker)(void *)) +{ + int ret, lcore_id; + struct test_pipeline *t = evt_test_priv(test); + + int port_idx = 0; + /* launch workers */ + RTE_LCORE_FOREACH_SLAVE(lcore_id) { + if (!(opt->wlcores[lcore_id])) + continue; + + ret = rte_eal_remote_launch(worker, + &t->worker[port_idx], lcore_id); + if (ret) { + evt_err("failed to launch worker %d", lcore_id); + return ret; + } + port_idx++; + } + + uint64_t perf_cycles = rte_get_timer_cycles(); + const uint64_t perf_sample = rte_get_timer_hz(); + + static float total_mpps; + static uint64_t samples; + + uint64_t prev_pkts = 0; + + while (t->done == false) { + const uint64_t new_cycles = rte_get_timer_cycles(); + + if ((new_cycles - perf_cycles) > perf_sample) { + const uint64_t curr_pkts = processed_pkts(t); + + float mpps = (float)(curr_pkts - prev_pkts)/1000000; + + prev_pkts = curr_pkts; + perf_cycles = new_cycles; + total_mpps += mpps; + ++samples; + printf(CLGRN"\r%.3f mpps avg %.3f mpps"CLNRM, + mpps, total_mpps/samples); + fflush(stdout); + } + } + printf("\n"); + return 0; +} + int pipeline_opt_check(struct evt_options *opt, uint64_t nb_queues) { diff --git a/app/test-eventdev/test_pipeline_common.h b/app/test-eventdev/test_pipeline_common.h index acbf688fb..db2517baf 100644 --- a/app/test-eventdev/test_pipeline_common.h +++ b/app/test-eventdev/test_pipeline_common.h @@ -76,6 +76,8 @@ int pipeline_mempool_setup(struct evt_test *test, struct evt_options *opt); int pipeline_event_port_setup(struct evt_test *test, struct evt_options *opt, uint8_t *queue_arr, uint8_t nb_queues, const struct rte_event_port_conf p_conf); +int pipeline_launch_lcores(struct evt_test *test, struct evt_options *opt, + int (*worker)(void *)); void pipeline_opt_dump(struct evt_options *opt, uint8_t nb_queues); void pipeline_test_destroy(struct evt_test *test, struct evt_options *opt); void pipeline_eventdev_destroy(struct evt_test *test, struct evt_options *opt);