From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753932AbcLSVFn (ORCPT ); Mon, 19 Dec 2016 16:05:43 -0500 Received: from mx0a-00082601.pphosted.com ([67.231.145.42]:55692 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751764AbcLSVFj (ORCPT ); Mon, 19 Dec 2016 16:05:39 -0500 Subject: Re: [PATCHSET v4] blk-mq-scheduling framework To: Paolo Valente References: <1481933536-12844-1-git-send-email-axboe@fb.com> <7A8A5078-E9B8-4EBF-BAB1-9E8EEBF3A043@linaro.org> CC: Jens Axboe , , Linux-Kernal , Omar Sandoval , Linus Walleij , Ulf Hansson , Mark Brown From: Jens Axboe Message-ID: Date: Mon, 19 Dec 2016 14:05:25 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit X-Originating-IP: [216.160.245.98] X-ClientProxiedBy: CO1PR16CA0021.namprd16.prod.outlook.com (10.166.27.31) To BN6PR15MB1187.namprd15.prod.outlook.com (10.172.205.141) X-MS-Office365-Filtering-Correlation-Id: 0767fe38-68b5-4450-94de-08d42852c4e8 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:BN6PR15MB1187; X-Microsoft-Exchange-Diagnostics: 1;BN6PR15MB1187;3:1vWLovrEWXpEIdx6dENia1AApUUrPIfdOwMzRtEy116cZi12h826pXlpIHGFh6BeIwzApykACLKwhblfkJ/YtRptt2b5Zu5vKStw6T8XXF8gUF9DvwqELMs3vaPGyvqfM758tiMCCkVR9O2VOJxMp/PDW5Ev4uKCCAHIi0unzTkqxOJQhCkVT8dktdlEeOeJlx1ncl7bzVsqBlv7yk1NJ1qqW4GUY4TcQBDnS/B/XQkkJf42XyQaudWH8F3kCXVA86BCCVrgvDzNzB6PCfCBjw== X-Microsoft-Exchange-Diagnostics: 1;BN6PR15MB1187;25:PneaCFzdQhjOkA9VrdehFKTDHgrVFm8Xq75CSpd8O2LDrrfRW0RMvNUZWSCWoV5qo0pUtGXgOtoK0ciNkVPjUO34lohXaK/2KaQC6m1HDpL2bpGbK3+wnTe6m1pOkVA8p51jIaTXjvILE8/2cZJ6pQ4CVMRhRukuMsZl6g0cTbywq/NbbuczQsuFiucnPmDidDpY1odhw+M+VxuK2IR1it/OGzCUdYr0N4th7FebXE0/yRax96mcpS5fM5ZMLmwzXGWiKxB+LrH8fkXmeMrSPbW6Rx5t0dE7Os50wThVj3kOngcRqCZTjQd0E22TEtFSmMgTr+p+0FCSpulTS3IB6pCrZaYrSmlbLYONllK50YA8WDBT4yrS5OaeLpWFqCkiWVhj+yD5Yr0eCLWbf4bQIPRngLqYsOoRD6bqaj/8ItQ1PhP7zeq49o5KsHdejxEDzu046z6haK/sCbHSb8hmuuN8tExZg6WiyEZB7LBmIckqU7ZXxRXOCcQ2sZkotRuJPGjoPioUbJXG83nQWLXf3ytWHzvSZCTsdPaiQlR9/dfxbGDHOcvc3y9PIOG10EQO/YsWrA2lCRlRJ9PGnDqK+zYlFP+QJZlZBHrZeGnFjUul/9+WNlPg+hYehNEvu/ZoS4L0xz3ynPpfujhkLCJY5Jte06MIcNGg6RB7k0v7iaR/lnt8ZxRK1YtNkXtTPFg8SOkCzXI6Bn3sQGjXj6FljixypykFcUzZdf1j9XfbJrAlFChB5i/R7l+JEoULJ7KutvhIEvK3RvfrNvyMvTeQ04rYpfpo/5938p+xw/IQ+/P3z8Y9jB3eywxnWXQQnDxPx7A5B4E07WM8yq60yd4Q7wPp6orqKNm9xPHVsQgutmU= X-Microsoft-Exchange-Diagnostics: 1;BN6PR15MB1187;31:7tw6oomCGW1A7BTshQSDkpW+uF6OUbn6QxMztF9qTKqbyRDKptKsvkMrvSuhs/vwhp3pIdrshl7JLqwMcRnnxTDYZQzZ99xfuyYaEzOrbGeVNPtl3K584lNwq2FiiZGOesgujnW3izXKnecvBSR9Dbv2G+B3PijTfRcmP8A5wewxru1ZFIiA+WAKF5gYu/cdN+CYibpsiRaNyBvIaWKOWz9AS5cGDLq6zfXXcZ3V10BpyqxyGtn4w4Z/zPuuWMQ3;20:NdMvy+8j2McGu/ewa7vMmXHa10WK+ObnVlhoX6qL6S/W8QDVgi3skRZNdKI9QJ8er0Rd0geAehnCdsctInecr7RrfbXj7RYyxLVPH/5kvjmaHOtvcb2cbdeBJqTmLuLes7Yl3e2J90vbv3ItWnHPQJXfypdnvFZDxT+TaOY4uPhDNc7R/BczuGKG2Q9wPEJYefA/utkRGMehtipxUH1vk99ZPqLabaGefPT1R97ZYSfKQlx/DBP7e6dPlrJiG2bhqGc4h8MPtbIPGjxzU5ckbi82XUPIRPgWRT+s5jDRJXWd6DZjbt3/pxfvACaPjHLn80JOI5/IHMFx9nyWg9v6nUeWkPE+DUBVjPz78q4OWWOGywMvFAcewZEpulMFVvGHkkoKQIb0ZjPnM4I05hXc0/GV5ZI9XR5Ns06DTUl/XjqnOD078v9GxfOQeumzarPScwu4hin6aHho5uFajVkFXL+/sHqR5MrSchmzFlSSj25HNLRS1LH6Nh6tsCdFo6C4 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(788757137089)(67672495146484); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6041248)(20161123558021)(20161123562025)(20161123560025)(20161123564025)(20161123555025)(6072148);SRVR:BN6PR15MB1187;BCL:0;PCL:0;RULEID:;SRVR:BN6PR15MB1187; X-Microsoft-Exchange-Diagnostics: 1;BN6PR15MB1187;4:/UXxSkbheE3hSdE3L0rvuQG5zht8DqrMZkxugSMcuDZb5DSLYutc1UB6PmMtA2Klwy5X+CYkjmcz0KNT7KkOJuKSWQRQOU20XMWti2+U14WA4qlHdiCKA96dddS4SdfGfTdhH+31vnB6XMH9RS6rBuhVMKaQC7X679zKIfWrHxdqzqG3k/tPLVZHg6vanbAkTwVuV8YxMPweFnXAFOtXaJX1pvmlkeEYYqrFPIEYOjjl+Qe4sKthy4k4yARzwLfN/5Fwm+tA2G/+doEM9R8GNAtUfG+dgmvAuCTj8iOfM/fQIpIsW2XR18IOsOrwHgTkeHNlMdaT50Y9a6hkz9RJfmU2mX/xDPTzxoevgJUp8hOSnTBcPpzOZ86H4gpWaRzyM2iAUFhfV+NwPUPCCgdRxW9SbO4evLP6D8m/LhuwY4NU0VbiZhBA9gpNfkwjtrm4nGFTrSEz3QcweRNVXn9rRGGFxFoZZMSeotrA8EbNyWIAV2eNthxCyuoU30AiF7vbeuFxG6iF6tUwp7/AohuV6FCJG4sjM+vn/oKiAXanPOP7Li6lsCwB49zZIOnDfPujltzY6eW9ZNmtLHIqP6KTFdqUEEoJ+q6lHkCrIK3xRPbtHo1rhif+dWtk3E5Y3kBtkEF575CwwlYLK3vYw38EhSGSe1l4ARXfhWZE/iDdwxaYSwTAsbsFc0hTCQyBnB9q X-Forefront-PRVS: 01613DFDC8 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(6049001)(7916002)(39450400003)(39410400002)(39830400002)(189002)(377454003)(24454002)(199003)(93886004)(7736002)(33646002)(23746002)(31686004)(47776003)(4001350100001)(97736004)(6916009)(6116002)(189998001)(230700001)(3846002)(54356999)(66066001)(65806001)(2950100002)(31696002)(50986999)(65826007)(5660300001)(86362001)(110136003)(65956001)(83506001)(76176999)(6666003)(92566002)(25786008)(77096006)(106356001)(105586002)(50466002)(6486002)(117156001)(230783001)(42186005)(64126003)(101416001)(4326007)(8676002)(81156014)(229853002)(68736007)(81166006)(2906002)(36756003)(38730400001)(90366009)(305945005)(6606295002);DIR:OUT;SFP:1102;SCL:1;SRVR:BN6PR15MB1187;H:[192.168.1.129];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;BN6PR15MB1187;23:YJSzioYExY0buZX2PU9a55kh58knbHTt/OrqV?= =?Windows-1252?Q?a45/XeoeZs4WE89c3d4mZaqD23Ac8DKQPlV53D1luCusdLNy8XsI4q98?= =?Windows-1252?Q?aSZcBR1gCLzNB0GGSEKFFfml4okRc77/TLsOpPl4k3hlacNnLUtakvjr?= =?Windows-1252?Q?hlvZGxPWLOSqoGm0mxJmrnkuXLHzx2FC2vcuuXrJm+LPrS1AoGgqR9jo?= =?Windows-1252?Q?nKs1zctabu+pPXNWwEt7e243xaPynMlQSTI5dxnBTkEYMPMbJ80B/0/W?= =?Windows-1252?Q?AZP7vLJGxlzGTcPGJHMTaQMk+MM85/WvNnXNXfwZJkRA5dR706pWpMLZ?= =?Windows-1252?Q?Ht18LR+eWOozTakkj+fgbVNb2M6Pxd4UqDxTyJrGURSZX1oLXSezQItb?= =?Windows-1252?Q?7wmWaDrcXNe5bDOhZhsWANb3auWHeJRgFWSCqPbk3PmNy1IBe/T9YrAj?= =?Windows-1252?Q?QLqs9uZBJOcW21rk69M6CwAf8rgUx6tj4HepmaCK2Zyc1ldgVW0nm6jb?= =?Windows-1252?Q?bAwfG/65V3uVa983IDSrzyicuPk9VLNe1nKo9U2UpmyVzG9hyKq8UW2D?= =?Windows-1252?Q?9ajMC1DTcIx3pB8YVrGVqOBk+GXzpvSPdCza5Lzazy+2P7NeXUgKYuNQ?= =?Windows-1252?Q?8X9XsMkhE0448B0/GJ7cYbvGLAu6e0AmF9/iwFczTw/FjCD3XHt5hxyg?= =?Windows-1252?Q?nton2k/7Xzh7uct542k7kh0RHjQ418mH9+Fu+v7G9QP4QDyy6GghKnH2?= =?Windows-1252?Q?CplXT0epdEdgKICMctjTIG1iY7qPBTDWeqJtEX8idr1YtXhXjVWsLya1?= =?Windows-1252?Q?+W8q1FTMpfsFkPddDS7wjZXRpsGA7YgOkNtxAq89qkt98zYQIjWp8BQt?= =?Windows-1252?Q?cBYvkF/ikFRc17RwR5X8fZ+DXiltUfUAw5V7N6JfUMnJ6SVEkDKbRKXg?= =?Windows-1252?Q?Cxs7S+OG17hThARbgh9I9A/B9o34Or/IsYh1i2Lyg+zLfDFAuk3uaaGn?= =?Windows-1252?Q?K0QfJnpHNtPIOEcvGn8rGZARVsongqHbMLXmRj8gPcD8S+Hd2+KXa/5z?= =?Windows-1252?Q?qQ4umWo5AHHS+pSqd8o+SpwfDdEj89w33Wt3iUNuHZIpymZbTteuFjUZ?= =?Windows-1252?Q?E9TMxajImbb8NW8MmknYeZQm7brua07z6Qk2/n+ZgJH/aRuoAL9Gm+vA?= =?Windows-1252?Q?m4butbqe1OEXTCol9vS7ypDv6TAZfbg2bbg5IEHcuwFlW6WOfjP9T6DD?= =?Windows-1252?Q?E0oWvO03xh9b0BgVeZBCBFdQLb+0zP1a7H2quRoi31Baegu0/ogbPJdf?= =?Windows-1252?Q?DPgd7tLpT5RNpw858ohsY7y6g/qs91/qj476gan0iKrDMLKkdEzdeRgq?= =?Windows-1252?Q?tuuWmerEQPQF1XtPeeEC+bzfNEgZp0kjCro56Ip+pn4cB+JGpGq66aD7?= =?Windows-1252?Q?ANweQ9MGvznywGOXX5Z6BGtHZRgOUr3B2r0ozwAHnvLTQ8y0rxnQJ9wL?= =?Windows-1252?Q?sVthUSlvPQOH5ifISB1MorDEufexuGypNNgfUnzoQHcwlQZIxXonWbts?= =?Windows-1252?Q?CfNDt3CxoLBS4IasRQHQK+bbxxmLhry3dFezchaEJIrloSeY7+GWemcm?= =?Windows-1252?B?QT09?= X-Microsoft-Exchange-Diagnostics: 1;BN6PR15MB1187;6:ahMgJaJaZ3rhrGPfWRtWXDf34FEp0b4jdbw3ycMbURqhjTxWRvoclvWn3eM0djffQ1X0DB3rwMEAL1LNYDM8Wn0FQ37dT6qVAr5jOq8NxWcsATTvOTbqnkLrAf21RhG6F7Wz8mq+624lduzTuSnnlkE9nDobeDS0p6Tlf9MRXbK0XRBDz9KqJYzLna9ObPG+2UBkKQ125MSl8NJHJSxQT4d182ygy6zm5zYwAmgjmqYi7Be8JqWwmDjWaGcYu7qNsS1/PwernWeoq/KjDUIVDzcugFEpkzQQyW8nG5i+6mTn9HyFqII89hwLaMgzTEksNhWex46kg42dROK/bLJpIe3/bG9wIJRTLeEZ6gzfa3GCs94dVZVdBYVnHMFUHxB8VymL8WYAcvVsbOGIMGD//pf5NIcTVC4HZTF/ZDuOXT0=;5:WfOglPdEXOsdJNEQ66vxXGzoNcGO1H+HuQEdifv3QOIiL+AEXI4j5nNZnYf/KgXYmZyzznj+KumCsORhIwpyOdjuO9eCggrrUOisvbLCIx35m5J3swSsCDSHWlarxlygYboYn1CTg+ndeVECh3rzxjNRfPtPzBfdn4A2ft86r8o=;24:EA84w/DODYe9pmGKr55jFZYv34+M+xhVX4PkqdC5C6zlrfKupIkhcfT+piJ4qjUiRh9NvBd3IMnX5IhDPAYANum2lGe/bC+D0uX34I/Uhzs= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BN6PR15MB1187;7:+4E0duRxKeuiQb7Sr69H4N2q9IIIH2PNlaanH3qmt+K2BbN+paUvfmUmZMFAvL1KwWGrRCq23yp6uHI0Zgd7KzfMnW7B6vmjweMIhP6aVP9VXCmQjPzK+1LdhVXCne6w11X4lpOsqOLnV/FaWRiDMT9oMYhIrHndqFonoMCjPlD5g5YyCCqmfD2YFzxVM+F0fPXD8GQms2psNRniXFHcSH1naXrk+cT/AD7X0M1bwaaGEe+vkRlJ9vCMhGP6uWLgVs3mj3xPu/azP5lTZskpcLR+Dr5CDZrUQiE8iuYz3mYrojNsMKxv/M/HOkhr4/9EjVOvv0LqhtJi/wunKJokVwni9l9hWi9z/5PJmg1GCdYuMQ+tJZpMtkwbBIDeMkpuOVnXEQ4Wv9TJvZ4akjx+xRzPg+S3yIYrEhl50GDNM8i8F2CiW5zpTcY69Iti0tqq8yAKLypnO41jWDAf4aK6lw==;20:c94YaObc3hPpXuiHSiq0TKUZpnvJAa06QMxQtT4gWvvvbJ+1e1gFu8MIWFgM+uV1HgtRoTFpmlRQ30naUkcFlwy+m8eJAYyxoJqkqdIfs9NqEv/A5sPIZx2PmL9nUjlmzYKLvcvSFQQflQgduhLiJB4zrgJBbor8Uy13ych/idU= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Dec 2016 21:05:30.8747 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR15MB1187 X-OriginatorOrg: fb.com X-Proofpoint-Spam-Reason: safe X-FB-Internal: Safe X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2016-12-19_14:,, signatures=0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 12/19/2016 11:21 AM, Paolo Valente wrote: > >> Il giorno 19 dic 2016, alle ore 16:20, Jens Axboe ha scritto: >> >> On 12/19/2016 04:32 AM, Paolo Valente wrote: >>> >>>> Il giorno 17 dic 2016, alle ore 01:12, Jens Axboe ha scritto: >>>> >>>> This is version 4 of this patchset, version 3 was posted here: >>>> >>>> https://marc.info/?l=linux-block&m=148178513407631&w=2 >>>> >>>> From the discussion last time, I looked into the feasibility of having >>>> two sets of tags for the same request pool, to avoid having to copy >>>> some of the request fields at dispatch and completion time. To do that, >>>> we'd have to replace the driver tag map(s) with our own, and augment >>>> that with tag map(s) on the side representing the device queue depth. >>>> Queuing IO with the scheduler would allocate from the new map, and >>>> dispatching would acquire the "real" tag. We would need to change >>>> drivers to do this, or add an extra indirection table to map a real >>>> tag to the scheduler tag. We would also need a 1:1 mapping between >>>> scheduler and hardware tag pools, or additional info to track it. >>>> Unless someone can convince me otherwise, I think the current approach >>>> is cleaner. >>>> >>>> I wasn't going to post v4 so soon, but I discovered a bug that led >>>> to drastically decreased merging. Especially on rotating storage, >>>> this release should be fast, and on par with the merging that we >>>> get through the legacy schedulers. >>>> >>> >>> I'm to modifying bfq. You mentioned other missing pieces to come. Do >>> you already have an idea of what they are, so that I am somehow >>> prepared to what won't work even if my changes are right? >> >> I'm mostly talking about elevator ops hooks that aren't there in the new >> framework, but exist in the old one. There should be no hidden >> surprises, if that's what you are worried about. >> >> On the ops side, the only ones I can think of are the activate and >> deactivate, and those can be done in the dispatch_request hook for >> activate, and put/requeue for deactivate. >> > > You mean that there is no conceptual problem in moving the code of the > activate interface function into the dispatch function, and the code > of the deactivate into the put_request? (for a requeue it is a little > less clear to me, so one step at a time) Or am I missing > something more complex? Yes, what I mean is that there isn't a 1:1 mapping between the old ops and the new ops. So you'll have to consider the cases. -- Jens Axboe