From patchwork Sat Mar 16 20:27:36 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pavan Nikhilesh Bhagavatula X-Patchwork-Id: 51243 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 6DCDA11A4; Sat, 16 Mar 2019 21:27:46 +0100 (CET) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id 08561201 for ; Sat, 16 Mar 2019 21:27:44 +0100 (CET) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x2GKKNkU022067; Sat, 16 Mar 2019 13:27:44 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : content-type : content-transfer-encoding : mime-version; s=pfpt0818; bh=e90M+ecDm37uqcnqlgVl2bc2BUSN9qHZNhntdy8tQfk=; b=qFVtxwLH99vlWjlu9Z6TjT5WPIP73TyrGvZsHTMenC8UN+VMOYHpFa+GDjHhcj2DdV8u rKiRX7OYXeWEw52dummsQYmlOhhshSjW9ctNn6gLTEyRj+Vfd4vg91P1EMs1VilGWLtO +mZqVV+xTQgiVQ6HIpSJtAXk7myxJn14pJ1UR/nj+Hiynxu+9i540BmUeSNZXZ17iaA7 iTzmrMcwYVYJ6j+6OFVFGsqrINFQq7qQOAL/+3qAzjDf7WHcH0CjAnnNJ1k/kZvxzT4Z MeR5ZjNzQ1ivWkFurF/63MLBy/I7E3yk8O+JLuJckQy+R8utgY3iow2nkT3Q6e3CH2al 5A== Received: from sc-exch02.marvell.com ([199.233.58.182]) by mx0b-0016f401.pphosted.com with ESMTP id 2r90njgwbg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sat, 16 Mar 2019 13:27:44 -0700 Received: from SC-EXCH01.marvell.com (10.93.176.81) by SC-EXCH02.marvell.com (10.93.176.82) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Sat, 16 Mar 2019 13:27:42 -0700 Received: from NAM02-BL2-obe.outbound.protection.outlook.com (104.47.38.54) by SC-EXCH01.marvell.com (10.93.176.81) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Sat, 16 Mar 2019 13:27:42 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector1-marvell-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=e90M+ecDm37uqcnqlgVl2bc2BUSN9qHZNhntdy8tQfk=; b=e67OMK1NhQTxHDx79LqxFALVKlKYwwD/pIRnRN5bUHkIRLFLGep6fzS8nSb1Z/FoDy0VaydAXuG4CjF0xOj+JCYGuN/dj6hAR66GPdfeQl8fHcgLJUWjqLhHffrT6w3kdYx6NE1rPA8pLEPVaNW8XkIRGfphqma7zE5EWzLpxVc= Received: from CY4PR1801MB1863.namprd18.prod.outlook.com (10.171.255.14) by CY4PR1801MB2008.namprd18.prod.outlook.com (10.171.255.149) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1686.22; Sat, 16 Mar 2019 20:27:36 +0000 Received: from CY4PR1801MB1863.namprd18.prod.outlook.com ([fe80::286d:5e93:974e:8bfa]) by CY4PR1801MB1863.namprd18.prod.outlook.com ([fe80::286d:5e93:974e:8bfa%2]) with mapi id 15.20.1709.011; Sat, 16 Mar 2019 20:27:36 +0000 From: Pavan Nikhilesh Bhagavatula To: Jerin Jacob Kollanukkaran , "erik.g.carrillo@intel.com" CC: "dev@dpdk.org" , Pavan Nikhilesh Bhagavatula Thread-Topic: [dpdk-dev] [PATCH 1/2] eventdev: check timer adapter status before start Thread-Index: AQHU3DaxKTqc3GIuyUG5w6OO5kz3/w== Date: Sat, 16 Mar 2019 20:27:36 +0000 Message-ID: <20190316202709.11346-1-pbhagavatula@marvell.com> Accept-Language: en-IN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: BMXPR01CA0026.INDPRD01.PROD.OUTLOOK.COM (2603:1096:b00:c::12) To CY4PR1801MB1863.namprd18.prod.outlook.com (2603:10b6:910:7a::14) x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.21.0 x-originating-ip: [115.113.156.3] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: c53964da-a412-4629-d2fa-08d6aa4dd3df x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(5600127)(711020)(4605104)(2017052603328)(7153060)(7193020); SRVR:CY4PR1801MB2008; x-ms-traffictypediagnostic: CY4PR1801MB2008: x-microsoft-exchange-diagnostics: =?iso-8859-1?Q?1; CY4PR1801MB2008; 23:tjWHUUSF4094WzwewCorP5QlPy2mJbG6ss2R2?= =?iso-8859-1?q?EkPC46VKYvTZXpVbkaeU6GkzT?= =?iso-8859-1?q?0uKLC3weYRJ+/UO6YdUkgDTMFQEcutttKMvA0HIwwF44fkDoiPw?= =?iso-8859-1?q?dbD45j5sKnr5ugpiPeN8IYkMw+EMDeIQ1OfuxmqmEWxxidpMDr6?= =?iso-8859-1?q?hhuUFvvR9bVMpfmiuJSpkNA22tE5YzjmzWq16iZ6ofiYvLKCFzA?= =?iso-8859-1?q?DutFuLx9smlwzZRDpOj0sB9OoWiBobevXPnNilyNEoF6vpSlAN/?= =?iso-8859-1?q?2QR1LZ6WSoq3IWuK1u2Wvkm/KzngA1kaxq42uAquCDLViY52RbS?= =?iso-8859-1?q?rLktFjUVpxrIfn/HJcNs6Qw2JL9UlX6HR8u+U30nH45D+33aaQU?= =?iso-8859-1?q?ii/DV8oFtadkLZeK1cuWagT042Trur741LrWhaWMNVQnosY23Ub?= =?iso-8859-1?q?UfL0SKRPgXFKJCT3WJpfw4wzlfvoWCw+ZOkf4UIPZ+92usg5DLs?= =?iso-8859-1?q?sEjaeuYW3yi9gLrAp+8hO4oSseAjUOKwKADolzpITVi6ePxxBNs?= =?iso-8859-1?q?QeJuTFV8EJ6cVbnDdnhK9yBHlWlrP65RmEMiy1MoEXtSqh1esIL?= =?iso-8859-1?q?Z7v+7RYBJQWAxDbrbGkLqLjjeqPL9ripvy3fp730yX0k0nBsEQL?= =?iso-8859-1?q?eE3fKBqMNPJRPR37QzSaa5Ef7O7IXOiN3kIAyt1yzX4vvCfw9Kx?= =?iso-8859-1?q?pqlNi0PbUy1BmwIz23KNPIy8yUbGLCb8B+dgOJ6MOLmZJDcMKmi?= =?iso-8859-1?q?sgbzpkt4tOyw578S4VHRJwBJ6gT7DXdeLCiOf6WgRW3EOx/mW2w?= =?iso-8859-1?q?/AaFbEmUGyPe4S2qWSLgYrL3OE6DZr4Ah1odqNnnvQ+YYtmmKLr?= =?iso-8859-1?q?QAYtJ56m7gkXZCsoFT3ehq4czu/kn4DWzLUe9FOZnLBm/qP3poV?= =?iso-8859-1?q?QPTjiceeXOr6tt1r+GyP1HerLc8KzlfJxdyzPnyKU5cqxXkISox?= =?iso-8859-1?q?FvDlJ/tOV9RyipSVCBwoBb4gMqB2sOxM1vCtL0XK/G3rBdV3u0i?= =?iso-8859-1?q?usIh4skP4HHoTxd6FtpDbriXihMbCbq5DsKC2CGcs/K+Bb2GOXR?= =?iso-8859-1?q?pEKa7eE9u9HBCs/DcKif12hLezCzqmS2bxfrZE84W+FLHaDwdBJ?= =?iso-8859-1?q?ph0p9m3gxE02lDjcO5dt5C6ehEkJyX3NetsQ5Ebqm7is6hQfpW7?= =?iso-8859-1?q?Ooh29W3W3qxEen0yvjA5tEqh++DAQCfq5DBzkNEsK/h0WIw4oKZ?= =?iso-8859-1?q?qwh57gMxT+YusZVGZb85nVYno4DkWzhl/qzzr7s/CARy8eARDbM?= =?iso-8859-1?q?iuQ=3D=3D?= x-microsoft-antispam-prvs: x-forefront-prvs: 09781D4C35 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(346002)(396003)(136003)(39830400003)(376002)(366004)(199004)(189003)(476003)(102836004)(305945005)(36756003)(4326008)(55236004)(54906003)(66066001)(6512007)(52116002)(8936002)(386003)(99286004)(256004)(26005)(110136005)(2906002)(14454004)(5660300002)(14444005)(81156014)(478600001)(81166006)(107886003)(1076003)(6486002)(25786009)(2501003)(8676002)(7736002)(6506007)(105586002)(2616005)(316002)(486006)(6116002)(97736004)(53936002)(68736007)(71200400001)(6436002)(71190400001)(3846002)(86362001)(186003)(50226002)(106356001); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR1801MB2008; H:CY4PR1801MB1863.namprd18.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: marvell.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: If3u4rcwmr0sTVVqRhnOeqb+PS/gud6d75xLjKXj3YwpF+0iWnA7BHGPRNf5o6lxh3yRgfXUkwwVqbt9FyM50zk9gphsytVGDeqUcQPyssOBfgXd4eDlBT70mazA974vzc87LwGB7Vp7wIUvDrimr90H6NwEjWD9Hc/1e8bqdFyXkEuy7NSkpU9eDN50gLRgQX7G3lfcgNPFMko5zV2j08ZxqHxvAB0lqaRMjeV0A6j8oJMtQ06WxQd0SdGE2QI9BWZD94gwoaY4tk1x6zh5Z52oh3mMlj0HYtggU8yRIvWdVQ7+nQw/TOuHPUxlANLrjSPUbSqXjVmJbfpDSTJrnMi2M02uJ1IHgRT/DrWRRjvyPZmVAQnJE/ecJ9BjW7Rk3Ej1EXpyXtLdDrwIN6ieSyGrk09PGdXvYZnUHpG/bPQ= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: c53964da-a412-4629-d2fa-08d6aa4dd3df X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Mar 2019 20:27:36.7391 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR1801MB2008 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-03-16_16:, , signatures=0 Subject: [dpdk-dev] [PATCH 1/2] eventdev: check timer adapter status before start 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" From: Pavan Nikhilesh Check if timer adapter is already started before starting it. Update the unit test accordingly. Signed-off-by: Pavan Nikhilesh Acked-by: Erik Gabriel Carrillo --- app/test/test_event_timer_adapter.c | 4 ++-- lib/librte_eventdev/rte_event_timer_adapter.c | 6 ++++++ lib/librte_eventdev/rte_event_timer_adapter.h | 1 + 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/app/test/test_event_timer_adapter.c b/app/test/test_event_timer_adapter.c index a45b7d195..d4b78e093 100644 --- a/app/test/test_event_timer_adapter.c +++ b/app/test/test_event_timer_adapter.c @@ -1015,8 +1015,8 @@ adapter_start(void) TEST_ASSERT_SUCCESS(_timdev_setup(180 * NSECPERSEC, NSECPERSEC / 10), "Failed to start adapter"); - TEST_ASSERT_SUCCESS(rte_event_timer_adapter_start(timdev), - "Failed to repeatedly start adapter"); + TEST_ASSERT_EQUAL(rte_event_timer_adapter_start(timdev), -EALREADY, + "Timer adapter started without call to stop."); return TEST_SUCCESS; } diff --git a/lib/librte_eventdev/rte_event_timer_adapter.c b/lib/librte_eventdev/rte_event_timer_adapter.c index 79070d484..575da041b 100644 --- a/lib/librte_eventdev/rte_event_timer_adapter.c +++ b/lib/librte_eventdev/rte_event_timer_adapter.c @@ -261,6 +261,12 @@ rte_event_timer_adapter_start(const struct rte_event_timer_adapter *adapter) ADAPTER_VALID_OR_ERR_RET(adapter, -EINVAL); FUNC_PTR_OR_ERR_RET(adapter->ops->start, -EINVAL); + if (adapter->data->started) { + EVTIM_LOG_ERR("event timer adapter %"PRIu8" already started", + adapter->data->id); + return -EALREADY; + } + ret = adapter->ops->start(adapter); if (ret < 0) return ret; diff --git a/lib/librte_eventdev/rte_event_timer_adapter.h b/lib/librte_eventdev/rte_event_timer_adapter.h index db98dec46..0b10a7ab3 100644 --- a/lib/librte_eventdev/rte_event_timer_adapter.h +++ b/lib/librte_eventdev/rte_event_timer_adapter.h @@ -339,6 +339,7 @@ rte_event_timer_adapter_get_info( * - -EINVAL if adapter identifier invalid * - -ENOENT if software adapter but no service core mapped * - -ENOTSUP if software adapter and more than one service core mapped + * - -EALREADY if adapter has already been started */ int __rte_experimental rte_event_timer_adapter_start( From patchwork Sat Mar 16 20:27:39 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pavan Nikhilesh Bhagavatula X-Patchwork-Id: 51244 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 0FC113977; Sat, 16 Mar 2019 21:27:51 +0100 (CET) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by dpdk.org (Postfix) with ESMTP id E766B239 for ; Sat, 16 Mar 2019 21:27:48 +0100 (CET) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x2GKLm3w006381; Sat, 16 Mar 2019 13:27:47 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=pfpt0818; bh=kUNIoA7KKryBB4PQrkG0dD0EqZw4T/5TdYNJcoNFG+k=; b=NLMvGoE2IL0Q5Sss/fjhdx4o6sUAN5oRcKO//CQZL0Jyhkwh8P4mYy8H63BGboGfKVm1 x0F8sIj7kQGEniPpHHKJUmxKIhZWGaKuUx+qoGKSQ5/iD1y49V8rZCHtxk+Zh60cZVNm dO48iWqZ0qxGOv7d22kWCEaEvQcV9LXrknDD5fZbdWtOjHAtrQ+gmsdYXN1OR8XECLk3 w+43SJokHQfjdCp79QCNQ7yieChxEDMTblZycnkYCzVDHEAbL/FqUEd65I+/DZ9lnaZK s8lF/9fwsy5lYBgKsTmTihxk+SA3eQKgJTIno5axAzOJyHVnArV2B03W7IjGniZT7jIM 5A== Received: from sc-exch03.marvell.com ([199.233.58.183]) by mx0a-0016f401.pphosted.com with ESMTP id 2r8xgn1bax-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sat, 16 Mar 2019 13:27:47 -0700 Received: from SC-EXCH02.marvell.com (10.93.176.82) by SC-EXCH03.marvell.com (10.93.176.83) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Sat, 16 Mar 2019 13:27:41 -0700 Received: from NAM05-BY2-obe.outbound.protection.outlook.com (104.47.50.52) by SC-EXCH02.marvell.com (10.93.176.82) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Sat, 16 Mar 2019 13:27:40 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector1-marvell-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kUNIoA7KKryBB4PQrkG0dD0EqZw4T/5TdYNJcoNFG+k=; b=ETADdNff3Y/LfyZJCqusMVftESur1AxtDNIxWTnRZrNDHEE+ZmWhD2ZEsqdfTOlYB5Pw21V3I4Zj6YSauxsgQgSKoE1bN+ypgsF3pXjCUPiRcBEXib9JdvHfVUBrYEsJ3xktPomzGXDKRQddJKhybcUS3vp2tHuOdAfg9RV4nKY= Received: from CY4PR1801MB1863.namprd18.prod.outlook.com (10.171.255.14) by CY4PR1801MB1992.namprd18.prod.outlook.com (10.171.255.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1709.14; Sat, 16 Mar 2019 20:27:39 +0000 Received: from CY4PR1801MB1863.namprd18.prod.outlook.com ([fe80::286d:5e93:974e:8bfa]) by CY4PR1801MB1863.namprd18.prod.outlook.com ([fe80::286d:5e93:974e:8bfa%2]) with mapi id 15.20.1709.011; Sat, 16 Mar 2019 20:27:39 +0000 From: Pavan Nikhilesh Bhagavatula To: Jerin Jacob Kollanukkaran , "erik.g.carrillo@intel.com" CC: "dev@dpdk.org" , Pavan Nikhilesh Bhagavatula Thread-Topic: [dpdk-dev] [PATCH 2/2] test/event_timer: improve unit test compatability Thread-Index: AQHU3DazfFnpRuBHYU6dLI42eOmoNA== Date: Sat, 16 Mar 2019 20:27:39 +0000 Message-ID: <20190316202709.11346-2-pbhagavatula@marvell.com> References: <20190316202709.11346-1-pbhagavatula@marvell.com> In-Reply-To: <20190316202709.11346-1-pbhagavatula@marvell.com> Accept-Language: en-IN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: BMXPR01CA0026.INDPRD01.PROD.OUTLOOK.COM (2603:1096:b00:c::12) To CY4PR1801MB1863.namprd18.prod.outlook.com (2603:10b6:910:7a::14) x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.21.0 x-originating-ip: [115.113.156.3] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 449994ed-e61b-4d28-5fd8-08d6aa4dd5aa x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(5600127)(711020)(4605104)(2017052603328)(7153060)(7193020); SRVR:CY4PR1801MB1992; x-ms-traffictypediagnostic: CY4PR1801MB1992: x-microsoft-antispam-prvs: x-forefront-prvs: 09781D4C35 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(346002)(366004)(136003)(39830400003)(396003)(376002)(199004)(189003)(446003)(7736002)(8676002)(76176011)(71190400001)(6116002)(25786009)(4326008)(71200400001)(256004)(102836004)(3846002)(6506007)(14444005)(26005)(386003)(55236004)(54906003)(5660300002)(86362001)(105586002)(81166006)(106356001)(2501003)(2906002)(110136005)(36756003)(305945005)(107886003)(8936002)(6512007)(99286004)(81156014)(1076003)(316002)(6436002)(6486002)(14454004)(97736004)(186003)(50226002)(66066001)(478600001)(2616005)(476003)(11346002)(68736007)(486006)(53936002)(52116002); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR1801MB1992; H:CY4PR1801MB1863.namprd18.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: marvell.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: 634uvmxklGBaIk3ccckiNx8hq7BfVuKLm1KjW7YJ1evgZutRrpaf8NJirEUM39uaTavtQk4JVdS7pZEPb8eh3DWRP6X7AlBD0kMjhUOlV384LkVf2TWUlmoAlR9BbMCvtCxDrxfL4kvSA0Hlwg3IBkt0ryvzUBFCI0BL8HJd3t4Af7llOcHkBHU7cMxMGBlfwCJgAjeWIS1TzM67EH7LR8Zh55vvLO0WCJSY84GQdwE7RbQX3YQBvQ/TDJIEJEsqB2y5sUJloCFlNMJea7f9zNT0KwZs9QtanUEKhh/X5x2koWA/XFOb5IqGt1qSzxV/xWGsDJs13u3ktCJVNzEsd7x1Hm/MCA/hhgM0OH8t7SE2jukmmL4/SYPwxhOsFCb7p73D95WZMfNaZK3hlJ0H3oK4M9uYW1wbl18tRL+lC2U= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 449994ed-e61b-4d28-5fd8-08d6aa4dd5aa X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Mar 2019 20:27:39.7473 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR1801MB1992 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-03-16_16:, , signatures=0 Subject: [dpdk-dev] [PATCH 2/2] test/event_timer: improve unit test compatability 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" From: Pavan Nikhilesh Check if eventdev is open system eventdevs i.e. max_num_events = -1 before asserting. Allow event timer adapter to adjust the resolution using RTE_EVENT_TIMER_ADAPTER_F_ADJUST_RES and re-calculate timeout ticks based on the adjusted resolution. Signed-off-by: Pavan Nikhilesh Acked-by: Erik Gabriel Carrillo --- app/test/test_event_timer_adapter.c | 61 +++++++++++++++++------------ 1 file changed, 37 insertions(+), 24 deletions(-) diff --git a/app/test/test_event_timer_adapter.c b/app/test/test_event_timer_adapter.c index d4b78e093..742ca8181 100644 --- a/app/test/test_event_timer_adapter.c +++ b/app/test/test_event_timer_adapter.c @@ -42,8 +42,13 @@ static struct rte_event_timer_adapter *timdev; static struct rte_mempool *eventdev_test_mempool; static struct rte_ring *timer_producer_ring; static uint64_t global_bkt_tck_ns; +static uint64_t global_info_bkt_tck_ns; static volatile uint8_t arm_done; +#define CALC_TICKS(tks) \ + ((tks * global_bkt_tck_ns) / global_info_bkt_tck_ns) + + static bool using_services; static uint32_t test_lcore1; static uint32_t test_lcore2; @@ -80,7 +85,8 @@ eventdev_setup(void) ret = rte_event_dev_info_get(evdev, &info); TEST_ASSERT_SUCCESS(ret, "Failed to get event dev info"); - TEST_ASSERT(info.max_num_events >= (int32_t)MAX_TIMERS, + TEST_ASSERT(info.max_num_events < 0 || + info.max_num_events >= (int32_t)MAX_TIMERS, "ERROR max_num_events=%d < max_events=%d", info.max_num_events, MAX_TIMERS); @@ -276,12 +282,14 @@ test_port_conf_cb(uint16_t id, uint8_t event_dev_id, uint8_t *event_port_id, static int _timdev_setup(uint64_t max_tmo_ns, uint64_t bkt_tck_ns) { + struct rte_event_timer_adapter_info info; struct rte_event_timer_adapter_conf config = { .event_dev_id = evdev, .timer_adapter_id = TEST_ADAPTER_ID, .timer_tick_ns = bkt_tck_ns, .max_tmo_ns = max_tmo_ns, .nb_timers = MAX_TIMERS * 10, + .flags = RTE_EVENT_TIMER_ADAPTER_F_ADJUST_RES, }; uint32_t caps = 0; const char *pool_name = "timdev_test_pool"; @@ -317,6 +325,10 @@ _timdev_setup(uint64_t max_tmo_ns, uint64_t bkt_tck_ns) return TEST_FAILED; } + rte_event_timer_adapter_get_info(timdev, &info); + + global_info_bkt_tck_ns = info.min_resolution_ns; + return TEST_SUCCESS; } @@ -384,10 +396,11 @@ test_timer_state(void) .state = RTE_EVENT_TIMER_NOT_ARMED, }; + rte_mempool_get(eventdev_test_mempool, (void **)&ev_tim); *ev_tim = tim; ev_tim->ev.event_ptr = ev_tim; - ev_tim->timeout_ticks = 120; + ev_tim->timeout_ticks = CALC_TICKS(120); TEST_ASSERT_EQUAL(rte_event_timer_arm_burst(timdev, &ev_tim, 1), 0, "Armed timer exceeding max_timeout."); @@ -396,7 +409,7 @@ test_timer_state(void) RTE_EVENT_TIMER_ERROR_TOOLATE, ev_tim->state); ev_tim->state = RTE_EVENT_TIMER_NOT_ARMED; - ev_tim->timeout_ticks = 10; + ev_tim->timeout_ticks = CALC_TICKS(10); TEST_ASSERT_EQUAL(rte_event_timer_arm_burst(timdev, &ev_tim, 1), 1, "Failed to arm timer with proper timeout."); @@ -412,7 +425,7 @@ test_timer_state(void) "Armed timer failed to trigger."); ev_tim->state = RTE_EVENT_TIMER_NOT_ARMED; - ev_tim->timeout_ticks = 90; + ev_tim->timeout_ticks = CALC_TICKS(90); TEST_ASSERT_EQUAL(rte_event_timer_arm_burst(timdev, &ev_tim, 1), 1, "Failed to arm timer with proper timeout."); TEST_ASSERT_EQUAL(rte_event_timer_cancel_burst(timdev, &ev_tim, 1), @@ -438,7 +451,7 @@ _arm_timers(uint64_t timeout_tcks, uint64_t timers) .ev.priority = RTE_EVENT_DEV_PRIORITY_NORMAL, .ev.event_type = RTE_EVENT_TYPE_TIMER, .state = RTE_EVENT_TIMER_NOT_ARMED, - .timeout_ticks = timeout_tcks, + .timeout_ticks = CALC_TICKS(timeout_tcks), }; for (i = 0; i < timers; i++) { @@ -539,7 +552,7 @@ _arm_timers_burst(uint64_t timeout_tcks, uint64_t timers) .ev.priority = RTE_EVENT_DEV_PRIORITY_NORMAL, .ev.event_type = RTE_EVENT_TYPE_TIMER, .state = RTE_EVENT_TIMER_NOT_ARMED, - .timeout_ticks = timeout_tcks, + .timeout_ticks = CALC_TICKS(timeout_tcks), }; for (i = 0; i < timers / MAX_BURST; i++) { @@ -608,7 +621,7 @@ test_timer_cancel(void) .ev.priority = RTE_EVENT_DEV_PRIORITY_NORMAL, .ev.event_type = RTE_EVENT_TYPE_TIMER, .state = RTE_EVENT_TIMER_NOT_ARMED, - .timeout_ticks = 20, + .timeout_ticks = CALC_TICKS(20), }; for (i = 0; i < MAX_TIMERS; i++) { @@ -650,7 +663,7 @@ _cancel_producer(uint64_t timeout_tcks, uint64_t timers) .ev.priority = RTE_EVENT_DEV_PRIORITY_NORMAL, .ev.event_type = RTE_EVENT_TYPE_TIMER, .state = RTE_EVENT_TIMER_NOT_ARMED, - .timeout_ticks = timeout_tcks, + .timeout_ticks = CALC_TICKS(timeout_tcks), }; for (i = 0; i < timers; i++) { @@ -689,7 +702,7 @@ _cancel_producer_burst(uint64_t timeout_tcks, uint64_t timers) .ev.priority = RTE_EVENT_DEV_PRIORITY_NORMAL, .ev.event_type = RTE_EVENT_TYPE_TIMER, .state = RTE_EVENT_TIMER_NOT_ARMED, - .timeout_ticks = timeout_tcks, + .timeout_ticks = CALC_TICKS(timeout_tcks), }; int arm_count = 0; @@ -870,7 +883,7 @@ test_timer_cancel_random(void) .ev.priority = RTE_EVENT_DEV_PRIORITY_NORMAL, .ev.event_type = RTE_EVENT_TYPE_TIMER, .state = RTE_EVENT_TIMER_NOT_ARMED, - .timeout_ticks = 20, + .timeout_ticks = CALC_TICKS(20), }; for (i = 0; i < MAX_TIMERS; i++) { @@ -917,7 +930,7 @@ adapter_create(void) .timer_tick_ns = NSECPERSEC / 10, .max_tmo_ns = 180 * NSECPERSEC, .nb_timers = MAX_TIMERS, - .flags = 0, + .flags = RTE_EVENT_TIMER_ADAPTER_F_ADJUST_RES, }; uint32_t caps = 0; @@ -1058,7 +1071,7 @@ stat_inc_reset_ev_enq(void) .ev.priority = RTE_EVENT_DEV_PRIORITY_NORMAL, .ev.event_type = RTE_EVENT_TYPE_TIMER, .state = RTE_EVENT_TIMER_NOT_ARMED, - .timeout_ticks = 5, // expire in .5 sec + .timeout_ticks = CALC_TICKS(5), // expire in .5 sec }; ret = rte_mempool_get_bulk(eventdev_test_mempool, (void **)evtims, @@ -1151,7 +1164,7 @@ event_timer_arm(void) .ev.priority = RTE_EVENT_DEV_PRIORITY_NORMAL, .ev.event_type = RTE_EVENT_TYPE_TIMER, .state = RTE_EVENT_TIMER_NOT_ARMED, - .timeout_ticks = 5, // expire in .5 sec + .timeout_ticks = CALC_TICKS(5), // expire in .5 sec }; rte_mempool_get(eventdev_test_mempool, (void **)&evtim); @@ -1208,7 +1221,7 @@ event_timer_arm_double(void) .ev.priority = RTE_EVENT_DEV_PRIORITY_NORMAL, .ev.event_type = RTE_EVENT_TYPE_TIMER, .state = RTE_EVENT_TIMER_NOT_ARMED, - .timeout_ticks = 5, // expire in .5 sec + .timeout_ticks = CALC_TICKS(5), // expire in .5 sec }; rte_mempool_get(eventdev_test_mempool, (void **)&evtim); @@ -1267,7 +1280,7 @@ event_timer_arm_expiry(void) /* Set up an event timer */ *evtim = init_tim; - evtim->timeout_ticks = 30, // expire in 3 secs + evtim->timeout_ticks = CALC_TICKS(30), // expire in 3 secs evtim->ev.event_ptr = evtim; ret = rte_event_timer_arm_burst(adapter, &evtim, 1); @@ -1327,7 +1340,7 @@ event_timer_arm_rearm(void) /* Set up a timer */ *evtim = init_tim; - evtim->timeout_ticks = 1; // expire in 0.1 sec + evtim->timeout_ticks = CALC_TICKS(1); // expire in 0.1 sec evtim->ev.event_ptr = evtim; /* Arm it */ @@ -1388,7 +1401,7 @@ event_timer_arm_max(void) .ev.priority = RTE_EVENT_DEV_PRIORITY_NORMAL, .ev.event_type = RTE_EVENT_TYPE_TIMER, .state = RTE_EVENT_TIMER_NOT_ARMED, - .timeout_ticks = 5, // expire in .5 sec + .timeout_ticks = CALC_TICKS(5), // expire in .5 sec }; ret = rte_mempool_get_bulk(eventdev_test_mempool, (void **)evtims, @@ -1456,7 +1469,7 @@ event_timer_arm_invalid_sched_type(void) .ev.priority = RTE_EVENT_DEV_PRIORITY_NORMAL, .ev.event_type = RTE_EVENT_TYPE_TIMER, .state = RTE_EVENT_TIMER_NOT_ARMED, - .timeout_ticks = 5, // expire in .5 sec + .timeout_ticks = CALC_TICKS(5), // expire in .5 sec }; if (!using_services) @@ -1498,7 +1511,7 @@ event_timer_arm_invalid_timeout(void) .ev.priority = RTE_EVENT_DEV_PRIORITY_NORMAL, .ev.event_type = RTE_EVENT_TYPE_TIMER, .state = RTE_EVENT_TIMER_NOT_ARMED, - .timeout_ticks = 5, // expire in .5 sec + .timeout_ticks = CALC_TICKS(5), // expire in .5 sec }; rte_mempool_get(eventdev_test_mempool, (void **)&evtim); @@ -1521,7 +1534,7 @@ event_timer_arm_invalid_timeout(void) *evtim = init_tim; evtim->ev.event_ptr = evtim; - evtim->timeout_ticks = 1801; // timeout too big + evtim->timeout_ticks = CALC_TICKS(1801); // timeout too big ret = rte_event_timer_arm_burst(timdev, &evtim, 1); TEST_ASSERT_EQUAL(ret, 0, "Expected to fail timer arm with invalid " @@ -1569,7 +1582,7 @@ event_timer_cancel(void) /* Set up a timer */ *evtim = init_tim; evtim->ev.event_ptr = evtim; - evtim->timeout_ticks = 30; // expire in 3 sec + evtim->timeout_ticks = CALC_TICKS(30); // expire in 3 sec /* Check that cancelling an inited but unarmed timer fails */ ret = rte_event_timer_cancel_burst(adapter, &evtim, 1); @@ -1619,7 +1632,7 @@ event_timer_cancel_double(void) .ev.priority = RTE_EVENT_DEV_PRIORITY_NORMAL, .ev.event_type = RTE_EVENT_TYPE_TIMER, .state = RTE_EVENT_TIMER_NOT_ARMED, - .timeout_ticks = 5, // expire in .5 sec + .timeout_ticks = CALC_TICKS(5), // expire in .5 sec }; rte_mempool_get(eventdev_test_mempool, (void **)&evtim); @@ -1631,7 +1644,7 @@ event_timer_cancel_double(void) /* Set up a timer */ *evtim = init_tim; evtim->ev.event_ptr = evtim; - evtim->timeout_ticks = 30; // expire in 3 sec + evtim->timeout_ticks = CALC_TICKS(30); // expire in 3 sec ret = rte_event_timer_arm_burst(adapter, &evtim, 1); TEST_ASSERT_EQUAL(ret, 1, "Failed to arm event timer: %s\n", @@ -1716,7 +1729,7 @@ adapter_create_max(void) .timer_tick_ns = NSECPERSEC / 10, .max_tmo_ns = 180 * NSECPERSEC, .nb_timers = MAX_TIMERS, - .flags = 0, + .flags = RTE_EVENT_TIMER_ADAPTER_F_ADJUST_RES, }; if (!using_services)