From patchwork Fri Jan 12 16:44:11 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pavan Nikhilesh X-Patchwork-Id: 33682 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 89F511B010; Fri, 12 Jan 2018 17:45:30 +0100 (CET) Received: from NAM02-BL2-obe.outbound.protection.outlook.com (mail-bl2nam02on0080.outbound.protection.outlook.com [104.47.38.80]) by dpdk.org (Postfix) with ESMTP id 55C77199B0 for ; Fri, 12 Jan 2018 17:45:28 +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=JtvoTRaSIhSBFp2QCYctwW00d35MUx4NagDJEi1di+Y=; b=T6Ugd5uM+OzUTuc6zldZcdUZiyVS1wDdFLEhgVKYW+kd8GPDJTiScBn9xysLNJmmOTWHd0ovEXLgLqjLg9nrxglqjCsEHSvghlfMt+x7Ls7zs2j+yl6bD+RcegqggDh/uOkrE7TVo32fLNOaHaoX+p6/aOI0ByGWOeSpHcwaXxQ= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Pavan.Bhagavatula@cavium.com; Received: from Pavan-LT.caveonetworks.com (119.82.125.132) by DM5PR07MB3465.namprd07.prod.outlook.com (10.164.153.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.386.5; Fri, 12 Jan 2018 16:45:13 +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: Fri, 12 Jan 2018 22:14:11 +0530 Message-Id: <20180112164416.21374-8-pbhagavatula@caviumnetworks.com> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20180112164416.21374-1-pbhagavatula@caviumnetworks.com> References: <20171130072406.15605-1-pbhagavatula@caviumnetworks.com> <20180112164416.21374-1-pbhagavatula@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [119.82.125.132] X-ClientProxiedBy: YQXPR0101CA0023.CANPRD01.PROD.OUTLOOK.COM (52.132.74.164) To DM5PR07MB3465.namprd07.prod.outlook.com (10.164.153.20) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 654f0507-05d2-4486-5d54-08d559dbdc43 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020084)(4652020)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:DM5PR07MB3465; X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3465; 3:Scu0sjxxbZ7SfBKvZ9jiqwsDyoiD1Hb+FJE85hGbCORcMaE9MrMtCgcOxUVoiaHrEgtgeKWjE3lp3t3Kyk/9j8oMVWCi+2oEo9zkJ+q2++8nJm+BZg5htcWkn/7LMiKBEamuLb55ZZgwT1nK9R5zGuR329hsgSfIYqLmK3O2zAngBhM0/KvJu95CUPIM4IrIpeneHHopzZWemZGP5S46OxqNvZNGo+r/1+LeWH3VKyZ/xsnsIq4hy+8sXd7dL2Jn; 25:fCZu8ZK+ChpuIDwR6JZKsmpWgyqaXgCmN1sR1m4VuU+0hAWBlaBsRAlBEk5SAURfVrL1Xz/ohFHR4rXxFbuXb7jiYz/HWkuFLuQgqyqIRle2TiDaZ+k4Uaw3FPJ7DObzcO3Iqc/iVRHNeEvZt8tZUWUpWcW8GoJ7vRifiuRs6+LOEEzsBZjZaUodaTX86k50XXRwvREBbLMVg8ap5Zd81IDmKcSdH4AEW3bCG3xdADWOs943JysiMbXnt+PXxmn+zG4BjDQ1s8eIAmmL2953C+HExXZ9zzj15RQXiVJ83m6eu4r38X5zfIb5KMluMVNSeMKGfMS6np/exewdFOX2vA==; 31:wv8WmAG69j+0lJewxMKsjDwb9o5zkU/a/C1ECHaUMLt4by+FzRJJOGKE5OXlpOgY81hpf9hfkRnLzECwBaNxGG4M5W0l1LBnjAYHiV/5vCCzBWElCb/hTYgnPSX6vTw2kDrcETOc76uCbggb4K3pBgF4vo63N/qUE48mFIYwAL4YAmIdBAyMhq6Cg5eHK2yinDQIZlrWPMHHNzhO8QHINcM6rzAd/u/43ByMyK+ylCM= X-MS-TrafficTypeDiagnostic: DM5PR07MB3465: X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3465; 20:vLzgD8iaxmrAPCJLGVtklrTtYBURjts8/GQlIc9tVJ1AeZq3ZU7dedrFiYaisF4aaew4GT3mLV2MN27jfgVROKAVenEHXHTHGC278Ylxrp9ea2ibs+yJ9Xp9AV1POaFrNm+VrAZir9sxjwWEcWLmDfTaeZLgeSdexiCBfFj2XS/YBk4S4Lp3f+AQyeMGz5VbmPSoX9iSKpWXxyjFus8Erjjm4hE1vHvvXbdV4I6V4k4Zfn2tuXKxknD1yCp9Kbg2d98PEvXH42svXn3h6gqw8DVKYKYuP+i0woPeWN41W+Hsk/ocP4gcXT63wqAExW/vH/zwPOfp3AL21TbK8TnZuNm1Yu3OfiO18eI6uzbq4/blKauR3hQGy9yj/eTkoSpd+YfKeYU1/m4od6KmDkcGwBMmZdZEHpI9K9gO4LbJvQDexjxrbnRtSphwX5sSCUCQXxBMfNV3XtXcfu63TfvsfjCpS9BigbuzIS5HhOZl7J5qsqjyyQOps3PKU1QFzs+g28MDIanpgp8WQYTbxN5f2GHgW0RVn3Xje0JsRHgoYjSElXmo3MPd/W5JZsC90qX+Ki/ABM+N3bQ0Tlac+p5nTRMfzMa1pVKNiqtkRT8HqW0=; 4:rsAhw3JizQj3fXdkopjnqGA6bGU+5MDPNnzZ4SlXvKWWdhLa6Mo/ix1VoI5cFCR8M/eqyFmes/EV45kKQ2NMattVFsQ/fYIXeYEyJBCgJBpjzCILoOAuetd6kRZarE7GXfbuUHqJVhEeVnbqBnFQB2XfgG+bi69FrzAh0ytaq8irOxyISkvovOpaudfaSZsas80BGLK662pQ9qo3qBCIMvxREHXSECZuKsHRxbk384/Qt22fMhu/UoG1kl/6AavrEDahRYLfgGlMB3+6mBj6iQ== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040470)(2401047)(8121501046)(5005006)(3002001)(93006095)(10201501046)(3231023)(944501145)(6041268)(20161123560045)(20161123564045)(20161123558120)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011); SRVR:DM5PR07MB3465; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:DM5PR07MB3465; X-Forefront-PRVS: 0550778858 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39860400002)(346002)(39380400002)(376002)(396003)(366004)(189003)(199004)(50226002)(76176011)(8676002)(316002)(48376002)(53416004)(81156014)(53936002)(69596002)(16586007)(81166006)(59450400001)(386003)(16526018)(52116002)(6506007)(51416003)(1076002)(6486002)(2950100002)(105586002)(66066001)(6512007)(50466002)(106356001)(47776003)(4326008)(5660300001)(3846002)(42882006)(6116002)(7736002)(68736007)(97736004)(8656006)(478600001)(107886003)(8936002)(72206003)(36756003)(2906002)(305945005)(25786009)(42262002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR07MB3465; H:Pavan-LT.caveonetworks.com; 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; DM5PR07MB3465; 23:Dh4ceURhIKzQeGwLWBb9jkrGudUTUnOt62M0VSo63?= 8ksjh9072Urt2TMN6yk8g+OuaWTojP/9iAgILF3ORSbbSkEh5tIRqFAIkyndhWy/Bw9CfsyNcFdfY9hli17mCwK1fng8EBjl2mFGfwzH3Y6yoS8RTuj0wIxzpOjlgRwVNIKSXoMl6wxvuvvtBRymwVCGl7B35vKKbmt87/SDlspi/lR72XupqJw+gYRZvg4lbn2wCEKrpDGFBScfu3KtFb0KdnkAKW1qooBVE25y2irbK5r9+lBidwfgAUXpdnBSzVqhzf5qxE+AjhJZDi0CYBYPPj3tFkPxEmJ68MrnnUdtXoPYGfaFOan+Um0YOXtmLQdNbDKpVHLDOWcwugrYjSDCfDpUwDypfqT06EKrywZDBpDoxwHo+TXHZ2uJzNGUPwiJW+Gsrn6Lc+qq9a1SW+KLIpNzcmXzxBl4SSf++C6PTHUUPXwobCct6ZoFeCNtEyRWe1Cl6FYC4TBhaOHH54drW9d8OCxD6njMRVcSGXTaGChxn2mIqyb00jAlicGFhjqQozZL1AgU12scZ0RazcdJuORKOetqMpqqdk//Xttkk7WtZIciFTqvgUmC+RAms5RQkg41zv7FP1RpwAcpHudcR8Zi0BjFQiRU2JjSXqDKbsxe/Wttgd5V4lj1z1C40ixbV75h2dPq4q4WNgNlvQVO/WGvroUBu8ugKnDaYEIIuffMFmbnnhGvGFlKIiI/aB6P3ZLWk3NxepO7IPl7V+h9btxO5DA2kuwCrxX4qVRxuG9Xlk+hOcl4N08B7LD5rp6bEPspI74khTv/qOUVfZn+A3T2ur5BxIhDO2lpcc5wF5OYzTBVQUXsMhwgCIpAbeGjifmEvP4+C/251CP0Qc0k4VSLuAiuBl+1DYs0KrV3bXnrFv5nKeMjnOjsEOs6qiTX3/ci6AbqRekvm4D7CNSLV7nQMf3ar3jQ9ADsGP98kGgvy0C3EHmBtdywoiZhYvXU9jNDGcKl+2Z2+qdfZeHKuBct6YR2T93NhE7qWorhFmIBBZwyLDj9/aoNLKci9E7DQY7/NS0+6M287gqlpzoJIAVJ5Ka8Y7ZviuW+oXTWUFORgLNC+FydmqxihDoELLu4j6LWbvwOKq3rwVFTyVqXkx7Ta+v3C4wog2AmXdB5d0IZuqfrTcrlYTeUF9ZsbzQmC1r+Mv7cL+1NRRJ8YRW X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3465; 6:y9JY2mCT5f8kEpDrctwogl4jcesxKcBp4Sa28Q4Kqyl5Hw7ntCc+DI/3W8TwyrsQr1ppfkBV6arzUX6RbS7Og8WmlqNTPb+M88bSZbdi8UZLYt1B8ywIozM+8gYN4B9cbLMcmaSIBQPK9dcK7tCy4un8ikQzrcnXOmfPVRPYV4uP8HKwxUQd68jF/vEwfP9auYNgenN9InXR8aIK8cMD8iUR0JK1vw9qbrhQZcv3S20TgPkqw0UxLImqf4ovtdmivrr+VUZT1K5Z0lKLkU+vVOXLBVCDVNrmg10rx1C+5WHTI87zdSVxeZA3yeEhVHifpxy743d8r8aHJU9QyujbVHoGU7q6OeyQjhwD657A6UI=; 5:xmHHhftvD9CGjjy+eOrC9GwQMYNU1PDqAgVBLC7C2vQ15KERp6yDgKk07exQpwLzGylaLlhFktMnjjKOq5XvY2B7m+MqyAztIdh/KaTA6fNITnp4HymlI9vq6vZLeuKe2RfhbScdxwnXHOnLFDLcwFTNN8Hzs7XbFDoMmyu2FBU=; 24:rbmpmZ/MVB67QNtbpwc9AYg9SMKKih+sMXhom+BaHeM3nIioeycdJ/0kCld+ge2C2PopxlmCHyN/j5NDjwiuUDJEXSGnN7cSCeCFw/fNFCM=; 7:75OQHm9Xl2WTNrarUwouLWu32g0CT5uOHp0/e4IQD0WR5fl7KKDxjfAFCJ499Ify4hTcUpWDd86ypdJTgCWZ2f2uSWw4XgWObCcybomm++IA4HDwiJyIeaJHAb73SgpCGwuvUDhXlTtEgFsE9ursHSmxFE/D3IE+2u0NYjnzGthw77slaWqF9Sm2pfL3x+6Baz43W1uw0jbEZjVM5E1c6mei6EijQ7MyyAbg6PRUiHYT2ykhG5Gh59s4YoNUlBI8 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jan 2018 16:45:13.9967 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 654f0507-05d2-4486-5d54-08d559dbdc43 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR07MB3465 Subject: [dpdk-dev] [PATCH v4 08/13] 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);