From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1030300AbcJ0TFd (ORCPT ); Thu, 27 Oct 2016 15:05:33 -0400 Received: from mail-co1nam03on0105.outbound.protection.outlook.com ([104.47.40.105]:49433 "EHLO NAM03-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S935449AbcJ0TFc (ORCPT ); Thu, 27 Oct 2016 15:05:32 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=zach.brown@ni.com; Date: Thu, 27 Oct 2016 13:29:10 -0500 From: Zach Brown To: Eric Dumazet CC: , , Subject: Re: Pure polling mode for netdevices Message-ID: <20161027182909.GA4892@zach-desktop> References: <20161021180316.GA305@zach-desktop> <1477075306.7065.86.camel@edumazet-glaptop3.roam.corp.google.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <1477075306.7065.86.camel@edumazet-glaptop3.roam.corp.google.com> User-Agent: Mutt/1.5.24 (2015-08-30) X-Originating-IP: [130.164.62.11] X-ClientProxiedBy: DM5PR18CA0025.namprd18.prod.outlook.com (10.173.208.11) To CY4PR04MB0617.namprd04.prod.outlook.com (10.172.136.138) X-MS-Office365-Filtering-Correlation-Id: 2019aa25-d207-49b3-0d7c-08d3fe9753ae X-Microsoft-Exchange-Diagnostics: 1;CY4PR04MB0617;2:IlyYKB14SJbK+XR5vHqXN9FeSAVxwRmTy+MbwdK8VHW+ItFz9XwL399puhSrCzfVKtmkwOMgeegbl4ZvNH/bM6nwBVXXRqxR2gN0wFe7yNJ0a9rFWKupk+PZnRPYwW7uuZnA5+W+CNSXhZSsf+mcUCRy3YUgDm8vKF4lx3g/uSAhsfR63yEYduhSBnZxvGmGLcW7kY27evEGEZE/KAq3OQ==;3:XP1uJpKuRwyfyATiIv5CrU35JHMK1rmezWXcrOgdFbJyc7sM2JaxyXFaB6Unfgf6GzJJ0oGEi6hSH/QERYx5MP5wyDoLqQ0gKHqOFehTJGVu6HM7132BrscBYgjlmyHLQqWgtGExlfqYlByoEUfG6A==;25:Zn7cjT4eb1D4gtKOThX2vWElmgHKZ1kYg+Lh+U4J+1SD0ppKdPWA88SvynSDNsHRJ3P4XUhyrYOe7XEq5cpcRk58mHsPFFSjs5PCN+9mgZwvEBhWrCS+lcgW2pF/YYDHESYm31EGARMvvaSkhuRQ6BAoyJbTY9TzZWMijhd1LdPNUbP0OWyxE+Xeq+cnEjdz7EkxUKUUp8mkiA4KhR95SxVeFFdwyJdPnBnJypS3l9w5t2bOR3j1ms/fGm3a0t3tUgPmM2UJmPR7oV2s38Wj9iH6++kU1NsDjtflRShFoFsTiG5qh5tQS4vjrUBOOBnJ0t4GKCRaHTyUMolvsNwfhoXmaQe1xbniiRB02BUTLdbZDbap6IbwX4AvQb2eoDLD3atavMwktGW6MWHK9CAYTMLp8Sm5qCH01bc1OC3Tk4PJXExmtrYsl1tU3KhuKEvJ X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY4PR04MB0617; X-Microsoft-Exchange-Diagnostics: 1;CY4PR04MB0617;31:RQUVWnj+9/MwYu4CmzKMmilBE+RqxouYqES4D5iEM1zcOQT9XgORPq3jZEOjP1OJjPgPQ2ClefoxQmVAUhYA8E01GtPv6aEDy/NOnNBjG4aqtsDRqLvureK974TDUp6kLbdXezbhDsna8Pq0Gkbne66as8vaYWkd80tkHCRw4zGHOq9ExcbMo0Aj+1RTch/MnxN+78OYw/J1qP1+LHUde+L+ymDXgPOjooLVSVEXzfUUsjc+MG7cUCum2po9JQxoEvldLc8oC4hlFFAUz5dQkNHrwX55fA6a7zpdDPNXxic=;20:aTXkFPdW1vEtLXCWPihsVWc4BeOLZf72r0ZkfdCNIHPp3E0DfoEVUMyL4cy/oU41ACCIz9zPhRjsorI8M1BM20rEk5QQ839oD4tEUb34G8t0LahxZF4/5XUfzMHAFfGBLpOfSVsw70lzgfU4pPNFCDQAOQmdkQsB8+ixYZ6v6LR0a8FV/as5VXF2rgwVf/BPS2WMJcpBdbBtYdNUDG5L983skJhFi6Qh3mok+s9QhZMGvaY3Zu1dcJBCrDxW1p4hnHAv0pAcaCdnRGQ3clnqz+OeB6EUwR0Nlda4W96l7DJnk3o2JHot5SuQyEMABL23JABAYMqHYp0owHd3pPIgyct8n308pDLQKt2kvtg9fQBzg1fheObZxqNftHkopXqh36ymHYY8mq8EzOvYdtwBXraDOoq/uV0f9PA43BdedF3pvSR5wYhl8XolUMlIDMkmaA2/PsvHc8KYuWyvPRbtyVzPGuD0/NdLgSoVhfmSEGVghGShuBbgxr+m7PtMKKSXgQ1tqIDY9IpdwWjcpuNkYnCW0tJ5ZYXrBB5kDcIaK4PFyPa3aQKEJqnG2KbELpUjC0voR87NgaF0DNVathe9aCtKBOaxh7GBvnEWockRZCY= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040176)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046);SRVR:CY4PR04MB0617;BCL:0;PCL:0;RULEID:;SRVR:CY4PR04MB0617; X-Microsoft-Exchange-Diagnostics: 1;CY4PR04MB0617;4:hsgOoDQ4wziQ1M4vqVbREP8ZxQ8hzPO85Zn4v792dhbZiJ/+XZdPUNGqSzQmerlZSdPsKbhanfv0aBheAmdIPn2Kl78BT1cNq2HaMpRH9rcJ2KForIy5KCzoGIVWtNAjigEUKzbuv4axivlfUkZzy1GhaKW81KUk7QnrzHrcGWyg5bezz4AkHDWUct9jOoNcOJg2u0ZiopbwTEhcvr583UHZdWqU8mpLuLVydqBfatYpwsUzWt/FKIZ+d0EuZSNzjWyFDbRws1t3aBZRg1fd2k/QRuMGIWisv+wea5iigq7vO++y23AlNPlsAhC2TIYTTGuZICehC0tSaZRNuuMKzmHxJe8Td9VjqNoJgHxxu+aXwfovlkSzNmxE/zpCR9mBPMS0SktmhtVcPmCLRSTPWA== X-Forefront-PRVS: 0108A997B2 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(7916002)(24454002)(199003)(189002)(377424004)(106356001)(46406003)(3846002)(101416001)(97756001)(110136003)(6116002)(66066001)(105586002)(42186005)(86362001)(6666003)(76176999)(33656002)(586003)(81166006)(5660300001)(2950100002)(97736004)(47776003)(81156014)(2906002)(1076002)(6916009)(92566002)(50986999)(68736007)(8676002)(4326007)(305945005)(54356999)(50466002)(4001350100001)(9686002)(7846002)(4001150100001)(77096005)(189998001)(7736002)(23726003)(83506001)(33716001)(18370500001)(107986001);DIR:OUT;SFP:1102;SCL:1;SRVR:CY4PR04MB0617;H:zach-desktop;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CY4PR04MB0617;23:4dxFVPy8xavIjCtd9/6z6fcABlxPmYpGrlQn4BGYa?= =?us-ascii?Q?eW8+uWO8aA+DJkCenC/ECpyglsM7IQQ/CeoceC7++/GBriPbmVAK/mZg1TNC?= =?us-ascii?Q?bQh8eWgMSJ6m5n2evA99MANrWMgCrsrKlel3fgC+qp00GJjOWjvMrEM957fI?= =?us-ascii?Q?Vcqr21wGHKGP977v9Qj73WoghZXjQuB+0y422DVpBVq94kY/Ha8zfaWDer2w?= =?us-ascii?Q?W5FBJ1uaKAFdCfVLbO8K3QT2IouvZOPessbCDWMEBA2O2HLLP81YNUiIOj5P?= =?us-ascii?Q?SCVQKZNiBzVlVQCFRoeBB95Zg6LhWE0MDJqfajLJBZa5W/bECyLCajkBnsfA?= =?us-ascii?Q?tZv6Jaf6WU45Gq0mzQ2x8N7YCBmumBdE3ZR5Jpyw9cNjRc/BYP8ByqrgRBTK?= =?us-ascii?Q?fCIhKoV+lSBtecDcFkNTs9Pci3PbRAZucAbHOtYhYZjfAzNteVZTdgRPJpSP?= =?us-ascii?Q?4NJXXGvVBXZrCzyujCxBKPrwPHeNBL7NVNTd+zUcm/sO2t0TAnulWSZJ/rIp?= =?us-ascii?Q?2bH18ckS/nj3iUhkoQq8LcyoIpLjxRmNS9naVuhzoZYmMrxky+iKs5qFyRie?= =?us-ascii?Q?nmeMZZjECEJpFw1WOYzOqyWaSNXBwth7+KDzyR1C0Gk5VUdPRcTWft6MRKlu?= =?us-ascii?Q?nn67WDRzucQzk5Q5SguNzrW88dQUtCiEya4Z5qarIqdWjeXyfSf+RPJwNnCm?= =?us-ascii?Q?wPqHRoLxAPvwFKZAAh7afrk7Tyo5EA+Hv3+/lyvJl0yMuWoOL+gA0vUjlsPO?= =?us-ascii?Q?ow8UlOeUg99LSRiifJDnZ6oZvTlbuhC0ZT1mK00j23vvTm1jn3GRbDNrpWkg?= =?us-ascii?Q?sVdGLhFD0qoUJBzdZCEU7ujyAPQfjTbOu7FgJHzzwlocTxeVvPytgXjrdl6v?= =?us-ascii?Q?eVNEdl09lKheRc0ak6rjmLLfUWyYe0oyGDkCSAp/AWEjooVvKKtJttlkzhS8?= =?us-ascii?Q?mLy7SJSapGKxH5GQ2+uGqWjwh9vcCAD4gHralNyb2dWUDOt7QLXdDBwEK35L?= =?us-ascii?Q?3hvujXGxofMwi1YAOENVn0cQ8SEQD+MJVMtDe9FIaf2KiRAkNRSAiShbg6g0?= =?us-ascii?Q?IAqpYo5yYESncMsTGTQebW0UJgcRW7SlWGl0W9YNprvu9HYfb+sUuLo8W8JJ?= =?us-ascii?Q?dI44N1bpJYYL7eIa7AcINloM2K+2dM5L4EHk/Cjrn29gBB46H02ilXtvpDQX?= =?us-ascii?Q?KcCCDiUOtbkB/6ytN1UDJqoX/3Xh/BlOwFpZO9Df8ZKmhT6qcAlUaCvWA=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1;CY4PR04MB0617;6:GhYKZZy/atZXuZfpxq9VnE+Sy8sgnDtgC6gJoi4CLkrNAWNCGAH3AhGhylvFQ0ToNm/nLsjOfjuovhby+T/5MkaU8nO5rqe1zb/ql95EnQwkfoadA1/0OlUZ+x3bDWvwJu41kBbJUg8hRU31sqbbsPCRUX2TM0ztAZ3qINx0bnsAHUHDAVZ/v8qrdvNwpppT1WOZhXmFFRJkRmnQtJNc+8pRogP+ychTGmKMA2HjGciQkxCRCKsdOO0L3vX9rjnWvajF8Me8gSBy9AoidIjLluQxK4tsgyUPWhgobf3wf67YC4KUGtuhouAzWkpGcHA2;5:ubWU3yIOWK54xDrtRKS0xorB/vJ1kLJByqohRLoHLdjMXa77PoiBJQeRD1rwCuEtk8p4zxQmYSVr8f5aUt4WnxdQB0DyzPc5yC2zH2R+LsQATtMmlb6oEzl005FCV2mZ1QbEedRBxRPgc+y05jNAI9xZkIwD+UkNq7fBLJM0tWY=;24:C2WQXFIjx3Hvu5v5X3zIxvfNORxlwlmUpvdWtXGZNUPurAqbNw6oqOQK/72UCJpA2OfxM4y9pbJv3KngC/bwA2ZaPpknyLlX1qkWoqMI3Ds=;7:odeuUroZOan6mBMKvxhWU9Eo5exyiFCyRPw/WJ/lTzJYTYOT6QEn7t+gxqo+2NXVHQjDLYOM/f4OGuDVzn52SX9Wyt7KByFaRMMxr/cJn92r6is/4yM0RX0E8AsaDjKAuU9gIiCBbNOC+ON3xGkRFAHn3bUrOUFY8nIPpRsvK8zxXqsVyXScz+U+3lpZPmrhMlx+gzOjhVV5thLCrTheL/vSaak6e2Ituu+SpB/A2LdTuy3AAHC58kz3gixzdVA6XLaCCqXpEElryDiEBbOdNFIdDC9ppCuC+GuPbv6pC6l360LNkHpVUBfjmfIfHcCnS22N3E7BZ05uPxp5syeSVINz9tzvBmIzK35QWS0uNks= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: ni.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Oct 2016 18:30:28.4202 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR04MB0617 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Oct 21, 2016 at 11:41:46AM -0700, Eric Dumazet wrote: > On Fri, 2016-10-21 at 13:03 -0500, Zach Brown wrote: > > Is there a way to get NAPI to poll all the time? > > Or just any way to get netdevices to use only polling and no interrupts? > > > > We have some rt targets where the jitter can be improved by disabling > > interrupts and using just polling. In these cases we're okay with the > > performance downsides that come with polling. > > > > In particular we already have an implementation for the cadence macb driver > > that does only polling mode and have verified that it improves the > > jitter. > > > > We're hoping for a more general existing solution or at the very least a > > solution that would be accepted upstream. Any thoughts? > > This is not yet done, although you could use busy poll infrastructure to > get this without a kernel change. > > Open as many TCP flows are necessary to traverse all the queues you care > about, then loop on recvmsg() to trigger NAPI polling. > > I looked into the busy poll infrastructure and I don't think it meets our needs. We're not interested in minimizing the latency of the ethernet device, but rather diminishing if not eliminating the system jitter cause by ethernet interrupts. Not to mention that some interfaces like macb don't provide a lot of the config options to make busy polling really work well. For example, interrupt coalescing configuration. I was thinking more along the lines of an extenstion to the NAPI interface that drivers can opt into that allows them to enter NAPI polling mode and never leave when configured to do so.