Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751185AbdCNQdE (ORCPT ); Tue, 14 Mar 2017 12:33:04 -0400 Received: from esa5.hgst.iphmx.com ([216.71.153.144]:12013 "EHLO esa5.hgst.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751085AbdCNQdB (ORCPT ); Tue, 14 Mar 2017 12:33:01 -0400 X-IronPort-AV: E=Sophos;i="5.36,164,1486396800"; d="scan'208";a="3159568" Authentication-Results: spf=pass (sender IP is 74.221.232.54) smtp.mailfrom=sandisk.com; kernel.org; dkim=none (message not signed) header.d=none;kernel.org; dmarc=bestguesspass action=none header.from=sandisk.com; X-AuditID: ac1c2133-9afff7000000c960-e0-58c81b31d56c From: Bart Van Assche To: "paolo.valente@linaro.org" CC: "linux-kernel@vger.kernel.org" , "linux-block@vger.kernel.org" , "fchecconi@gmail.com" , "linus.walleij@linaro.org" , "axboe@kernel.dk" , "avanzini.arianna@gmail.com" , "broonie@kernel.org" , "tj@kernel.org" , "ulf.hansson@linaro.org" Subject: Re: [PATCH RFC 00/14] Add the BFQ I/O Scheduler to blk-mq Thread-Topic: [PATCH RFC 00/14] Add the BFQ I/O Scheduler to blk-mq Thread-Index: AQHSnOCdQqTw9PLb8kCgQy+3PwEh1Q== Date: Tue, 14 Mar 2017 16:32:47 +0000 Message-ID: <1489509154.2676.6.camel@sandisk.com> References: <20170304160131.57366-1-paolo.valente@linaro.org> <1488848390.3125.14.camel@sandisk.com> <81048010-02AB-4A7A-8C10-FAF7E3242DCC@linaro.org> In-Reply-To: <81048010-02AB-4A7A-8C10-FAF7E3242DCC@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: MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrFIsWRmVeSWpSXmKPExsWyRobxn66h9IkIgzM/pCy+vfvCZLH6bj+b xdSHT9gsbmy7z2wx5c9yJou9t7QtLu+aw2bx6s9eJotfy48yWhxfG+7A5bFz1l12j8tnSz02 repk87hzbQ+bx+dNcgGsUVw2Kak5mWWpRfp2CVwZk89PZinYy1/Rsf06YwNjF08XIyeHhICJ xMtZm9m6GLk4hASWMEm8vrKPBSQhJHCJUWLKLSMQm03ASGL2hD1gcREBS4lVU2+wgjQwC5xl lti9+w4bSEJYwEniyMopjBBFzhKvZryAatCT6PoxD8xmEVCV+DXxPDuIzStgKLFo8gVmiM1z GCXut58CG8QpYCfx7HAfWAOjgKzE4uktTCA2s4C4xK0n85kgzhaQWLLnPDOELSrx8vE/Vghb QeLzin9sEPV6EjemToGyrSTmT3jPDGFrSyxb+JoZ4ghBiZMzn7BMYBSbhWTFLCTts5C0z0LS PgtJ+wJG1lWMYsWJycW56akFhiZ6xYl5KZnF2XrJ+bmbGMExrGi8g/HfBvdDjAIcjEo8vBs+ HY8QYk0sK67MPcQowcGsJMLLL3UiQog3JbGyKrUoP76oNCe1+BCjNAeLkjhvzOypEUIC6Ykl qdmpqQWpRTBZJg5OqQbGfo4F4X89OsNkFq75pOpRJriZd8PKnMJHUx7E8z7IsDB+cX3+3pf3 2I9xGs31vfQk4rz6SnmL78HrOy4v8n0ez7cuu0L1VkDp6nvldW87HRTSKt2S1r1RPb29XP9Z 5ou4wLcZqTMY2cPslj5tlrDbdt3xWnuVE9v7bUVFmi78kpPmphZfrOFQYinOSDTUYi4qTgQA ij6CL90CAAA= X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:74.221.232.54;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10019020)(6009001)(2980300002)(438002)(24454002)(199003)(189002)(377424004)(9170700003)(8676002)(86362001)(8936002)(81166006)(50986999)(76176999)(110136004)(38730400002)(54356999)(106466001)(23756003)(6116002)(8746002)(3846002)(102836003)(106116001)(4326008)(50466002)(6246003)(39060400002)(54906002)(229853002)(2900100001)(7416002)(2270400002)(68736007)(2906002)(36756003)(561944003)(53936002)(5660300001)(5640700003)(189998001)(33646002)(2351001)(356003)(47776003)(2950100002)(6916009)(2501003)(103116003)(7736002)(305945005)(217873001);DIR:OUT;SFP:1102;SCL:1;SRVR:BN3PR0401MB1494;H:sacsmgep14.sandisk.com;FPR:;SPF:Pass;MLV:ovrnspm;A:1;MX:1;PTR:InfoDomainNonexistent;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;SN1NAM04FT006;1:OJJvQ9SP87G6rE73v9oZa6t1GaC8gmxtTQoLF8zwPHpayTQoytyg6/+cvHLquWw0/lR1Ycb8kAuP+h/D6z7UWSMDZFrwZkdhLGnihQcCCGIGG8JckZv+PdrzwkmQUUJdEHgeJiG4i03ujYBqgIzjqH4PPKjcAkxDrGArGrS6vj7prkZsxcP0lEKoFCiu/pVIKnMGnHV38IMjOEpcs+EOpaOVcUmn+UtBvfYyMNp7kB4YyXgvbwjupKogtmevqtAX/CYZxOCrGIDvLO241Axzhmq1shPVsdIV2GhVtXkeCnbDwUx/DIxsEmh+CG48aGymp/fkdYStK7e0LRuE7EdU9dgNdHWDDRzKdY12EI33CFlcOQPi1ldeyUvOG7y96T+idDVM2ChWLa6kkZxNdYD/QUmBawNhNCwX7gBjdKTtqRyoUY3rOh+opR/4b7MDg07RoyI6ykbmXq7Dt2ErC3AyacojIJDyDyd8fok89nzDdeAcPVC2lBHY4snI3MdleqSSStX0mZn91cQZr4HPs2VfRXZKr33Irq8/UPHiBLr7TXLIRq3ncfsBRalCX54W3ght X-MS-Office365-Filtering-Correlation-Id: d565adae-4ac4-457d-3bd2-08d46af7c19f X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(8251501002);SRVR:BN3PR0401MB1494; X-Microsoft-Exchange-Diagnostics: 1;BN3PR0401MB1494;3:Q5doAi59mADWPYw03X5fw0ZpqL2M4ctvSZRp/l7t2s+hAP6B21lXG+Tsr2OM+75QvJYx+wU9nijk3+TqvdBwCIxhUVlKOe+KrHI3MYtI8yrcHPCZt3TXixnb2BeQ6vFDEly5wSTOZfZOsIFfNUJXEhrAioP9AAuD3XyuOByjVWAnmGTX4Mn/JcF9FPeQ9AKOXQPrce6K26JNTAYdgDOrX89kPsBTje4yjSKV0awEWwkdfRauS8XuVMlDhPioP+T7HPh254nsXyTNNXEiVZc/oTUoMQ5QzYF3TkYqp1Se75YAPYUioUxKK/XAcryZJ59x43QaCT/evvDV6VJZcllYDj9osILkgBgdEVgNyi4yI+gNJgXdeX3omLD0qRkc9zCUNd2hmKmpaPj/0a6uS59Ywg==;25:Cchkmn4NmwqohRxcmtJ7oNkJes07zRactSBH8KoxKBYQ6xC8qc4JXnaj05obCDNTNwP7UUhLoJnZApTAGdUdO8qI68ZhVOASakeTSUrSZNIgEf7qd2pDL9zQkqS6goITtGsSzk0nee0mc3MIDRGPULVCqtWx2AB9jeWBkOHIVS1Extnh+64z1SWZoqjT7lMTeWSj8hBOzRhDq9IUXM8QQujRBfsdn+REj8v1508T1i9OnW4w4A1OlHd1iJjxhBmE0uYK1jX4dw+YrRkqsp32PyYgqjl3PDL9g99elFYpeQACWLeP0c5OGbKz90YUgYddUxVA81zeTPmuZb77fjqBtBfbuia1ZQHKZhys7EAk2jljkH8vdi95P6ZeEopMu2+jy4KCQwSSYrhg+WTo4M12sBbE8FsrsS1GhbqaMkZx90tU4gSdn0YbrSyEx6wyBpMbfuOKZPP2JOtyFFcsrET1zg== X-Microsoft-Exchange-Diagnostics: 1;BN3PR0401MB1494;31:b7zL2nMQG+bGH4AQTpOG2slg0P4Xfh60kJEyuzEtACmwyDueOJPuZ5QyiljetEjLUXxiDAG+e4yLZKCRLgkbTOk+o0Jd/jzIajRUoanDlPWJhuFwP5MpVz97LiI6GJGkL9NfdWx01hQbM4bDCb03b80HN8LJARtOlf/qbStAKmLMQ5hE2+ima5PI5eFCD8TV3ssfBXUdEBWx08buY+kyIYNkG6CjkRppLUMrJQmHogNIvk4toKkdOMwSoMiivfy2GSaR+B7KWCixdcD9JzsMTxDsKSDZmrbBvnOGstIo+L4=;20:12Kxwbu/THl5D6quO1W8uly+Y2mLCN/OePddxpIi6Fs0lNw1kSyBZpMJzFu5f1oAX6I6KGzAGTlvYvM3Ey620bJ7JIcnANkYormwzmydJNFQon1c0W4IkS81FOsA9uOq83hJwjJOgObN3lWB1NpTLO9eceoB0XS/6ESFB3bKbifo0e4hBesvycSSF5JFPtJ6kxHBdh35sNM8gHU3/hbqCFmZGnPTR/D2x0CRwGrXWJfG/QUzEfAQN5JcLjm2rJl3KoYaoas1fdYp6DZ2JfJ7CZgvygW/uvPlG5GQpgzv3xNKmBgIS+Z7Hzm/dDP9J6kByDx7RkGXfFN/euf7ByCRhFYvnZBKkTeJ/mh6HpmVGCLYHdb4fXrQn7A1daGB1KwfmPwW/NJfgU/l3sRldz3zxFeg3g9wIFrdb4vi9ZGWKNVxuYskaqOlfL7zWTYnZxkeimnh5hoyuJ0hcXQiAklhadCBFV5HN6kH9EE0WYxQcssXB1s7Lup8PozK8ZMB53NN WDCIPOUTBOUND: EOP-TRUE X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(42932892334569); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(13016025)(13024025)(13018025)(13023025)(3002001)(10201501046)(6055026)(6041248)(20161123562025)(20161123555025)(20161123560025)(20161123558025)(20161123564025)(6042181)(6072148);SRVR:BN3PR0401MB1494;BCL:0;PCL:0;RULEID:;SRVR:BN3PR0401MB1494; X-Microsoft-Exchange-Diagnostics: 1;BN3PR0401MB1494;4:IuBwJIrzMKYOjWIjJl0cUUppO9plNjTbTvTTw4R0Aa/oti8dJKTiC3ock5Ic9Gbz3kTw9ld4DqChaeglEk3jqYprw0Imu4ykzhNCkpCs1EP0nDs+sUQ07Mbz9iREmDmnQftd9vGPpTyn4YSig5rulDz0OEPoNoDE20kzgR9JLLRqCFXcYyQstsDThWgDKl3qQ4hI/1yTItvyNK7K7r/tyz+0+Eo/yKR6b4jrifa0j1wFIxSkd2SThEevyXMuix+ze+8uDWH0N8lyKGXoWu8ssVQ/PQF8eKw2KBbfIcVzR9dH8KmWzDrviXEofaBbTKPpWHmUCFimhiesJRfKvMrjINKSXT6bnuhHQrG0SIrMyasySWAhMGIdr/iLfnVU+I0UIzXBGy4+1Gwm/48gDq5woBdrfogngYaGtGqNYgu7NlzWD/brp6FQqAeiOlVopfNGrTYN4dUxzVOQwr497ekxpGqRkMe4HUFfvxUtz2FvVZLwp7YTlBOIpjC4hqG8+nU1o3pRBQ1zkDG+xJvFtv+Elq/Ks6jevAa42GVqzpmLLXBY6YOkKkF8lEApKqj4HXDJ7IwtcezEp7H62vmfAD2xIjaXgSgYNqzNyMkoY/BVsarAuhAee6KPh2ZSjASBijW63umzdXArH/SndNr1wRB9+x2s0VS0baL8bPm05oc274O2GjsTUCWpYeLUggqe/j82+6uCtchUZ/or3NIqxK9lsWU99Wci8MRNa+3V1NZ7o+LCaRLc2U954BbF/RSKcE2H/j67LvWrkwvMgoMS8ZYPww== X-Forefront-PRVS: 02462830BE X-Microsoft-Exchange-Diagnostics: =?iso-8859-1?Q?1;BN3PR0401MB1494;23:xURfJ5io+AsGne+nYansr/4iOzjlcxGsOdjAr?= =?iso-8859-1?Q?U5CQ7fNDIn3GCs3gQ0ujWVCg1J96nyMzen0vI8SoT4Jx8u4vvF5oBmQ1p8?= =?iso-8859-1?Q?80pCks1udxKRoBW1+tBX63qK/LcV9DFrL8Wvt7r3cvO2FK4898SHjU4K0+?= =?iso-8859-1?Q?XJog8P7eFF6WuBDVBfPp59Vhm6mPyRgZzqRBua419DIAJ7PVAf5JklVxS6?= =?iso-8859-1?Q?ca6xya7Ko79kKRJ9/JAvOomFhg1L6QCTSMNaH9LNXWWtlOyRuFhT4ZVEB3?= =?iso-8859-1?Q?TJDYuDBtnehJlXLJtALcmhEq/Egibyn1p0p8tjBQeGFBhvDitPPOyHK4s4?= =?iso-8859-1?Q?K4kOTQ8pWjqrmG/NmzHVtVdwL0LXOK3//7An9FVmp5OWyfxua5M1KTbd4/?= =?iso-8859-1?Q?uknp8YBWzEHG24FoednZsHnLZOW42vhGf5rp1u5KonnYkN1KmWQ5Js4kPY?= =?iso-8859-1?Q?t+24BZrcU1OwIMfZ8OtSbnsNbVYFCoNnYZowAsTAyHFrpNQMfsXVZP9XUj?= =?iso-8859-1?Q?1U6kyBsUpT5XS164G1HzZTH+OY58CkB5OgSnYkQbB1ziQDKf6eWonHOJtQ?= =?iso-8859-1?Q?7PK+t//oRa2+4RLadPD9QHOy7iKTRHaqzEDgywksTdVfMffB4McjNnMlSt?= =?iso-8859-1?Q?ZTWpO8zdkdce+tfGwraw61XDjZT8tIioWkJVW+2Ig0q82puVmcRVoPryQM?= =?iso-8859-1?Q?QyLWPH+xj5m91czNPWVRghum+Uau7deZwY0LejRSxu7ZvlQzXrZWSW5o9o?= =?iso-8859-1?Q?4ZN63TQCq2LmCmqdmX1lMl7FhSh/2lWG+agWFQ7bfHOKF769WSdqqXwOng?= =?iso-8859-1?Q?dccZNd18JG7z83xq87UA6tlpFQUWBNsIi0i2Kz15p2+E6pvogCdh1Krh35?= =?iso-8859-1?Q?yb9G2WRYWtBGQcYAuTgXwol97QQss0wjnyp7mEPNIPwi9rY1oR1RnMxb6j?= =?iso-8859-1?Q?rpqdYPK2/1XOqDiS1T5+DqdeYzZ5LHJNwuoi7kjOn1NwAXoCPuE/Yo7qDD?= =?iso-8859-1?Q?KUjDudlhUvoOY4H6FczFIL9ct3nKVgPyaN7x1O3DR4RHbqdmYvsS72/aAz?= =?iso-8859-1?Q?kQzxEHe3N+ibakm5NYdiN+yKzyewlEBid2nFxAXlZL+JOwdQlnGrogvCva?= =?iso-8859-1?Q?I9U0PFwPpYgK2MsmqI7HtgJkXirzrCDASNB1nz8U8q16ikbljlZ+rppdWU?= =?iso-8859-1?Q?SK/QNkYwqzDqZK1HcK1GW4GdZqdB7nDZ7UQkXydwt4D5dzz+977ExKv/ag?= =?iso-8859-1?Q?0bENwSA9mOTbRviMtgZLfhHE3Xd/1gaz+Arg9MG3UpNeSMWLXCxD5DoFhw?= =?iso-8859-1?Q?54GQ=3D?= X-Microsoft-Exchange-Diagnostics: 1;BN3PR0401MB1494;6:DkR/d78YCQJX3249rtLad1V2j01QbXVaXvw+a3HRsRBlvRDFE7UBXa5mrlSJ0XjcJrAs3fy+4gKRGKVCR80lQCY4jpe51p7CP3EAXcKF6fjTts7ULjsANo0ZbCdeQws0x9/ZKF/dLXp+XBFwKe/z0gUYjgZhLFq1iwNzcn1HoRIM4Eu2pszczlhTDETxmspttMJdaOxLts9KoG4WZWf93uP4h7sHkG3uyb4MjPTCkFHpvtL3J+4f4vBAsHKbct1nMt9c8vZH6AOr7XGWTsvG7MYUWpacfc1BfZvPgWJOsyLXLTRd/ZnmnG6t+gnN3dhHHG3M87287MpC2Yb+c4Ba6XmbF/ORfLvVs0yok9kn/45ZVuz+En/1qjJT5xlFX6itoeEVnLlKz8OrL2fWZQcVSP3bR/CJfGEFCkj4Q4beHnQ=;5:KWf+WVjKTHi79tMCekVrQ+KN2VUtchn0kC4XCNmyNbWKciU/qg84iLw6x2gEt9s1cy7oKVD/bWcu20rtZ9jnQ9dITgnY8gwNsiFKe6BPZZxCTKNq3y9Own3KrKc4bFVzYMWsH8D3BF7WcdkZAFlhXw==;24:uWT0viLwPB045GwFGhfiR0ClFOi+9UMpC5Il9gUd6E9iEN34s6EYjnHsocpgRqweajexnmCp8b06iWQZ2/El7feX0mBuwaBHJWbRF9bdhEo= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BN3PR0401MB1494;7:io+TO85LDrsibX0iRxRdDxz90KF1+jNYVZI/qiRDzspuVf7TrmWo59yKDSmwcK5dynxmSo8BQqpm2Xl0eZLoJWmCBs/3kbcnKRlxTI/Cf5mGE8Q3WrxfKp8nZIOAZ2KsbdcKBYos0sqRg+OG0OmvuXg1Jod+Kszuy2pp4j1aeH4fLJJFOnaDk3N5/Qr+sgLB4Tdk/R5cGySF6RMZBsQZuKs+juuj6eVB+B5+fZsI9kSwM3JUypOpIUgkKvR/m91WI6CrNvAbycghaAXOyLpTDzaCBtXdahSMp6o12OekCpqFaScj0SG/XDtkitFmxDXv4v4WnNE9+naAhUpa0fkFIQ==;20:/kUI9st49C7U+VIfGwQwju6YKWmGBUoMNiXVUs/bEEbRd68ejEOEV4ftWXssMfzz2gHGBZWP0lPhhgLr144nrKcOcVVBbRYqWgHxDdHYVmSlePpstoR0/OEIG9Vh1xp0simkLhxXXCYSEwvfCpHyVOtGoa3YUygQibkgYEz96U4= X-OriginatorOrg: sandisk.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Mar 2017 16:32:49.5549 (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.54];Helo=[sacsmgep14.sandisk.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR0401MB1494 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 v2EGX84T017288 Content-Length: 1922 Lines: 42 On Tue, 2017-03-14 at 16:35 +0100, Paolo Valente wrote: > > Il giorno 07 mar 2017, alle ore 02:00, Bart Van Assche ha scritto: > > > > Additionally, the complexity of the code is huge. Just like for CFQ, > > sooner or later someone will run into a bug or a performance issue > > and will post a patch to fix it. However, the complexity of BFQ is > > such that a source code review alone won't be sufficient to verify > > whether or not such a patch negatively affects a workload or device > > that has not been tested by the author of the patch. This makes me > > wonder what process should be followed to verify future BFQ patches? > > Third and last, a proposal: why don't we discuss this issue at LSF > too? In particular, we could talk about the parts of BFQ that seem > more complex to understand, until they become clearer to you. Then I > could try to understand what helped make them clearer, and translate > it into extra comments in the code or into other, more radical > changes. Hello Paolo, Sorry if my comment was not clear enough. Suppose that e.g. someone would like to modify the following code: static int bfq_min_budget(struct bfq_data *bfqd) { if (bfqd->budgets_assigned < bfq_stats_min_budgets) return bfq_default_max_budget / 32; else return bfqd->bfq_max_budget / 32; } How to predict the performance impact of any changes in e.g. this function? It is really great that a performance benchmark is available. But what should a developer do who only has access to a small subset of all the storage devices that are supported by the Linux kernel and hence who can not run the benchmark against every supported storage device? Do developers who do not fully understand the BFQ algorithms and who run into a performance problem have any other option than trial and error for fixing such performance issues? Thanks, Bart.