Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933395AbdCaPb5 (ORCPT ); Fri, 31 Mar 2017 11:31:57 -0400 Received: from esa3.hgst.iphmx.com ([216.71.153.141]:50013 "EHLO esa3.hgst.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933115AbdCaPbz (ORCPT ); Fri, 31 Mar 2017 11:31:55 -0400 X-IronPort-AV: E=Sophos;i="5.36,252,1486396800"; d="scan'208";a="7270282" Authentication-Results: spf=pass (sender IP is 74.221.232.55) smtp.mailfrom=sandisk.com; vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=bestguesspass action=none header.from=sandisk.com; X-AuditID: ac1c2134-817ff70000005688-ed-58de7662a5ef From: Bart Van Assche To: "tj@kernel.org" , "paolo.valente@linaro.org" , "axboe@kernel.dk" CC: "ulf.hansson@linaro.org" , "linux-kernel@vger.kernel.org" , "fchecconi@gmail.com" , "avanzini.arianna@gmail.com" , "linux-block@vger.kernel.org" , "linus.walleij@linaro.org" , "broonie@kernel.org" Subject: Re: [PATCH V2 04/16] block, bfq: modify the peak-rate estimator Thread-Topic: [PATCH V2 04/16] block, bfq: modify the peak-rate estimator Thread-Index: AQHSqjPmqK7Jhq4010+VKTKsNo1cqQ== Date: Fri, 31 Mar 2017 15:31:44 +0000 Message-ID: <1490974279.2587.5.camel@sandisk.com> References: <20170331124743.3530-1-paolo.valente@linaro.org> <20170331124743.3530-5-paolo.valente@linaro.org> In-Reply-To: <20170331124743.3530-5-paolo.valente@linaro.org> Accept-Language: en-US, nl-NL Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [172.28.1.254] Content-Type: text/plain; charset="iso-8859-1" Content-ID: <1877D44A2B72FA4F816ADEB88ACBC9D2@sandisk.com> MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrJIsWRmVeSWpSXmKPExsWyRobxn25q2b0Ig1/3eS2+vfvCZLH6bj+b xdSHT9gsbmy7z2wx5c9yJou9t7QtLu+aw2bx6s9eJotfy48yWhxfG+7A5bFz1l12j8tnSz02 repk87hzbQ+bx+dNcgGsUVw2Kak5mWWpRfp2CVwZl5Z1sBTcFa+YM20jYwPjI5EuRg4OCQET ifWdLF2MXBxCAkuYJOZd6mSDcC4xSryfuhLI4eRgEzCSmD1hD1iViEAjo8Ts9pvsIA6zQCuz xKVl11lAqoQFPCReXrnGDjJWRMBT4tNCWZCwiICeRNOhc2AlLAKqEhPeXmQGsXkFDCWuX24D s4UECiS6nixiB7E5BWwllvVPZgKxGQVkJRZPbwGzmQXEJW49mQ9mSwgISCzZc54ZwhaVePn4 HyuErSDxecU/Noh6PYkbU6dA2VYSGxvbGSFsbYllC19D3SAocXLmE5YJjGKzkKyYhaR9FpL2 WUjaZyFpX8DIuopRrDgxuTg3PbXA0FSvODEvJbM4Wy85P3cTIziCFU12MHZsdD/EKMDBqMTD e8L7XoQQa2JZcWXuIUYJDmYlEV6ZHKAQb0piZVVqUX58UWlOavEhRmkOFiVx3qXaUyOEBNIT S1KzU1MLUotgskwcnFINjJNFH5ZHT0zkkH8VWTBdpH/lMyeJi5xC7odfHLrO5XKEa+9hiSsx yzwWno5cyvPYaHvRfIYJbw/wNFzrXnD2gkpf5tw/U7teP3jbl3NimbphdIhuWucOrZDdRy9s WfLb9aRsJ5/aymvTnzmrXt34K8zwYGXbl+ty3G3Td6ipX14uEByUs7IJ6ECW4oxEQy3mouJE AKP/vUrcAgAA X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:74.221.232.55;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10019020)(6009001)(39860400002)(39450400003)(39410400002)(39400400002)(39850400002)(39840400002)(2980300002)(438002)(24454002)(189002)(199003)(377424004)(9170700003)(4326008)(33646002)(106466001)(50986999)(36756003)(38730400002)(81166006)(8936002)(76176999)(8676002)(8746002)(54356999)(23756003)(2900100001)(2950100002)(229853002)(47776003)(39060400002)(3846002)(6116002)(102836003)(50466002)(189998001)(7416002)(86362001)(103116003)(2201001)(305945005)(7736002)(356003)(53936002)(2906002)(2501003)(5660300001)(54906002)(6246003);DIR:OUT;SFP:1102;SCL:1;SRVR:BLUPR04MB388;H:sacsmgep15.sandisk.com;FPR:;SPF:Pass;MLV:ovrnspm;MX:1;A:1;PTR:InfoDomainNonexistent;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;CO1NAM04FT055;1:DAVk2v45KXO6RKDEDh/8L6X/LzeIAt25gPz4afG//F285JpK/vDy1m2X+AWZoBkoo0US8S/FELfzbK7g+U4unHc65d6zdU99ZjOq+YlEM8MQ9ctaPufHpLXWwFtgJIi68gT2baUK5IYN1tM1hmNYZcUlEeU4RO/bp0yeoW0gktFg6gNZCBjdlt8U566tDXIPp/uH0k29rmZbv6ygjkAxLdL8Y+sdz3FUxV2yOvxd1b4HItzJaWLTzoH1wkcJN4nIa29rK6M81n6LBFgrLi0CwtB3HfZ2IoBFjaeo34qSns36ZUaCIwyWI/Pb78PJgGDkeJCR1iP5m4VH4O1MkRuy4iYq1A4xfKO1nNPhX4fBEtvpUmG47cOqqT2CdYtPmraLPnEp8upkAEamCxhjDiICJ8zx0jqHMk9V17wVxrXchCQRmCSGjvbRSx23svQNjsT3ygY2No6sFcDq+ZV4i5Iao8ZtjUv9kP+MxZUVHCRYFaw5JEbvGnUObIWaMh7g2INbtrz5TsCMd4L0YCnNR2aFlKyiZnh2vBgNtm3XPc7fmcmqplHEH41JpwYZlaS67xpBfI5KFbu0HAdoCkdEJet6LZKrtUYivwjvWrYzLlDJ8aw= X-MS-Office365-Filtering-Correlation-Id: fa5493d8-e9fa-494a-6107-08d4784b0ce9 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(8251501002)(2017030254075)(201703131423075)(201703031133081);SRVR:BLUPR04MB388; X-Microsoft-Exchange-Diagnostics: 1;BLUPR04MB388;3:/94kY/wMFvmnBXeLwkyCFIFtiXBzH7UjmqeAYZl0qN9clo6VjuigmkOQ2WAmozY3ZFsEA+LO6YEkei9mr9yZofMc2znYpF4LSINs4lzC6JnaofraztePtWsGcevHGaO6xWIif+Szr9H5yucgXeXAjyhKUGRFerOxDdIK4Q9cTaDhEGGJnL1oWBZjjxOgbEz6awiHBkuLvDOrX5GIm23gb62XOSTK1aEZdtvNyDuAoOkl41G9+sLfWyGyAbFkzdFq9mZmTHm4hON+v0EKty7gfpgh/RE8EmZ6BikrlfzjqEAJHgmWpTg4Wzqjedih1uWPX08aq53jMMi5dVTNBubnx0qQponsjgezjwEWegPfeSmuxWEnfK9er+LcxeG6pbprC8pTArWzFyNbmjHu+V/AxdrLedobkn59q9BC8J8ySgWF4V74mBJNHMm0FtJfyErSETGEzz8sdxZF/TOnce/yk6G2JkefND7qU2Dh6s7Mcr1bSnjBFlSOY6UV/ev1Us17 X-Microsoft-Exchange-Diagnostics: 1;BLUPR04MB388;25:MVM+ac8SliVHOEgxIcapwfn4opTybTmb+/XQs6wwtx9Ls5hXGqwTdYDLZnJ72WnfCtf80OZ3hLimBMggq7VnFhZq1ifYT2TnGPgN3m4Ufyyh7rPQfWplLPHPOHJk4uIb7eRoV/J12jGo8Ocw5QvxFe6tkoszUTSjTeYwGQT/ahizTGCg8fsXZV14kLamTreq+nED9Bd9hM7LENx/dI2C5zdvKUTZTm9KDqTCW3eHe8uVzIho4wjhpRSZRJWKLbyAfGw84TeaKWt158JyOUIQ1WiMjE9pM5JjXAGSvj4iJQUlmeJ9cyG/jpXE/ZWOdtV5W7INi3UaN2vGjq7tmi8FkOtP2pc7H5hHoxTtSzkQuBGctuHoQCLHH/h3Ydl80GTI9lufKEbN65LQxRaH8nZYrPkroLsya8mywC/uakACeWU8fPHLfjdmA7ngpPWc4R9jcqMdXsgnHTu5JluXitxqHw==;31:hFMpkajMF5p/HXPDX+cyGRuIzCn/I83KW4iaV5iuQG9cqqZXTEh0Ig2VQRKSdKSGAXRMBw+nUdKVoLg2+33o0ZYnC9XN/bfel8V/CEL+IF9hGuwPdi2bJPVOq6xHlxgJ+ZPu5OAki1wbbhaVcTSn+i3gY368/eMAs7VXzcHgeaB9LsW2Cu+lG0q+AHcdO3WivEwKPYTbRR8BPTZ9xnd4tWgiDMVx6KAWLSUxmqYjevtsYBMsNQ6vXQY7Fkh7dJkvlkhBUZvHWsF6oUF44PoOWuZAFAzSm8BaHWUHxE7fnsA= WDCIPOUTBOUND: EOP-TRUE X-Microsoft-Exchange-Diagnostics: 1;BLUPR04MB388;20:Y4A22Ii6pvC4Um1RMUJKh/vWAhyogMKMbEoExg9JrE5TrkOG/7kUrp93mRn0+/KrDkvzRtU4noXY6KQi8NaPONShgFcsilgJ9HreVxsJhycjOEkVoiszTzTOHrriXnRetVNHiGoPBFhsN1oHWDhtpef07hsKhsB/Lrb9gAaZlRV47b5aegrDrTpOANzOdt81Qa3YJ+zBXv2QarO5V+A36p3xaFAPZnneDD3Kztt9FLVFJtGhzBlfgd9EN+YWvj+Ln0pYoPy3Z09NRA0jsDxqMyQbRtCJLYzt3MLNK7SYYHYGETLO4Ep2wHXWVdDmjn7W7go34PFyGtzerUnZkyF7jnAmOVCnkdFMN8JMG4Sa6No7TGaxgg8MIC7EbmGibmtILcJoS/kqtxYffjfzJAeqE19OsJMbG3Y2gf07wkSNXizoO9Ln5sCxYnW5QVfkEVV10M3eOcMehvkUZ/TAOpQoWo7sOgl66lYR6IVeazrihpHu7378+8FiVhhCWVN+4Y/b X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(601004)(2401047)(13023025)(13024025)(13018025)(5005006)(8121501046)(13015025)(13017025)(10201501046)(3002001)(93006095)(93004095)(6055026)(6041248)(201703131423075)(201702281528075)(201703061421075)(20161123555025)(20161123560025)(20161123562025)(20161123564025)(6072148);SRVR:BLUPR04MB388;BCL:0;PCL:0;RULEID:;SRVR:BLUPR04MB388; X-Microsoft-Exchange-Diagnostics: 1;BLUPR04MB388;4:qyXqws8QVG+9a6AbkZRxgJw+KUfzRsy//KYbbVS1F85GZah32MBbEueUqq7b5T3iW8+m+GKtsGtYUtqJYZIx2iAhCEBWqX8dURtfrOfK1OZddXZpa3wgbQNnddeGFWv8TDPt0DdOCMmC3E1lL4g5hLjGlhmEhczEA8Hu8MQgb9gG5ohOo4GjobhnpQ35inimxTeQxd/N8pMHdCkYjl220jIPi41dDaKJYhNSygsv/HwBxFDDfBIRiMHWVSKmB4dX8ojxTtNuWjVci1FWb4oUgxAbNCfym87pBWAEuRdC2qFX+ttKOzrs0JCWk6SSNqgwir1oUAw6avKzTpeH52XUWjIoD6mEK6RCcIYwGBgV9TQzDxj0xW8tUK/KRg1T5gD9UpFI7Wo0IbVgq5JTl6w+a2OflRa9rxz6ebbiYNE24+DldlQdti9BQmn1tw53Q1TGzn3VDrNaNvizGr9Ga5bBxrY7Na5MKIZDS6NBR3qWsP/2rqrhsmcw+jIemb9WJ6f/ezBcxd+C7QrobK+M2lDk70nqPWArIsug3AGIDb2b4VLBKADczYfhqv5OHNMREZO9a7zr2J/InKuIx1b6APkPCukHexhzQY2hMY98uVnQ9beGY7x2IRF51SZwEp9Fla8OZLQDAAM2lfVWk5Cr1sM+K//Ez3CqI4SZV8osv9P9XT3aGw4WrDdeQaTaiVul79ZHRnOv9xZ2yrJqf8DQMnFK33JRCqPaHWRMWnAO5i6b9+3HNmtacpgiUoZOtIU4qwxQnHEedH6AvVCtcZDd21e3JDcglHYNCJ4krE++vH6KuDQRh2rkFRbOvLbeWWu1B4YhwWHvEuagCcB0wkYIg37phg== X-Forefront-PRVS: 02638D901B X-Microsoft-Exchange-Diagnostics: =?iso-8859-1?Q?1;BLUPR04MB388;23:lT+EZxtPmZi2MmyfrtM5CEzy0b8oPdY/whkAKNyx?= =?iso-8859-1?Q?NRYwfAMkTX1E4KnOqqTIA7fmNDfWfpkJAJkxrSs8bUpYhIIE2zsLBoK1V+?= =?iso-8859-1?Q?/XMjwG/u2NcwuDo1O7A7kfVuCdb8vZfuokzaaJc7O5qavkX8Ifwas2x7DE?= =?iso-8859-1?Q?VD4fY1/LGKfR5y1CQkkiYWQGr1RUkgS76+U5b14Sz5LV3pKOWwzr2VyGIW?= =?iso-8859-1?Q?9E9W8z/3YCxdGh8+S9qYdewXkiLgVpenpy57H6mqQJPJiUDVXP8/9jG1BE?= =?iso-8859-1?Q?nwlr2XaUPi/KiCGzRVLhwiQHS6sU5XsXzIS3gcsfb6HTlOUzIew57q5xQr?= =?iso-8859-1?Q?HgyCcOwZFmwXijDWQkn48DZGTDFvyU2n5SFv6+1A0zHgzvlmRqAtdpwehp?= =?iso-8859-1?Q?pOPVWLpKM+gATYqyoFx7dlWrOmRbE4U/9faywAWtTH5NcIJI7RSWt0XB1n?= =?iso-8859-1?Q?gEq/bystHucjXlNKTVLSB2nfjKyif9ex8wN/P1DrfheEnLaw8mhQxykmTP?= =?iso-8859-1?Q?1bKT4CRetBkegJOSZcBqzuNJr4eRSEcFplaE0UePopLXy7jyeI7iPDQThB?= =?iso-8859-1?Q?/e4C9/YIkcpC+sEVynhwaonwIfFLW5xwWqaiC5lRUZOJO4Uc0ulHKKVL+f?= =?iso-8859-1?Q?vyE4yBaGIGZm7iuV/oSJPDCKq4xtbXYRNUP3m7xdQbKsGaRIOMfeB32Oj+?= =?iso-8859-1?Q?2Jn2pGWXYxs8MbovgWjtRos5juJQyM4z8rQC2FsBsGJ05kHVyI8VZRevFS?= =?iso-8859-1?Q?/GestuwnHQ16MiFwwjJf1zMIto11M0orwpvg6V6wv7uzKcuwfUTaR87ihl?= =?iso-8859-1?Q?nh2sNu0+r8O0MNMY60kGF9mxzFdX9zSDqd3OvrsSzjFlMiASCF/W3xmHta?= =?iso-8859-1?Q?PoRhDaRRl16CqV4SfqOBBszfFhI+aJGTwI5VW/U1fQtL3mfAUzB0FsUEU9?= =?iso-8859-1?Q?+8sV/CUTxrFTEG/TwPm7RsW9fyLUX+06nVfmbMcyvMjm8IlUTVPyh6H4VR?= =?iso-8859-1?Q?7l7+/MGeA+fG89QfRBgRDzsD9YEhT5wmL6kl1tsyy2JEUYUiOHL3NM2GOE?= =?iso-8859-1?Q?VImz3TibKaXgE5nzRAlCBj2pvRZjLnCDRvgZbKAxS12T+/FWIXeLLoggDJ?= =?iso-8859-1?Q?rKtluq2NcWct2nggd3+na3V9qspo/N2/6Vk4o5PamNstlYpyDBW6u7diyH?= =?iso-8859-1?Q?MolHpsF6RwRuKP4jVTaUyQLNFF/WXPt/TD8x6xIj+9XK04jyZmeCmFT+dW?= =?iso-8859-1?Q?3Z6GH6PctY2O0QBEojN72wKJQnVNDwYRU/RdyA=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;BLUPR04MB388;6:Y5H0JFXKKVn8+5At0yTz4pkUcB4Y29sbCYgZdRlI+6RhSTz3btssj7SW2gHjKTu6VsxZIFAMa0F5oJp4lBqQbhlsA/mqvDzphNMAq8Vj8l5Sem35rMoVupEJrw8EzCptjN7s9ooYV2moJNF3q9eA37onWRffaFCitpDWvIQMYjLeaqnxseDF6eW0Kzyr4ipx9gDNRrADPnDMTWu8Bs1dLjXcisDp70qyxPdCSiD4aRf1cCNwqk/cEXEwgLU2tNxA++JATdeK9P4DE5BM+CMq/5Ku/tIx9dHi+55i2NQZSvP9L8XdvykMxU3M2X4eUxrnsClkZjaY267hifsRuAWOKuAZIveMGTvcBJGqS5S/Y3wtcHLYor0e52RaR1glQozauPwE0NxJRgjpBkgcB2E+q3Vi7VlvZCSjbgdzzzw4nCs=;5:fNTns+Q/fiMNsb8SxBFC6huW08ZRdTdwHbX6IEGue3s907LOK8s0vg17mgW/rda48Yicbs2yVqWWvmR5AXrXxSEr9pdVVswTeTZantwDBTfmYVYBZpH5lOLRAE2ZCUnteVGGO8EjWFT0JQ6QX6xMtQ==;24:jS98aG3uC3ucSqEMLGRLsY4/LZmxfXoQFJafLs9I6rn6ORAy4h3Ra9CYiE4Ajm2AwTK3/eScz0BcxJy0gn1YgHEOBw5YNhpgeb2odSKIQR4= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BLUPR04MB388;7:eZbFwgJXObIB27ruV3T5HRo44gMsb8dAfocB9/KgHoMFp8YVzAlh5XuUKpkLJaz5Eb5XkHKTIkQZgdLgG60rUTkLUc6K9tJQbHsZZqSd+VzEtkAUWD9He6Zp92hVv1VgEf3a25Ue4xDApiyWnJi76jMOy5O5rtUah2pyUfMjkF6V7fx4tVhrYJiMzlN9wVvMuXorE3IqyQMWw/cun4PwYKBmK0XZY2lrglz1nxXuG+6zI0lluBgy6BzAUTWiL99T3j1jkE4BmYcmw52t40bmQBsr29hRnmU2wjkQEzZ6pPuwHvZgHIrib6bmk0J5LShu6ZEYS9gVSnQBSkIOoVafMQ==;20:Yq3pW0uIPnUddcq3felGY/OzOKikhBbLaCdEiGiaK5mTxR+ALGiBOwwY6ZsRSCXMu1aMRnsbpHflfp+rEH+pWOod+5ZFXFuPqf6EUC1zKvL9ztCyQPoqc92q1AGS1b1vMmAjaAHjOKGd4QB2++7Psb3rMzbur5qeNFpF5pcrOyE= X-OriginatorOrg: sandisk.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Mar 2017 15:31:49.4328 (UTC) X-MS-Exchange-CrossTenant-Id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=b61c8803-16f3-4c35-9b17-6f65f441df86;Ip=[74.221.232.55];Helo=[sacsmgep15.sandisk.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR04MB388 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by mail.home.local id v2VFW2XE027968 Content-Length: 2187 Lines: 50 On Fri, 2017-03-31 at 14:47 +0200, Paolo Valente wrote: > -static bool bfq_update_peak_rate(struct bfq_data *bfqd, struct bfq_queue *bfqq, > -??????????????????????????????? bool compensate) > +static bool bfq_bfqq_is_slow(struct bfq_data *bfqd, struct bfq_queue *bfqq, > +??????????????????????????????? bool compensate, enum bfqq_expiration reason, > +??????????????????????????????? unsigned long *delta_ms) > ?{ > -???????u64 bw, usecs, expected, timeout; > -???????ktime_t delta; > -???????int update = 0; > +???????ktime_t delta_ktime; > +???????u32 delta_usecs; > +???????bool slow = BFQQ_SEEKY(bfqq); /* if delta too short, use seekyness */ > ? > -???????if (!bfq_bfqq_sync(bfqq) || bfq_bfqq_budget_new(bfqq)) > +???????if (!bfq_bfqq_sync(bfqq)) > ????????????????return false; > ? > ????????if (compensate) > -???????????????delta = bfqd->last_idling_start; > +???????????????delta_ktime = bfqd->last_idling_start; > ????????else > -???????????????delta = ktime_get(); > -???????delta = ktime_sub(delta, bfqd->last_budget_start); > -???????usecs = ktime_to_us(delta); > - > -???????/* Don't trust short/unrealistic values. */ > -???????if (usecs < 100 || usecs >= LONG_MAX) > -???????????????return false; > - > -???????/* > -??????? * Calculate the bandwidth for the last slice.? We use a 64 bit > -??????? * value to store the peak rate, in sectors per usec in fixed > -??????? * point math.? We do so to have enough precision in the estimate > -??????? * and to avoid overflows. > -??????? */ > -???????bw = (u64)bfqq->entity.service << BFQ_RATE_SHIFT; > -???????do_div(bw, (unsigned long)usecs); > +???????????????delta_ktime = ktime_get(); > +???????delta_ktime = ktime_sub(delta_ktime, bfqd->last_budget_start); > +???????delta_usecs = ktime_to_us(delta_ktime); > + This patch changes the type of the variable in which the result of ktime_to_us() is stored from u64 into u32 and next compares that result with LONG_MAX. Since ktime_to_us() returns a signed 64-bit number, are you sure you want to store that result in a 32-bit variable? If ktime_to_us() would e.g. return 0xffffffff00000100 or 0x100000100 then the assignment will truncate these numbers to 0x100. Bart.