From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1034851AbcIZClD (ORCPT ); Sun, 25 Sep 2016 22:41:03 -0400 Received: from mail-by2nam01on0048.outbound.protection.outlook.com ([104.47.34.48]:42718 "EHLO NAM01-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1034271AbcIZClA (ORCPT ); Sun, 25 Sep 2016 22:41:00 -0400 Authentication-Results: spf=pass (sender IP is 63.163.107.21) smtp.mailfrom=sandisk.com; infradead.org; dkim=none (message not signed) header.d=none;infradead.org; dmarc=bestguesspass action=none header.from=sandisk.com; X-AuditID: 0ac94369-ef8199800001694f-48-57e880e6d62f To: Ingo Molnar CC: Peter Zijlstra , Oleg Nesterov , linux-kernel From: Bart Van Assche Subject: [PATCH] sched: Change READ_ONCE(jiffies) into jiffies Message-ID: Date: Sun, 25 Sep 2016 19:08:45 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.3.0 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrHLMWRmVeSWpSXmKPExsXCddJ5ke7zhhfhBq1b+C0u75rDZnHpwAIm i637WxktjvceYHJg8di8Qsvj/b6rbB6fN8kFMEdx2aSk5mSWpRbp2yVwZTw/eIu9YKJ8xa5P J5kbGJuluhg5OSQETCQWfmxh6mLk4hASWMokcff0YUYIZwejxKnWG+wwVXvPrGWHSMxllLh4 8DILSEJEQEni8Ml2ZhCbWaBS4sCjM2A2m4CRxLf3M8FqhAXsJI6cfARm8wLZZ9/NYAKxWQRU JX6fbgaLiwpESNx62AFVIyhxcuYTIJsDaKamxPpd+hDj5SW2v53DDHFPE6vElsM2ILaQgLrE ySXzmSYwCs5C0j0LoXsWku4FjMyrGMVyM3OKc9NTCwxN9YoT81Iyi7P1kvNzNzFCQjlzB+Pd J96HGAU4GJV4eD0OPw8XYk0sK67MPcQowcGsJMLrCIwEId6UxMqq1KL8+KLSnNTiQ4zSHCxK 4rxu976ECQmkJ5akZqemFqQWwWSZODilGhinqYp+fXEh2+mQecC9LAbjRSrvZp2f/ltR5aTd DeZ9/wye9yxy4t6R67++QJPjyMUT2mdrwj2t5BbHn0sPlp4ht/PSiQlyCvOEzf82b5a5xyb5 dsHkQk5N/lm2k3bF9ia8fDyJsy7x7+c1m00nflw+beUDA7acAhZhjf1m51L+itWqbtDU/c2n xFKckWioxVxUnAgAJWWrsmECAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrCJMWRmVeSWpSXmKPExsXCtZEjRdew+UW4wdLLUhaXd81hs7h0YAGT xdb9rYwWx3sPMDmweGxeoeXxft9VNo/Pm+QCmKO4bFJSczLLUov07RK4Mp4fvMVeMFG+Yten k8wNjM1SXYycHBICJhJ7z6xlB7GFBGYzSrTtCgaxRQSUJA6fbGfuYuTgYBaolDi1NBckzCZg JPHt/UwWEFtYwE7iyMlHYDYvkH323QwmEJtFQFXi9+lmsLioQITErYcdUDWCEidnPgGzmQXU Jf7Mu8QMYctLbH87h3kCI88sJGWzkJTNQlK2gJF5FaNYbmZOcW56ZoGhkV5xYl5KZnG2XnJ+ 7iZGcDhxRu1gvD7R/BAjEwenVAOjSQzXMwfH9EUK4bFH1dP0Yk7d3Pl2w40z/Idv3ZrJzxJ4 fJWuycnHql+mbf0z49i0udd633ZIiWU+Pa7ToPj55tXktVfOt1zoXCvh5/1xdtaex34LW8Qk 7jysfPmzw+rkF6b/vFVc81cfP/NQV/iOlSPvvaO+x7pzoxjk73//u/7y8pQ3F/NjU5VYijMS DbWYi4oTAWtb5JjXAQAA X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:63.163.107.21;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(7916002)(2980300002)(438002)(199003)(189002)(77096005)(106466001)(68736007)(97736004)(4001350100001)(50986999)(110136003)(31686004)(54356999)(2270400002)(229853001)(36756003)(356003)(23676002)(189998001)(230700001)(33646002)(19580395003)(81156014)(2906002)(586003)(8676002)(6916009)(81166006)(65826007)(92566002)(19580405001)(86362001)(4326007)(65806001)(65956001)(50466002)(47776003)(5660300001)(11100500001)(8936002)(64126003)(69596002)(83506001)(87936001)(31696002)(305945005)(7846002)(626004);DIR:OUT;SFP:1101;SCL:1;SRVR:BL2PR02MB2130;H:milsmgep15.sandisk.com;FPR:;SPF:Pass;PTR:InfoDomainNonexistent;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BY2FFO11FD035;1:xSPm54LEtlN56V4YLyOtMms/JTaO6Y8XGpg2sVA8o3zaonCRZDKHNnhgumMyxwkyV4+cb9oAu3vBdZr7kkL2u0Zcb6tG/2Lql+jfy77Nao6G//4FeAvI2WJISPxAdJWVEVvEf6HkrCtyV0uNQMvXgzAbt4SPpvJmb8sKkXkvt/ZWOWguZGKP9/Clybxdt7VBVnAoD888xZHaULyx+5tMzeoVbFISG7V2fgRYAcl5W36MCcIHkwHfANYoE4dkBVZiTUEO2C6dTHX32zkzKzssCmScoofjfX5WCJUQ15CwHvaAz7y2R9EqZR+g9dt/GzN9fejZ2T1s0O9fywr9ixjd3iJUPYfZ3iKZcCkur7SOsM3PvDaX10Y8l2tybOy178CwU20XjDh12Q/OyJONoF8fnl1G+JIOS9EYCxwelPqfOkF2kk4o24FmZRAuU57Ox38RapLykiwxXSFI5rInLZ/bLjVf7Se5Slubnfl3QQMoQcfzRkBCaNS+lrTdBxoQIOc0lskhpuxU930jKfA34Wrzxg== X-MS-Office365-Filtering-Correlation-Id: b5564d1f-9745-490b-a9a0-08d3e5b21078 X-Microsoft-Exchange-Diagnostics: 1;BL2PR02MB2130;2:eViNnOsd8rcYtb3/2zOE8ECKA/PxFGljsiNUPLTb2hWuRllpOizwPbLkuXFmQEhn+z7PAhOB4T3Tsbsky2TUHmFOL15SOaHnlpq9vglWzoxIuf34gGTKhPTC8IIOwXzwVPV9tK1VaEyiLllnZbxoTcuwZmZj29xIoeszlpks9IsjTTuLJJf85NUBiz8YWtZX;3:cv/Bw7nSX+fyaoyMybvd4xcwC7h+binn3jFbyRYgu3ZXpJ7fJ4Zjk+jM7zjHes+MxnsHdaDDfsNwavcZVJl6nrLEvMI/M+eXFVDlqZsjGIrgH0g55ALyAM4KLKjvWRZQ8ccnYD9P/BqfyCDdFTiW7SxDwkg3vXdWEEc1vcK+O2uCjA/p2GAeNbMUFhTKNqw4adW4MXDek4YNbk0GoFQMw92VNLqh5I0napNrGeeXhDx2pfefX+PQPGNCeGyD3DGNzyLEyJhiccsVyIdcprrd7w== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(8251501002);SRVR:BL2PR02MB2130; X-Microsoft-Exchange-Diagnostics: 1;BL2PR02MB2130;25:ZykoG6xd1OeJzuJ1TjuHpTZv7R6AS40nabOmxh4t0S8SZs/IhHVmr1OrQcVJ5jPBZzD55iHOzjGSjONjZVBk4LS8QxCd+GyCLq3lavOOZHFkX8wI7M1t1II+mRjtUQzJd36PeEk4caJfx5kvvk8sePl3t2Z9D2p4AN5Jf2I0yxgm+y7m/gXdSiCGc10ZI8A/8FHnRt3uXUbK9XSZSbBA7GX3rnOm4ogNZlVYzG+NY3EkG17vSsSO0QfLsEaiDq2aFUNjUN6tnqWwTlspxD0GjUtASUrI4RNxk70RE8PRPnmUTZxwkEyOrPr/LJJj/wcnub9ri1QnJZPvnq2NtoqSvJSfyISfqhmKU2ODFXbvENg0M/iy58AU6QZXMlr4Y0OmI0ZIGwWpNiinLnm0FPbrctGrkOQVHhPMcjhx4SMtKDkkULG0e0MC0XDaan92X3gk0o9wOk4GNbXvAR1TqjbiXgTb05eHSdVoCHipPXXr5U05SdRQZ9Q3DVh8lzj1V7Pc9h7ziIJZ9yKgKbBBhXpMABcJxoARrgQZ7M1SVvTblgiSZtviscsAuh1v8aTO6Knb6SYI2CJjZtPV36BNgkemQV7uE7bjPcrBQ+EOHH1MunRtBorUFLn9clJMynYbl9CuocQV7/k4A892Is1OES37SA/mQ6wi/VbWVNPQbDaohgRrB08XWO7OsXZnEwU3YhY0O4e0SUHnLlABuZayixAEe5lyo9X0E+njveWN3gjiKdDqh2anOMhDzWgbPLdX8sunGXJNwcad6vSMsr9/pcZ2Dg== X-Microsoft-Exchange-Diagnostics: 1;BL2PR02MB2130;31:pUDLtEKoi+jDqWONULvk8pqw+xhDh3BYUO9cgw17k5xiYFc8eH2JE+r1oEVsnGGAvHzWB5NcA15tkTuPwu/tBkV+TDhh6y0EdLPFzc64t64Vb/SFW+KsLB/0nDHCfuvvfO8Q5kRDUbxxajtgo01mxPqjEVZJI8scVWHECvxXW2epFBOM9t/K9sbwrZFxPQzcOy75OX6sgqQ+27vBTzU0Du3FZ3wGk9tkosN55sWEB88=;20:1DhHN9IYvdkM3WIYneTTmQKs1OM83gnEwS4clsi//Ew9f3Hrk7zhW+uLLOFwGARKxQhgu5lCUuKyxlsORg3+DMkq7l54wPgLwHrJGHbkp4IVEcpnMQN8orWax+TuLcGj0W7LQnMbzdBg5sP4+difh21FhfuEidPNsI3PJ5Djhl7LA4vPJ87YKPPzA972/EBPjwJdG6ZIAfpztjCLn2BOL9AScge4ugS9CXJgeaDr0uYA1b/Mm92IPLb++ve1ycy7v0g49lfQhMrDlgLWjh8Q6UEM2LXNCj7kerwenpYxBBPSkuhgAH64a8lQ3E32WxdNyhxMXKzsJtjl5Wz6mP4AGWUFIoCACo0WmHU4HDerW9AsxHojREPjbjbCadKroYQ2ThQrunqVDEbFM8leIFvz3BnFcbKS3BozajriL1ZgeNl+9eb4xaD3bZ4KkiAHiwqXrv1+vqJQvrnh5P9blaYqKcP535dHvk8xQSW7xIe0u14OFHjE5rwYtD4N7na0ZxVZ X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(42932892334569); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040176)(601004)(2401047)(8121501046)(13016025)(13018025)(5005006)(3002001)(10201501046)(6055026);SRVR:BL2PR02MB2130;BCL:0;PCL:0;RULEID:;SRVR:BL2PR02MB2130; X-Microsoft-Exchange-Diagnostics: 1;BL2PR02MB2130;4:X6fHOluKPJpvJd++y3ka2a8mRjOB8nhZVWnRcgXzn236AphAiViR7GRfeV7qydZJ23nJ7kUHAsCm+usYEN1rAcQ1XaVpuathQ+h7m7lgAcmHQ6GDZ1bR/4m+5EzwMOsTaQrSnErV1O+32zTzjQLpY7WTP/Y944SjcwPhkmXXAsUj60M1WC5IIZ69Du1kdKM1+hibFdtfSAiEl/kuj56RC+F6h69PNc7C+O1MWiHZaQfuRTSD4LWnpylx+vAaMIGCW8dGPC0j8fdLJly3zixzly/os75L83fv0kC1ssGjc0e4nsGrgglP6i5F7lyIKxqqFI7Y+L1/1QEQpzJR2kLRVzilsnkfHLPISgqu/mzAbvaP5qdwi9ilKO3b2Mr9U8z7cfh32aq+Yu2bRoqyRssKJwIj5SbGpQt12zr/PLBBtgoXRYH3h5JnqWnnoYsEvr/dG7dMWh2Hr4bpCGEfWnWyLjuXV3XyaLlNWoeKLlSwvZc= X-Forefront-PRVS: 00770C4423 X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTDJQUjAyTUIyMTMwOzIzOjMvSUw3KzFYSHgvck5kNFAzbHZZVXRmWE9W?= =?utf-8?B?c1QrMk9PM1FyVjRqcjRUZ0JrZzFXekNRZWNNR0NYalFCNlRSdXZ1YzFzRkxX?= =?utf-8?B?ejAvcFA2Q3dSb3M0OGxoZEFrdTRocmFjdUh0MzJNMGp0UXJmd3BFS1RvcTI3?= =?utf-8?B?ZnNReHR4bi9xQ1ErSGlPWmh0ZEpLQ1lJNUlmY0xBRmVzNWV0TGJqbVBaOWI1?= =?utf-8?B?QW5qYTlTQyt4ck1tSGRGMnJDNXZQY0Vpbm95ZSt2VXJNVll2OXlDK2crUURH?= =?utf-8?B?YjBIdW9iT3JNUU8yUDVVVVUyNVJNSksrdWhrWXNXSm1ZRFRRSDlpRU5hdUxm?= =?utf-8?B?ZzR1TDR5ejBIR01SSE1nTkt5OE5xYkNxeG5GMGMzYlBuamF3b0s1UUp1aEJn?= =?utf-8?B?MHN6NHhkeTA2c3IrbGFLZXIyWUpXN0ZRUzh5VnVvTkU3NGFibEY2WC83Wld5?= =?utf-8?B?aDVBQ2hhTVJPL0hORFREcmtjeE9wNEJaUXh3QjNtdGxUVFNwd0V5L0FZNGJm?= =?utf-8?B?bE1BTWxsUGhnSjhxOTkvNG5SZkxJNnoxY3RPWlRucmRpa3AyRFV0dG1lc1pm?= =?utf-8?B?SmVPbGlnaXdvanQ0dWdTSWxCTU9pUUh3N0ZKYm40cTVYS2RBMGRheHVGdFJT?= =?utf-8?B?SU9adm1NbE1UM0J4djlzcnRobDdYbEN3ZFhxbHAvQnRPb2p3djdzMmRHeE1X?= =?utf-8?B?Q1BTZFFuZ3g2bjJLNnJDaG9ZRW5iTHNxVkJlb01LWm9pSWgvVDM2Rk9TV21O?= =?utf-8?B?cGlpckNkUXVtOW0ySFRGQThIVi9NSVZJbVFEb1AyWVVtcERDa015UEIrWjVh?= =?utf-8?B?c1RqZ0Q2bmFOUGFXOUw3OEp1OXZZVHp1T0F0alhraUsxcEtuSkI5YVUxYmtJ?= =?utf-8?B?R3Z1NEJHa3pDZGsvb0hMako4Wm5QaEJhUjhpbmtrRmxkdjNvVWhRcHd5U1Ba?= =?utf-8?B?MzBYSTZuVDNYY3BqcGtNZFdEUHgrdzNxN2RjcVRydWk2NmpiZExYVmRkcktk?= =?utf-8?B?WUIyUXV6aCtaUEorTlQwdkF1TFVlQ0crS0pKVWNlQzd1ODVjVWFsS3E3OExR?= =?utf-8?B?dzg0QmJFaklmTGxPcERhaTJScUhnTm9yNlVTNTAvNThWbTlnUDZqNU04dU5t?= =?utf-8?B?MFNEMHFjdkQ1SzVQVVJEazJmUDBtL2ZyOG9aRVVzYnRBOEp5akliWmZWUzhL?= =?utf-8?B?VzFCWFdCZjJWdGJJVEdnNDJORXRCUHI4ckY3VG1DU1BNVXJWNFJ6V0dsc0Mw?= =?utf-8?B?SFNsakR4dC9WaXRSSXpENkU0NUhQSmwxclZ3UGdNejdDN1JQajNCdmpqTGth?= =?utf-8?B?dXAyaGRVY3FPUHZKSzlwTkE4a3hRT1FyM3FBdUF4em1BSWs2ZHYrcWJzN1Az?= =?utf-8?B?d3ptMmlkajR1MDhJZjVXNm1uRzBhK0NLa05ZY2N6K2tOQ3dxQXBuRnRkTGdv?= =?utf-8?B?Vmo2YTNQQ0JqQVBiZ1pCM3c3ZGVOQmtDMXJleURqaVVSRkUvamk5WTRKM09r?= =?utf-8?B?TGxiMXVQU29CYTVnOXNWRmZ6QnlSanRxMFkyNzRuWENQU1J5cGkxSzJBOU5T?= =?utf-8?B?Uy9DTmtSZ2FsNkljay96TTdqMU14NFJLcGQza2FLQUZzbXhoc21CNG93RnRw?= =?utf-8?Q?epVNq7lSXqu+4APKOCel?= X-Microsoft-Exchange-Diagnostics: 1;BL2PR02MB2130;6:YQDcw2yBMz/02QjxzNqlzyuxCzdYeKG+4U3rdpdYTjVQv0z8oUduj49+oLFjxC+LMa8e/+e8zBh8epZZZ70j+NCNn8+hToTt1Raostl+c7pEWDJ6DRERYmEyffi/XOGxHgwyLOdctPyW/c4ICNauT+DsmS5wTKJ0Z1DInMiywu/sYh4a3jUnK82Ag7f1BINW6YX2kPXGHERm5bxDT1AMZUw9COyJnXNcn0OlMJ7ZtsOuTX9Wn1JUJW0kpvWTKPVDOs6SR4RtP3qoFu2UHeK1Sm00EVHmHbxyo3WwrbsQg2DUlFK6OTgfDxMQC2TLhixzyxspTIEczWnEXHjneUft9g==;5:Po+b6T2uVzufH4v4/h3L9y8Fjr4Gj7CJBkLXANJ1Vt2iB3c1qs3W0lNWpqoCh1iUNTrcOUtxsIZtaRf3RF/2XxuCd10nyfZa12SqkhQnRT47UbFo+TSafLgiDEXCIbPQr72PQzHeqiDsgPby7Kc49w==;24:AvFFNDnlBQjAIpA6A4wVvDeWsdQiAGv/H899DzhUahCH03XCi9kfhwQ1eDaAaH1f9vZj+e0cqH+j12Ivr+zoajoYDGWG10tHsziS+sAUlkU=;7:sSLJwWy+4TclSnkQNjVSUogafd034vS3BRMmp2UUZNCzTIWupfTn9nNUcFRB0gE/yeqoztEZj5qsYZbOyg4emheMCDNHoUlTNvAO81aFggzbOaOitOjoG73iOkHGXouGzW/0lAQJZJ+8hv2wv0Jn56jlSkHx++/sM3S6xuKlBLG4j18V6lu9B7SEvTw8+IEzCNIxFWQgvWp5+f0pgYsbfUKmDrFh5LW6JM761hYkFTBmcX6cFNVl/zf/tTXEUJLSfI9xOQzkttOcLFSjFB2PpXKFUclRj2sr9rywEXdXzD2ZbXPqNauZBV+sgVW4Rig/ SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BL2PR02MB2130;20:SpibY7NriPBVHRHBD0NMScAwI1p8PC3pYLY9nV8jdtQXybEveWTcPGjeVXMnPtcNSzbDHNG/xb1cxlcNm1yTHh9m1avasu0+XznCVKPlqafvcZbDIxbY//MlGD1/walT9pOzRguKZkaSzBGjuq3UioolsRe2Dllsde/zGTnGkffE67GiQ6xfKne9j+7ZybKiDpufHTzyAMaybS3hFPfl3hKiIbwVQU3Yz6vpSYjsOU+BJpQaCjv0Msnvt4A0TVh2 X-OriginatorOrg: sandisk.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Sep 2016 02:08:53.2030 (UTC) X-MS-Exchange-CrossTenant-Id: fcd9ea9c-ae8c-460c-ab3c-3db42d7ac64d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=fcd9ea9c-ae8c-460c-ab3c-3db42d7ac64d;Ip=[63.163.107.21];Helo=[milsmgep15.sandisk.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL2PR02MB2130 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org A quote from Documentation/memory_barriers.txt: For example, because 'jiffies' is marked volatile, it is never necessary to say READ_ONCE(jiffies). The reason for this is that READ_ONCE() and WRITE_ONCE() are implemented as volatile casts, which has no effect when its argument is already marked volatile. Hence change all 'READ_ONCE(jiffies)' occurrences into 'jiffies'. Signed-off-by: Bart Van Assche Cc: Peter Zijlstra Cc: Oleg Nesterov --- kernel/sched/core.c | 2 +- kernel/sched/cputime.c | 4 ++-- kernel/sched/fair.c | 8 ++++---- kernel/sched/wait.c | 6 ++++-- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 44817c6..edb811e 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -3100,7 +3100,7 @@ void scheduler_tick(void) u64 scheduler_tick_max_deferment(void) { struct rq *rq = this_rq(); - unsigned long next, now = READ_ONCE(jiffies); + unsigned long next, now = jiffies; next = rq->last_sched_tick + HZ; diff --git a/kernel/sched/cputime.c b/kernel/sched/cputime.c index a846cf8..9aecaad 100644 --- a/kernel/sched/cputime.c +++ b/kernel/sched/cputime.c @@ -691,7 +691,7 @@ void thread_group_cputime_adjusted(struct task_struct *p, cputime_t *ut, cputime #ifdef CONFIG_VIRT_CPU_ACCOUNTING_GEN static cputime_t vtime_delta(struct task_struct *tsk) { - unsigned long now = READ_ONCE(jiffies); + unsigned long now = jiffies; if (time_before(now, (unsigned long)tsk->vtime_snap)) return 0; @@ -701,7 +701,7 @@ static cputime_t vtime_delta(struct task_struct *tsk) static cputime_t get_vtime_delta(struct task_struct *tsk) { - unsigned long now = READ_ONCE(jiffies); + unsigned long now = jiffies; cputime_t delta, other; /* diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 039de34..db5ae54 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -4802,7 +4802,7 @@ static void cpu_load_update_idle(struct rq *this_rq) if (weighted_cpuload(cpu_of(this_rq))) return; - cpu_load_update_nohz(this_rq, READ_ONCE(jiffies), 0); + cpu_load_update_nohz(this_rq, jiffies, 0); } /* @@ -4828,7 +4828,7 @@ void cpu_load_update_nohz_start(void) */ void cpu_load_update_nohz_stop(void) { - unsigned long curr_jiffies = READ_ONCE(jiffies); + unsigned long curr_jiffies = jiffies; struct rq *this_rq = this_rq(); unsigned long load; @@ -4851,7 +4851,7 @@ static void cpu_load_update_periodic(struct rq *this_rq, unsigned long load) { #ifdef CONFIG_NO_HZ_COMMON /* See the mess around cpu_load_update_nohz(). */ - this_rq->last_load_update_tick = READ_ONCE(jiffies); + this_rq->last_load_update_tick = jiffies; #endif cpu_load_update(this_rq, load, 1); } @@ -4864,7 +4864,7 @@ void cpu_load_update_active(struct rq *this_rq) unsigned long load = weighted_cpuload(cpu_of(this_rq)); if (tick_nohz_tick_stopped()) - cpu_load_update_nohz(this_rq, READ_ONCE(jiffies), load); + cpu_load_update_nohz(this_rq, jiffies, load); else cpu_load_update_periodic(this_rq, load); } diff --git a/kernel/sched/wait.c b/kernel/sched/wait.c index f15d6b6..af4959d 100644 --- a/kernel/sched/wait.c +++ b/kernel/sched/wait.c @@ -601,7 +601,8 @@ EXPORT_SYMBOL(bit_wait_io); __sched int bit_wait_timeout(struct wait_bit_key *word, int mode) { - unsigned long now = READ_ONCE(jiffies); + unsigned long now = jiffies; + if (time_after_eq(now, word->timeout)) return -EAGAIN; schedule_timeout(word->timeout - now); @@ -613,7 +614,8 @@ EXPORT_SYMBOL_GPL(bit_wait_timeout); __sched int bit_wait_io_timeout(struct wait_bit_key *word, int mode) { - unsigned long now = READ_ONCE(jiffies); + unsigned long now = jiffies; + if (time_after_eq(now, word->timeout)) return -EAGAIN; io_schedule_timeout(word->timeout - now); -- 2.10.0