From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752247AbdHVVDI (ORCPT ); Tue, 22 Aug 2017 17:03:08 -0400 Received: from mail-by2nam03on0068.outbound.protection.outlook.com ([104.47.42.68]:43808 "EHLO NAM03-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751632AbdHVVDG (ORCPT ); Tue, 22 Aug 2017 17:03:06 -0400 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; From: nxf23276 To: CC: , , , , , , , , , , nxf23276 Subject: [PATCH] e1000: changed some expensive calls of udelay to usleep_range Date: Tue, 22 Aug 2017 16:02:27 -0500 Message-ID: <1503435747-29639-1-git-send-email-matthew.tan_1@nxp.com> X-Mailer: git-send-email 2.7.4 X-EOPAttributedMessage: 0 X-Matching-Connectors: 131479093846093106;(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)(39860400002)(2980300002)(1110001)(1109001)(339900001)(199003)(189002)(189998001)(2906002)(8676002)(5660300001)(48376002)(81156014)(81166006)(305945005)(77096006)(68736007)(356003)(50226002)(50466002)(86362001)(50986999)(4326008)(54906002)(8936002)(106466001)(498600001)(86152003)(105606002)(53936002)(551934003)(33646002)(2351001)(36756003)(6916009)(7416002)(110136004)(85426001)(104016004)(8656003)(97736004)(5003940100001)(6666003)(47776003)(626005)(43062003);DIR:OUT;SFP:1101;SCL:1;SRVR:SN2PR03MB2270;H:tx30smr01.am.freescale.net;FPR:;SPF:Fail;PTR:InfoDomainNonexistent;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BL2FFO11OLC010;1:+Z3KGTSk92ymCVVrzGmDQ9XY4u1r659fcO23dX05gyjP079bDD4Oh76nyunbT1m0CBefv8ZA9VJ+FWt43JN87fJzx2s+u/zL2CMlp56W3wJeH6z7UiBgrO8kWKYMHsa0 MIME-Version: 1.0 Content-Type: text/plain X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6cf63a98-8497-4a58-2d32-08d4e9a12e8d X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(2017052603031)(201703131430075)(201703131517081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);SRVR:SN2PR03MB2270; X-Microsoft-Exchange-Diagnostics: 1;SN2PR03MB2270;3:wZt7/iGeo4f6AmRSZ+DpFn5zOq6ziCaCj8DM9RwwUvfvZQ+nonflbk9chvLc60gcksSegjBa3LvB7kdEVYIRrRtZ8xzdvxvDLDlyKOBTesR7J7AEJ8xf2UGc4G+fcAH9RESe535mHcYRSYPhdX4Rw6T0iR8Y2L4KTQyYJHLHbHeAB1l6tWgzjYPIY9EiKCzu0VQ57/PBzPAlwkJmwbTFU3EANxeko2LH7ZvXdnTqJbK9qiRWprBwWPl6qPXqxcaiRpwqYfg0TRqXEVg1j+ndGsRcKSdHxQGtMH53vFfEQfMHDJRLVMpFt42YRoRqJuwMb5/NBPEx6DZ7xfdeVKbRNhmVEMaGKjMDRhyPndyaOes=;25:YNto3QW/+XTO4Iox/OKdJC7ATLT7ETXKe0mtGbkxsBXoBZJjQCARwAXn579egClZgj3zU4RFIuhnhuZY3DhaebMALoOSC0/10Bnhor2DJkDIy+GB6jY8mLhgNeSJqd5n5ZrdgIx6DWXMjpMyZ0v3oFNoCOY+M0wjFVBT6hx7qFOlg2+1lBexfv/zYB2A4XAHzupufkF4GefOllROzl5ULVlD17yqywFlhLjc3RkCsoSnFHCOgdruuTebNx4Fizj36OjVjuo/ltbuFFH09cnZx1dtLbsZmz/j8RhI431fTk2FREqLMPIhyShZnRkCg+QnGE+HX5pzYWMycRlM93+1+A== X-MS-TrafficTypeDiagnostic: SN2PR03MB2270: X-Microsoft-Exchange-Diagnostics: 1;SN2PR03MB2270;31:BwfTUfj4OtuGJ5+TLDanz0BM+9IC6m0lgq8GcfDbJOk50Wle7VYcSUMGiNTJ1oZ6WOFAtNMtJnK9K53kem4yFUzfoaCevyX0ql0+gIkb+MITMRCDiudJqPY+PnxMdWVdB3k5x4R2NWUMcl6d/moMoVBO5DwQNMWbUvzgRWoZxSG3iEgYTBBMxV3uof2f5Ee0OOix1+e+mNHyUG6uHmdKZtVVpdWSuCj21eA+Kq4jm5c=;4:jA/NBgyGujpDPBL2ls4E6kdub5iBOk8pbBDW7HTW/613t9czB2id3rfoPICEy7UzJhRFmm2+xxkjls/epNc7NyXFLpMUghJoFaEU55NxDEW+ND9PllVyVxYYD7n3mHDuG3fWdPa7WKL6JYYzL2kf62vZobKjjX53c0AyWQoCRI+86KJSjYZwxLOllmTOHVj2VfMITpRyKE/THRTx3WEkrKfGCeQ0G+oBR3iExLmZcgfUuzRdhcrbf4iPeVcLWd9KCqIDwhanznP4fSb3fK+x5/VWqRc4K7C/9EDvzjkjqHX76VybXrDno9Neq7hBfSEUlOLTTb/uQqJ1gp44376wUQ== 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)(601004)(2401047)(13018025)(8121501046)(5005006)(13016025)(3002001)(93006095)(93001095)(100000703101)(100105400095)(10201501046)(6055026)(6096035)(20161123563025)(20161123565025)(20161123561025)(20161123559100)(20161123556025)(201703131430075)(201703131433075)(201703131448075)(201703161259150)(201703151042153)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:SN2PR03MB2270;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:SN2PR03MB2270; X-Forefront-PRVS: 04073E895A X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;SN2PR03MB2270;23:2QPvyGwknVbq5Hrc/jXWpVTvN4vMdKq011JE7b8oU?= =?us-ascii?Q?FrdQ7XFrLiia45Haj2jk0rjCFSues6Kdytdfjwqdt/4vFxO/UeqQ16pe8OSm?= =?us-ascii?Q?qepRwqxvx47dsqM4s0ivecYYDWdGdQKD9NCadD5qb0UP5Tt3WFraVLC637pL?= =?us-ascii?Q?VX5nRWKcaOyF5xvdh6tTBS9rq2WPjHFIyZvhFfuWLU8l4PYanyoYkR8nF2Vz?= =?us-ascii?Q?7iEVP3jpCeaVicG/rA5tuCcEqZoSH/MuU1j5KAjCJcoOHYwXG1TmnXviD92j?= =?us-ascii?Q?7jZc0Fol46gwhD1rw6wSfWEvHInSZpBwtT6UAyrcA4bqMdYVSO/6Lxs9lMcb?= =?us-ascii?Q?CLYWq9yuSHWBxU8/BsH61T2oxKdFWElAb9UicP0bKQpNw4oZ14AdWdjNOTns?= =?us-ascii?Q?fm0ICrQCv1gxABFPPIxuaNEpbTZD2p2AAazwkMvG9YpvZccY95nU+h4Gj2/a?= =?us-ascii?Q?uXgRMKDC34H+csZbbDYlew/bwwYsLOCce78l6xtr7T8feaCL8haErBEKUTeY?= =?us-ascii?Q?TM5OJwmAk/HGMkg9izZTIbC5GdDDRvaMgtcqqOmsl+cr49kPKhJ31jmr9tdR?= =?us-ascii?Q?OBDZNDz0Qe8eKE70b2DMtquiY0arZbZv+j02pq2f1xjx+5zQB6mZ4QcWGx3R?= =?us-ascii?Q?bQKbkggyzATpkGoDwzlHxDSuRGKS7TA9LRpomi0H41JIe1fyldSKWK5Lw65L?= =?us-ascii?Q?ZGCte/IoiScxBSnEBBmy2dniDlDKgi2+e6fVBbVacqclCoLwYGpbGSzBiovp?= =?us-ascii?Q?OrLCCbDy7DxuplnAj8Wk3DXdOGFcxlSI7kpwwsyTdp7pswU98J3RTb7Yajij?= =?us-ascii?Q?cEJb4vS9LgS1DnFrjNrcXV+3GZNwvdkWyPkmASxmC3uAgAqKMnAErams8LFD?= =?us-ascii?Q?AMAvtseDxR7+Zru08SgTTE4/x8YDGThAYXW5+iSV/YjuYY56/x8iJHJgMcvs?= =?us-ascii?Q?YVjUHHL3xU2OLaqLSWQ3Xt1oDzD3pn3Za5QNRqW29HhSW5giWqfTDJNQjAkN?= =?us-ascii?Q?YbF4HLAyjH9j+/gviE22QDzU6KjfhI8IRU3FDP3HO/g2GohNGh0xrVNshjap?= =?us-ascii?Q?fXa+i+F3d6eux4LWB5gVCJ/wd2v3Wd/RhB5FP9iwOgxFOTDf0G6d+5TmNfMJ?= =?us-ascii?Q?ef6OVNxAfqABIeNn7zc4XZD8EaejJ2MUPi0X9YxEvta/FU4kecH+w=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;SN2PR03MB2270;6:UM8PzLgoP4ep6+1ZsTztK/ukTA2ydAtkhIcPed5xfe5sZfMajTYaDkUEFZQMZUijwoItK7UK/T3Il3P9ffq9ZWxbeL0mm/gnS6nOer4ekR1Bgv5lxZga1QSsjvtReqYH0MzQNnAZQGsP/YR+L6Mbi2ItGKh/XQzqnyhnOcdsO773xmwoz3etu3fe4iqC5Ix1202hE6Ls0Hbhhr/ilbnscDr+YBzx3fTlarkc8YCvXtIlLs0Pt50eXFWXi6I/KfzmRh+6A5n8RuVtWXuO8QvXUfsJ0XmheAFzqOX3eQQXZz/ok9EEj7jPBgBYJyQGN5LhH0ggnMF53UM8ZRBhO4ndTg==;5:27IwSeBBPmqgZglNWaFwWyNM485xTXoDo9yMu0Qk6sr3LOGdyhVF+O3U3zULHLDYOeJLl3WSjkOxVHNxIEGdAe9b2CfC8+YZbzTs1Zs8YFJhB6WdcKUcGIfNcVNsUNC0f1frvPHrT4TWStYYvFKcWQ==;24:W4gbFlEypkQnNL6Dya1aH0hgPSHcRgVP/LyA2yzrAg3pZvyrJ2E8cnbaloOU4wliiW1WIbwqIusesCpCiGUGonhrGGIsLpDBQoQnaYDPySQ=;7:1bvfdl/5FrnzvTuRGvRAsxsT1cCrO1DJmeABh3E85EhDx+4le/e5mTGhfSLMjRplOFkUFyzPjLIMbhYaKXsKqUNLGADOcDe+MtUy8o3pa+e/DN72wXR4GEnG8zASBknMNM5MvI+DtdI3GOxucdWi+aQJPhtUMpHEBWSSNp7rWgAHssJ2fLESj714TWJARQNQ5JC6cf45l9E0DPBjyd+4aV3gadxilAJiCjRqgbCbkng= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Aug 2017 21:03:04.4377 (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: SN2PR03MB2270 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Calls to udelay are not preemtable by userspace so userspace applications experience a large (~200us) latency when running on core 0. 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. Signed-off-by: nxf23276 --- 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..ee6ab53 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(40, 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(90, 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(40, 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(90, 110); return 0; } -- 2.7.4