From patchwork Thu Jun 15 08:58:55 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nipun Gupta X-Patchwork-Id: 25341 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 08AE47D42; Thu, 15 Jun 2017 11:01:03 +0200 (CEST) Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0089.outbound.protection.outlook.com [104.47.42.89]) by dpdk.org (Postfix) with ESMTP id CA32F7D3F for ; Thu, 15 Jun 2017 11:01:00 +0200 (CEST) Received: from CY1PR03CA0016.namprd03.prod.outlook.com (10.174.128.26) by BY2PR0301MB0600.namprd03.prod.outlook.com (10.160.125.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1157.12; Thu, 15 Jun 2017 09:00:59 +0000 Received: from BL2FFO11FD027.protection.gbl (2a01:111:f400:7c09::163) by CY1PR03CA0016.outlook.office365.com (2603:10b6:600::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1178.14 via Frontend Transport; Thu, 15 Jun 2017 09:00:59 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=fail action=none header.from=nxp.com; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Received: from tx30smr01.am.freescale.net (192.88.168.50) by BL2FFO11FD027.mail.protection.outlook.com (10.173.161.106) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1157.12 via Frontend Transport; Thu, 15 Jun 2017 09:00:58 +0000 Received: from b27504-OptiPlex-790.ap.freescale.net (b27504-OptiPlex-790.ap.freescale.net [10.232.132.60]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id v5F8xWSn012830; Thu, 15 Jun 2017 02:00:55 -0700 From: Nipun Gupta To: CC: , , , , , , Nipun Gupta Date: Thu, 15 Jun 2017 14:28:55 +0530 Message-ID: <1497517136-11824-20-git-send-email-nipun.gupta@nxp.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1497517136-11824-1-git-send-email-nipun.gupta@nxp.com> References: <1495735361-4840-1-git-send-email-nipun.gupta@nxp.com> <1497517136-11824-1-git-send-email-nipun.gupta@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131419908591145234; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(336005)(39380400002)(39410400002)(39400400002)(39850400002)(39450400003)(39840400002)(39860400002)(2980300002)(1109001)(1110001)(339900001)(199003)(189002)(9170700003)(5003940100001)(48376002)(498600001)(50466002)(85426001)(36756003)(4326008)(2906002)(6916009)(8936002)(8656002)(53936002)(54906002)(8676002)(356003)(81166006)(105606002)(86362001)(189998001)(104016004)(76176999)(47776003)(2351001)(38730400002)(5660300001)(305945005)(50226002)(50986999)(110136004)(2950100002)(33646002)(106466001)(77096006); DIR:OUT; SFP:1101; SCL:1; SRVR:BY2PR0301MB0600; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; MLV:ovrnspm; A:1; MX:1; PTR:InfoDomainNonexistent; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11FD027; 1:s4oBSHFvR4ab2qRnyfgY7aVA/R4czqbiKTlT2HjgXrmHAXrhLqWxCPr12se6m1RW1l1+Yv6NvDSLJT9/7L9xjJCDP9ie30fWP+DIDvFSDN3MQhGjADtQv41iGia4FNkd33syErWmeoIFtHRhgj0ThqoDAMVWx1wkZkBqjR1921g3G4yDD8w+RUxVMhEFmeutGA13U2de8/w2G3EbPO5oez5L/MZ4hh+bHY8ENY1XZDeMi9BOyBWEcLX/7o2zvzMr5QLBHK3BXnziuRk1mBCHk89oxrYBtNtaCiQPP/KWShC6NWgr3mT7NK5ryO10PBkfb500UjvukRa/BAddJzEGR8ieUUuRtYxZ44HyNRUvgCjz4frOpky9gpJB7OSWhFEZTt1u703LwkMTpb8Xz3BeBZ6lWDTQVjXHzJs47yOZoPrpHATe56McKX8qq+sTFBe4+0OhU/624G8hiPUIuxb1wx2y9JIORsQL2XsZSYLB9W7KuFOnw85watmL3mam0WkuzaHhJ+q+ITjO/zJxS9Tsjn6JZiH9saQb2VQEgJNk6AyMXv7PjWaTAehkkISWb+2ndD1HBV0zF8rlZYnpRHi7DST/+8qsDQ06GpDYCFM3P+zy1eWfTxAS9QhKL/ufTn6TE60cBZl/4wcZbnVVjCLaPChXADoPf4EH5Ly5IP5amhfnYOyXaGLOEmEoi8RApd6UdQ9kbcaPpsmdJMX63dIi/SpE3CMYbDst/GWMLUllhOc= MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BY2PR0301MB0600: X-MS-Office365-Filtering-Correlation-Id: bc3e47f5-5b44-4610-efb1-08d4b3cd0a71 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131430075)(201703131517081); SRVR:BY2PR0301MB0600; X-Microsoft-Exchange-Diagnostics: 1; BY2PR0301MB0600; 3:rP51egw6+WxogZ/D4EfJ5IMftwXk4yFMn+RVo0sgt31lDZv8eaDBCmTG8VjNR6afhA5P3ixdUMwNJm03VRlOZdA1k7pQYpLxXyFs7OZIxVVF+TQedSkcnlun4hlKQF7tOAgFsh2s7TK4owD0heJ6JDsIQUILL/8bw7rc3uvA4KDFvF7uZxxcP5xPlK7uDdTOVI81XKdduHv4wEHavrYrSX++DuYxE/f9cjw7hpP6LDj4CrgQ/DYZWRegUFbLHZ6xjVOk6nkGvIp5rhy6rIIZddmOqs5k8JpX0DiB1KLA4Cdtp3BayRbnatAwKCXX2UeDQdi2RJ4fWI03PIrar11vFTzmyNi7ANLvVD2srwedwZJMCuePOpQs6oFyjWTsb+EiDvIB2jeGq4cApWl7I1PRyDIEGq0SgyAuz7D/EcLvEJOCkAulb5egWeC9dz0fMQe6; 25:zlc29yHAOC9HAFhCUbMQjD2E9k4P8DxAZsToIkkyh7BUqw5+XTjMYRmZlzzDxF7HOH6kQWOHu/g3FVaXfFnCE26HpFpP4Xr2fzthxF2Tk68vel8snfuar1Sjm5S5mJcPyGoukc4dTGo8E9fkotq5yM7bS+nCfE9hAvVV9Wh9n/1Jnrt0knKTpdsJLcUkuf/vZWpcXkEgG37U46iQHPVqgjwLuVvr5QUBFltumprQcY3t+lsu8ZUtJNLMTA1Ew3aw/8QcYg0M0a6OTW0nBo1XpmPS1CdTtmwnmUFTgJ5A9BIbgcxmWH3c0YhYMbWRYMQhx/VMS/gcpnT1VlEGGV69vl+4LdYYrIS3j6JSOzIlizvc91FiYois5+yVVWIVhEIDm7zZJk04Mke5s3ipZZXo6ZSVce7kfkbxKnDBIepcKsl7neL/j/r6AaZmnsAfbwfI6BdllCp8OgW5AxlxvnYBtT7RxHGQBH7Ml5ozdRe8/gs= X-Microsoft-Exchange-Diagnostics: 1; BY2PR0301MB0600; 31:INjvQwNP5BhbGQs9lA9+Wykz/4S1k4rnbH0OOWT4w60+1fHaMcE3xqcnvH80EOkln0JVK2wixN72/J1C2dipuZgwcqk+fFsH0DePf4TfVtQVUmsdySGaKJoLA7pTYZn2wfQyrd7g98oZGAFR2CD3sgGu3HH4JRvkzKhF2oIKx2bFVvfPRGpztmrea5q7+IOGH1VdqUiZp+kwiYxSRVtTYs/78ODahVxATe35YJDNqSo/fPVRlErRhU+Zuc8xp2Oh X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6095135)(601004)(2401047)(5005006)(13016025)(8121501046)(13018025)(3002001)(10201501046)(100000703101)(100105400095)(93006095)(93001095)(6055026)(6096035)(20161123563025)(20161123559100)(20161123561025)(201703131430075)(201703131441075)(201703131448075)(201703131433075)(201703161259150)(20161123556025)(20161123565025)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BY2PR0301MB0600; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BY2PR0301MB0600; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY2PR0301MB0600; 4:/21w2+QnsWKkkkBFbYb7RVFpcLsFc2J7mrkEIlnY?= 5xI6przho2Erkno4+bWVrVzcRHEcrvQVO1t/OgOjgsH2ADRrcUGcFWabe9L2X8VDM76k3PZhBJbAbP1xvuNbKcJm5O3OTVis8kElutBUdcJCekO7Ahbg1flSysOdh5o5VbbGrvZNda9Lf3iCE4p4lL7y46dd84Mpz8zx9BmVRJ05gicb0VKw3oC/S1kZYT0GoKLyDv1qlYn2O595W3u+JdV1iQiJd4lvMnFH7rHTG8qlWGMa0dAVW/ipMonDz7l8k6fyg527x9bAPk7eIL7F4gYl3+/psfpQny8Spq3xvDnDoHy33y5cmKaDra8bZSuDdtu4U6+UACN0E1HE3URz7PSBa4q437+95CC9m/FxWzrkzlfFXzjENqofulATUjJEimQkZYX+7G77+SXgOQEQ4VL+LlomVqon8lDBkEdMXfw2iLZmrt3P7KlZnaT7TvmYh2evHNLweznDeD2MsFU0CPREDiLO9G7/qJQuO2GTWbfSFIgCiiuzrXb0TUuKXplj0emtum079d2iIX0HFHkI78urcBW0bAqVpKddkQ51eMt+tcfJco03UA5YNs++gG4Xk0q7zR+ZSRez/qciEttQfa+xRiz/W3PIRYZ4rQK7mourJwxlzx/bRiRu/avkZ849fdK227mv77QpiiZx3PRj9zPxCoWP6Zs6qh3AKx3Dk0u7lpleI12iTHx92QuR5QfAqIz1pscO/sKqIOE/gQ3OyhAcv3571JD9EcB3n2v0wBvKxSMyc0T/RIU18LpcXLXlu45XWY8a/85ZpGy1I3cUWd2yXdsFJXK0/rxcOZ4hmEkPx5uIc9ZgRWC27eUPRJsjUnS4BJaI3EIVtBm2exWqYh7Lh68hq4YnUJF/mfHOPXSbvyduFhCtQmiv+r/OQSA9cRFC7t4Md5JQIX6I0Dt6s412YbqQ69h3aN6wA7ugYB198W15XpBED8q4I+ns024fRjNIIRlcK+kb7CSvVlMAcUzfOUGIxskF06nYBUb1mf/HpFD/lblYmGqHjj+CHmC01/i0Kj+XQ9K7T6051NFCCTbIYcUQeDHW+kz0OueNYJoZVDOrSTo1KYMyQpyi59g1vNXmjiZpfgbE52FeFbj4pOwBGLvlzAIqfuohByDr4N8SWBQ/YCR2jslI1EyxPjSro5GNrXRGsNezTyvnn8MYVW3Rj7zHo1D0ZRIOqzmnp0qmCrt7sC80UFaPBKIATXavsGD3i6vN+LhM+cQoMDaUb3V0 X-Forefront-PRVS: 0339F89554 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY2PR0301MB0600; 23:HwsP0qAQ7bjb3PHGIS/cbi7ekz9VaTXDCS+L+mh?= vKsoEr23iWpYJiCeZl/RPlsS/PFInEe6kwvwYwDfV9OfHn/WMxO4BI/T/wjyKI4CkFIDKxJaQiDtoXv1hlw0nlR3Ef2I3MY+5vnjCFI72AD4kooXqUf5OAHCEwH6WMdBX4cgwFFzu6mPlgNGUC/vJFAYUXvcrMPjLGA9NviNpIbZpVoKBQriAOBA6wyjo53Tu7zpdUznl1TznqJAb9bHymN9qSuRZjZ/IyaTSv2K2aOY2zTrhqquNfsRHzrSNX6iHgKJNcYEOHmisoObnHt0pGC1tHdw2bmtgQEBZ2M7XGd6m0pqe78h0rUGGqgZDlvYQeAPJv+r+OTg/xFfb6J8L6ResA5pYuBj3yuGTaSFN7DRoK+xRzoHi6S2QxM9Vkmmh66Yz2wDaKxtiyLNwcEvHm3rvaF9f1Wvcir7aXCo0WLiRujixFuKVqikSmvbMW1DTJf0wfOVIKXdIPf2FceYM7DMrJ/0z0qTodkeJzmoM/3Nw/7WHLn4VxYZXkWty31Hff3jV7UbbxqD/fCVMEZDqz2cEog1sew4f2NWOIJJ1MsVIgrQzIg6c3OpQppgp9DSSaz87T1+PYmSGniWSHIdVeHGbeDSKIn6B37LP1b8fz9YlC+Q6RSWflLmjSDWzcoNFcdap3C19C0Z7IXHvWsIb+dCoZL4E7VxEt7QV74Fd4IQZELibrelmDeuZaXdLzAXF/6G/R936MLZenxtCqbaOWNYxyui8ToEoHf0UWX9HAr49dVkMTaAAc55EPMDjzrGdGJ+iYUzsPYqqMg7ttIpTKAlnJgXPSiEYi7JUFYqd3G7XRNkIG1MslGKPOCJ9VYHgT4zt7/RJMs/pf8RaOLGKAGi/fbnc9pXz0Rre3jV5YkjfPjOR4RL1YQLbR3ctEebgGy7cr2USMQXbZJSkVPpMbtBguIApA7KoShr2lGN1vA89d78bmU2DabT1imnnop2c4/Q9HBq5duGll2b/x6gsEURiquef4UVNyDJF7xZQ1O7uu0xz7hrqLX8iQS8WH1MsTTrHIJIKwfUM+TLIYBc10AswnvxVKCmVaBc29xtTzE1TsaOc8YsmXeUBZ5C6h9y0ygAx5ADZl5+mhIdVxCPs9DbvjYKiAB0WBajU77sHhg7rajN2MaEO74TXATXF/BbEPK7IJPmLnGm7j4MeH4IQmuBZAkUG6OTrNYtSwVzt2qBz7g== X-Microsoft-Exchange-Diagnostics: 1; BY2PR0301MB0600; 6:MUS+AygW3PrTYhIXHIkc2szXHBBfdOuzmCGCbr4E7pqqhhOx2iQh8Aw8h1+X7gH2iBOaKNdsaDbZD+sauL6Jn+oXT/5bHJg8pEYOTZfxWrGQXBKT/cC5LPE1oOxq+KdRcq4FPQFjxPl7Mq10n0SR1zaJ7UdwhXg06EILB3v4KTaJE/cJC2Mr5nbIp22gECIULVH5WnoYaTFmRU6P3hQCt3cMFDhhub3r8r1jktkZw4/GcCgZlsXyRC8AXd34ha6/LxTCdYVTxKASIjer9+Lpi5nvHohq1nemai+L2pc1t5yL1tkO/rCk2agXiE2/2OHnt4o/ZA6Cd0h/ccv49Y2hqjD3/kF2Tkd/W+lL+1DYjdIdkThKprSMlY05uzW4X048ErD70kWi1+6+/uWesHCMGQltg+pBWYcV9Yj/w/3irmnS+4+cqUGvYwSJ05vHT7eHDThhLPE08CyIqRCCk2AouwrG4m22PRLL7YPQEWjy1xJPFaq76WZbZSYh6nsKW+zm X-Microsoft-Exchange-Diagnostics: 1; BY2PR0301MB0600; 5:Z9KwasXqAPa/SX4eSyys7MqbTk+Zlv9qKMtYCuU5BERrEl2XJRREjjACBTVCYB23OTnqSOS/r/XQwJLPkL+vjRJ1hCT2x2y6lIp3oGrvRTICp2cl+1c/BeBH9hQEpEtHqSow2xZL9zygnYGU8TNXKHiBUQ8/bWrN+I5MjFpz/gK8589CmkiDx+udWkBugs6UDZSTM5ljx0Z+6AnaeTD6eB1g6PloTZMMEggjcuWwXcmKNMeQgLkm1YTWGAGbbJC/pI0fegy7Qrfzby3l94jVPAt+yxUmR8YZSGDdNBD6b+ibudZj8T0g9OdFpckWoTBYymoML5lToiSgo4bSz+zZ9p/TJLahkyydmanVUKirnfyAh9NldcNweX5lY2OZE3tSMQN5PkLfFZ0dChLOYNyqKO6/F/0u84VCzyX6nYML7CfYsuYWUlcLmVH2kr9fsn0stG3jrzXAPaDqaLlDy+t9kk8XdTaMgYcGKinn8OTHMaDtK3JPOlqwreX7e894EkbRyLgcdP1KFR8OR6hGTgKxPA==; 24:UUp10MQrQEiHm1xfRKRVLmmf8gUTp/9LtMITvlQabTGzzD33xmr8PLq/hvpb+s9jh/RDLk4QgsOlLEXTWlkvS9U/Y4CBDwnGXiruBZbKgAc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BY2PR0301MB0600; 7:D4gzWxJ2nYwToq8LsMRZFvnSCnLRTVKCwitZ0LAYSB/4HRwGvI8sClsjyIHIO0xhaluy3tTg75zOb1MIfCW2P2Qh+rMP2KizigcSz1MjTuBgIUUgZrpWo1FcATdOA6EdtJGiI8BYA3YhEM/oYPgCgRzQv8Y4lfOxQ8BWXYrcNxpryW43poip7tj7CUBRNk5QGzWzxwYDAyJ1TSbHHJR6ICf3TVMVVJ475SSo624tEYJ0dFUif6wOZVAt/o/yAIxsgDGAy2qdH5XEP2oUr33I++IWHRYdQDNyazB4GkG13s8AteHSO24RzF1NYzqsiznyvWrl5KkpuH8ffAfErBs7Qw== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jun 2017 09:00:58.9429 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR0301MB0600 Subject: [dpdk-dev] [PATCH 19/20 v2] event/dpaa2: handle timeout using interrupts in dequeue 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" This patch adds support for interrupt handling on the event port. These interrupts facilitates managing of timeout ticks in the event dequeue functions. Signed-off-by: Nipun Gupta --- drivers/event/dpaa2/dpaa2_eventdev.c | 36 +++++++++++++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/drivers/event/dpaa2/dpaa2_eventdev.c b/drivers/event/dpaa2/dpaa2_eventdev.c index a7f8516..d3aed62 100644 --- a/drivers/event/dpaa2/dpaa2_eventdev.c +++ b/drivers/event/dpaa2/dpaa2_eventdev.c @@ -162,6 +162,31 @@ return dpaa2_eventdev_enqueue_burst(port, ev, 1); } +static void dpaa2_eventdev_dequeue_wait(uint64_t timeout_ticks) +{ + struct epoll_event epoll_ev; + int ret, i = 0; + + qbman_swp_interrupt_clear_status(DPAA2_PER_LCORE_PORTAL, + QBMAN_SWP_INTERRUPT_DQRI); + +RETRY: + ret = epoll_wait(DPAA2_PER_LCORE_DPIO->epoll_fd, + &epoll_ev, 1, timeout_ticks); + if (ret < 1) { + /* sometimes due to some spurious interrupts epoll_wait fails + * with errno EINTR. so here we are retrying epoll_wait in such + * case to avoid the problem.*/ + if (errno == EINTR) { + PMD_DRV_LOG(DEBUG, PMD, "epoll_wait fails\n"); + if (i++ > 10) + PMD_DRV_LOG(DEBUG, PMD, + "Dequeue burst Failed\n"); + goto RETRY; + } + } +} + static void dpaa2_eventdev_process_parallel(struct qbman_swp *swp, const struct qbman_fd *fd, const struct qbman_result *dq, @@ -204,7 +229,6 @@ static void dpaa2_eventdev_process_atomic(struct qbman_swp *swp, int num_pkts = 0, ret, i = 0; RTE_SET_USED(port); - RTE_SET_USED(timeout_ticks); if (unlikely(!DPAA2_PER_LCORE_DPIO)) { ret = dpaa2_affine_qbman_swp(); @@ -229,8 +253,14 @@ static void dpaa2_eventdev_process_atomic(struct qbman_swp *swp, do { dq = qbman_swp_dqrr_next(swp); - if (!dq) - return 0; + if (!dq) { + if (!num_pkts && timeout_ticks) { + dpaa2_eventdev_dequeue_wait(timeout_ticks); + timeout_ticks = 0; + continue; + } + return num_pkts; + } fd = qbman_result_DQ_fd(dq);