From patchwork Tue Sep 5 20:27:24 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kardonik Michael X-Patchwork-Id: 810806 X-Patchwork-Delegate: jeffrey.t.kirsher@intel.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=osuosl.org (client-ip=140.211.166.136; helo=silver.osuosl.org; envelope-from=intel-wired-lan-bounces@osuosl.org; receiver=) Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3xnbsV6gMZz9sRY for ; Thu, 7 Sep 2017 07:13:17 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id A6F0E2DB25; Wed, 6 Sep 2017 21:13:15 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id BwealCUN9i3M; Wed, 6 Sep 2017 21:13:13 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by silver.osuosl.org (Postfix) with ESMTP id B997430B6C; Wed, 6 Sep 2017 21:13:13 +0000 (UTC) X-Original-To: intel-wired-lan@lists.osuosl.org Delivered-To: intel-wired-lan@lists.osuosl.org Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by ash.osuosl.org (Postfix) with ESMTP id 541A51C1470 for ; Tue, 5 Sep 2017 20:28:13 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id 4836386F2B for ; Tue, 5 Sep 2017 20:28:13 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id p3PKuKPAhWzR for ; Tue, 5 Sep 2017 20:28:10 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from NAM02-CY1-obe.outbound.protection.outlook.com (mail-cys01nam02on0072.outbound.protection.outlook.com [104.47.37.72]) by fraxinus.osuosl.org (Postfix) with ESMTPS id 9E56986F1D for ; Tue, 5 Sep 2017 20:28:10 +0000 (UTC) Received: from BN6PR03CA0075.namprd03.prod.outlook.com (10.164.122.141) by MWHPR03MB3327.namprd03.prod.outlook.com (10.174.249.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.13.10; Tue, 5 Sep 2017 20:28:08 +0000 Received: from BN1BFFO11FD046.protection.gbl (2a01:111:f400:7c10::1:121) by BN6PR03CA0075.outlook.office365.com (2603:10b6:405:6f::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.13.10 via Frontend Transport; Tue, 5 Sep 2017 20:28:08 +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 BN1BFFO11FD046.mail.protection.outlook.com (10.58.145.1) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1385.11 via Frontend Transport; Tue, 5 Sep 2017 20:28:08 +0000 Received: from mahshev.am.freescale.net (mahshev.am.freescale.net [10.81.116.83]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id v85KS79G019947; Tue, 5 Sep 2017 13:28:07 -0700 From: Kardonik Michael To: , , Jeff Kirsher , Jesse Brandeburg , Shannon Nelson , Carolyn Wyborny , Don Skidmore , Matthew Vick , John Ronciak , Mitch Williams , , , Date: Tue, 5 Sep 2017 15:27:24 -0500 Message-ID: <1504643244-9233-1-git-send-email-Michael.Kardonik@nxp.com> X-Mailer: git-send-email 2.7.4 X-EOPAttributedMessage: 0 X-Matching-Connectors: 131491168887603969; (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)(39860400002)(39380400002)(2980300002)(1109001)(1110001)(339900001)(199003)(189002)(50226002)(77096006)(104016004)(8936002)(8676002)(356003)(6666003)(50986999)(68736007)(50466002)(551934003)(47776003)(48376002)(106466001)(5660300001)(81156014)(498600001)(81166006)(305945005)(105606002)(7416002)(626005)(72206003)(86362001)(85426001)(2201001)(53936002)(5003940100001)(2906002)(4326008)(189998001)(36756003)(97736004)(8656003)(921003)(1121003); DIR:OUT; SFP:1101; SCL:1; SRVR:MWHPR03MB3327; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD046; 1:MSlGrdYYLW8RcWm2TpgylpF50SvqypZq6C38IsD7y6nt3JR5gxUr7K4UvYpQDIzToKdNAGVpVy2I8+HmbRCtLnmLzUvimm7gu0Gbbgq22h6z3SxWkOqN2P8OC4+Ez1xa MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5ad8c12c-44e2-4971-21a2-08d4f49c9f1a X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(300000502095)(300135100095)(22001)(300000503095)(300135400095)(2017052603199)(201703131430075)(201703131517081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:MWHPR03MB3327; X-Microsoft-Exchange-Diagnostics: 1; MWHPR03MB3327; 3:lhWn+VlnvxDooiSq4xLKrxIdGHEDbn+KjoAIbEVesNnMmpY3uE/LK8AK0u2xWf70hBSInRUVJkV6g9VKItokthu2ky3e0Gyht1SBueVWir3rb0RRW80mMhPJTZRcfqSmBXVWqRwfx2QZzd4xbMYXEisaBHr6lPSTb7942EW6xES8zhzq/k8RJ981MGGLYoWDBZriReTfVv2Y1rUXewiWcpJxItCT8cybFFJGVMylzVspjto7jTzphAwpb+mypmbmxRiPaKyfavUJF37gz87RX0mIx6u1aWdmR0GjT6ix1RKCz+8GVVygwobHlb2/MkLewGkWX0H+GltRmTMz4lJOiwmDlRrjqNl+Gp+RiMBWjrc=; 25:8fxEWbzfpWvbgkT8nZSpI14DNZl0AIpbvCvO6d/j3a7S3bWVuBN2whHbCKTgQfUTy9jv85ZtQr7DTvGlAiw+gYTg4PpppyH8doJSn4OsdDdA+VbVjka/R5tss/cguQiJJtp/tcK00IqN/JtGUnU/JTwzIdvnoP9XiBma7fCmT2m0ikqjwI/5jblyJTBmFRIljodA3zjftEXXtmTXnCC41rm3UJlSdBEASQ9N2VewiXMCt1rSqh5HC86cRDFakU26UEI9f6QpBBERqESq671wXqRXvALLdQntblMsBsTXRtqe1itUhoFtDZxAVAPpYit3BIt5etBl5w+4BjePxrNX1w== X-MS-TrafficTypeDiagnostic: MWHPR03MB3327: X-Microsoft-Exchange-Diagnostics: 1; MWHPR03MB3327; 31:/5Ddsf9HJuZQjQJnamj0CuWyiuObN0R7tsEh5O5Nyu9ZyJf1QvrZlXR8GdebbNnpfYriFXtgfV71XuZw8hFMHo1gVhieB8pjYKWpv/X2QZ371hC8WvIzYuqBBjGcbPSsvgca7p/dFzJkm3iQMBTXKll4gCNSS9PwWzQ8uWiikWY6eP3b4ba57Q0iTaTe0uuOGy4NsrBWfPt1rbgli0sMB5MC4/kx2XMLPyoLTnoDL78=; 4:kTOlHamUxSW0qVC1rbg65gzIdir7BL//BI3FfuMgMR0zk+yW6HKuFMNCWwsakAtSFEpCKgfmchQCN6p8lyU3vnqieRrhlcqSmJkRBwlbuEsnBKEmyIjJ/kJy7dG+ntny0Sb3WhRxr0yUPhbB8yJv0ScWWRHg43rGLkKthu3eADLexLU0oqqsMJbW1c6/M5QS9hpRkWBCIHvwqUCka4q5ygn0SUAAHh0X8Mt+MNVG2Kbxp9PLnBo6O5KkeoMW/pnLIoRzZ5NQAtqb0966nTb+lPJo2hR3nu4YFdB2FmHMYNDbr67Uujhhs7BQxRFjcfPughCsKxZGcoy7x5wPKJeefQ== X-Exchange-Antispam-Report-Test: UriScan:(278428928389397)(185117386973197); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6095135)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(100000703101)(100105400095)(3002001)(6055026)(6096035)(20161123563025)(20161123561025)(20161123559100)(20161123565025)(20161123556025)(201703131430075)(201703131433075)(201703131441075)(201703131448075)(201703161259150)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:MWHPR03MB3327; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:MWHPR03MB3327; X-Forefront-PRVS: 0421BF7135 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; MWHPR03MB3327; 23:MGa+k73iBNn/DEek7mqBxMRvff6qQRzbFwfntV4AO?= dJHkC9lZp0cnRc3jzOhInbmN7hPBi+Y1jPthQNG+d1N1KzijbHGXxQxKDKTkKg/JY31gfu16Wy+S1c2VNmhyFWM5uEaWmCjZLd47s9sbqWAbRA7ZA47rfol9HWXUQnFQ9qgkVnGvmEg9ip7XgwR9KPnukJiB59eTE5AruQ658sIF6ptrG1ZhgRIQ/8sKyYQnDntRNnIZNMt1Lb+teEo6bxH2N+yP5iqeUB9C5Yh6vLDJYChkdOw4U1tGtyVtgq3wR94lVp6IygCYW3fjzzq35pzbkQlV/zivrFyEZ/fXt+CmQxQXyMvXfYPcctyWK63V2AyGYZzzC21/U44ptWgRLBhgPhcpqP+AIEDVpdvz3K7Q0Z+DKNhtkkBTPBWnf8XDrLaX3W5+zsTg9XhNkvuJVNTrcHcPnXI1+s+y6nrM6aSydurG0qtpff6qtIT/sIMqd5o6nC2+yFT2fPIx6tE9tnfvwz/PQjOizLREBZn5KVLVzGhmBYVR67lGE3Os5AI0MsutqQW0NpNoPJBbjkWQ3DXSA1GP2SfuzuPrSmKgRd/L1+ey0YfH076eGuVoyInLkMcDNki5VjAlo4B2JSyLaSZ0Zt2zxan8j8GJS1LoqR65ZXTShEetxafRAemQoGM22pNYn6Aw3nFykkhp/TG8jczLl17g3iQtmSQEeUWVancpY+QJldgf+2DD9GQzitL2mTXTpcnDBdQBjZ8R3ti6zuRsejewG4fx+3++O6227Q5TK3uJA72sNOpvs970gHKDKUOyghd4BdmCfkBSzcqW+txJtTXRRnw40MyvV1noxkFyyDljpBneA3/m4j442ETjjXYX0J/TCwCYqrlll88J/g+yLSbXmOIBkEj3vTMtZH6wJHLTHSFyrMoPCJXpPqeTl36tQ0UZ1waoRi3URFHiuFTIdQFDpqfDZKBx3teCkywFcYJnKsycJGLw8BLcecimyt5u5gq7Vce/fzlR9qapnQ9tIprJrfJDNNQFEHsBXbx7DVsW9oiwuBC9SHoe+w9SUlSPML1fFoS54YoAUk7ViAKQHneinuUkbBfzGzu+npGTw== X-Microsoft-Exchange-Diagnostics: 1; MWHPR03MB3327; 6:PVRuPv7aDmwfA/O1Xznevk5IPMQ7rJu3Ufa3flwOnsjbGf817tKb9h/I1V6VdiHaCoW5OywCQSzF2flfuzwoh8e7sW34x+/+h8eYgitr4sPyu9ufWjws5xX7pJIBheaRIjzJZH68stJ/L2ovll3Ov9kfYjO58dTKogqIM2TF2Ne8rjZa3M0UtDIiBvimm1NBwGfl/1lUqZbixuza6jOq4NMBV0XRcYiIr1JkHzAof+69CvgZhVrp5spqd4HMyV18pD9m6V78jYz2pwsgepmLoS4ducQs927fa2yFCOxkf0Clmwo+6jF2KuCjAvD8KKBgXaOdcUS9Su7kw0uXYp1ZTQ==; 5:8FyyxI8SrrQqoPd7pOVIH8EbdzUn10GMGPHc9BECDWKVioWljLgw4pyXLpoMlZbgBqsSOTFE2jqR6EEbt10cqz6ZvyTK6dW3apwRiE9VRbP3gmIj/k+RHuJc7qgmM4GuVU1+cxt/rxD4mXNWynH5zQ==; 24:4lkb5mS44PgAkIekzo5FpMvUX/laDpiHMBxWM771QD01+NhmiBcK+EJzajJ7XGovUS0XOne8gJhg9QGYFtVVEsipKxV/6flxtoMNJbRXbEg=; 7:4/VXhYcXsWjqbfqYFA8K/Z099endX/tsoLB3r7qgkdrHONtHqZHqnRz5XfFKia16oS6NUpkjeEgQPgSqP1vfKawuRJHCf69cuhlbrIHSVFVgys8XFipWD9qtPc83OZZBruQ3dWiVcoaPlkp96h5Xa+xFLys1TAKIqN/ZV4kawTdkj8WLIRnRZNbec965j3jUU/03tLRa2enwbdxRvKQ7VXcsJSt4K0DTLJdfAZhIi50= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Sep 2017 20:28:08.4795 (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: MWHPR03MB3327 X-Mailman-Approved-At: Wed, 06 Sep 2017 21:13:12 +0000 Cc: Matthew Tan Subject: [Intel-wired-lan] [PATCH] e1000e: changed some expensive calls of udelay to usleep_range X-BeenThere: intel-wired-lan@osuosl.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Intel Wired Ethernet Linux Kernel Driver Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-wired-lan-bounces@osuosl.org Sender: "Intel-wired-lan" Calls to udelay are not preemtable by userspace so userspace applications experience a large (~200us) latency when running on core0. Instead usleep_range can be used to be more friendly to userspace since it is preemtable. This is due to udelay using busy-wait loops while usleep_rang uses hrtimers instead. It is recommended to use udelay when the delay is <10us since at that precision overhead of usleep_range hrtimer setup causes issues. However, the replaced calls are for 50us and 100us so this should not be not an issue. There is no open bug that this patch is fixing, but we see a good boost in zero loss performance of specific user space application (dpdk l3fwd) when this patch is applied: we get from 32% of 10Gb line to 49%. Signed-off-by: Matthew Tan Signed-off-by: Michael Kardonik Signed-off-by: Matthew Tan <matthew.tan_1@nxp.com> Signed-off-by: Michael Kardonik <michael.kardonik@nxp.com> --- drivers/net/ethernet/intel/e1000e/phy.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/intel/e1000e/phy.c b/drivers/net/ethernet/intel/e1000e/phy.c index de13aea..e318fdc 100644 --- a/drivers/net/ethernet/intel/e1000e/phy.c +++ b/drivers/net/ethernet/intel/e1000e/phy.c @@ -158,7 +158,7 @@ s32 e1000e_read_phy_reg_mdic(struct e1000_hw *hw, u32 offset, u16 *data) * the lower time out */ for (i = 0; i < (E1000_GEN_POLL_TIMEOUT * 3); i++) { - udelay(50); + usleep_range(50, 60); mdic = er32(MDIC); if (mdic & E1000_MDIC_READY) break; @@ -183,7 +183,7 @@ s32 e1000e_read_phy_reg_mdic(struct e1000_hw *hw, u32 offset, u16 *data) * reading duplicate data in the next MDIC transaction. */ if (hw->mac.type == e1000_pch2lan) - udelay(100); + usleep_range(100, 110); return 0; } @@ -222,7 +222,7 @@ s32 e1000e_write_phy_reg_mdic(struct e1000_hw *hw, u32 offset, u16 data) * the lower time out */ for (i = 0; i < (E1000_GEN_POLL_TIMEOUT * 3); i++) { - udelay(50); + usleep_range(50, 60); mdic = er32(MDIC); if (mdic & E1000_MDIC_READY) break; @@ -246,7 +246,7 @@ s32 e1000e_write_phy_reg_mdic(struct e1000_hw *hw, u32 offset, u16 data) * reading duplicate data in the next MDIC transaction. */ if (hw->mac.type == e1000_pch2lan) - udelay(100); + usleep_range(100, 110); return 0; }