From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751151AbdAQCsZ (ORCPT ); Mon, 16 Jan 2017 21:48:25 -0500 Received: from mx0a-00082601.pphosted.com ([67.231.145.42]:54211 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750787AbdAQCsR (ORCPT ); Mon, 16 Jan 2017 21:48:17 -0500 Subject: Re: [PATCH 7/8] mq-deadline: add blk-mq adaptation of the deadline IO scheduler To: Paolo Valente References: <1481933536-12844-1-git-send-email-axboe@fb.com> <1481933536-12844-8-git-send-email-axboe@fb.com> CC: Jens Axboe , , Linux-Kernal , From: Jens Axboe Message-ID: Date: Mon, 16 Jan 2017 18:47:18 -0800 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: [50.233.49.230] X-ClientProxiedBy: SN1PR10CA0001.namprd10.prod.outlook.com (10.162.255.139) To DM5PR15MB1194.namprd15.prod.outlook.com (10.173.209.12) X-MS-Office365-Filtering-Correlation-Id: 3495c8fc-e145-4dff-21e6-08d43e83295a X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:DM5PR15MB1194; X-Microsoft-Exchange-Diagnostics: 1;DM5PR15MB1194;3:nZDEotjmlGXR/yrfhGy3Z8pg0EYwSQfI7VleCwhDNp5MAnbckAbRA6nksJczwuNHQiWJwfM2eJC0llXM8GKJ8BD368SODvnoQyV+XwZahnrKHLEj3nhxoEnR9rzxA/VGzWXWhyRWorlT73zYOvFeqE0LhzfWBV+HfpSKmxy7jd5KxNJMFp9KTVs73cqoAmORFIJQjSE84gW3NBxjEGdm4aTpW8lEAZZ38IEpG7lVE8G4yVEC/Wkv//FmOQk+OMh5Aq7vs9LgAisZBmFt6Nn9Rg== X-Microsoft-Exchange-Diagnostics: 1;DM5PR15MB1194;25:TwY7g+sGsgPczkuUhtu8R6PFh3xQ8yoz45JIICGCpBH2R5/WmLHVfbdF3GuaZeEt0ERSxiFg5ls3tNU4pyWzpwcTlZiBVEltaJRt9slkC36omfoR0Rs0QBPBnlJUIMpcV1KJuwSjuR1K+u/n1rvC1UATAmM4rn2VaU8RoNpA/FBYwH834aJBxB6iBIgoQz2NlE6jJVqjtX7AplOdPTp6UhwVeItjzB4FlDliKX+nGcJJ50G2tw+v93xL0jpgLkBCdNHk7O4NSUvn4rUHEm92DCyjqGiaxkEm9ZH+Vm5dUAJyWkbY0qeaqvCAK7HWDlIqWyyzk5s+9RjFfsbu3YorBXqOGMnnsikGGDD+vX5IwGKYQPIocU0Ppsak2QrNDDRQ9CxG/DFWwHRuiI9e8gBI9riw2c0k5JRf5IX2ktkv/52SGuxsjH7nYzxyyNQUUwYcU86zFd23ckU37lul4kxRkekXgAbmUMCs9AYeC5tmG7g71MEzt5pIx5TEDT4fqtUZPd9F0gkZaCJIeQty/HJ4tUpEKSC3qQNH3qtB10M44khbgMhHe8o57sAI428eG7rsmemsLyYNzae4tKX/oXX0s0BFMw+BqFNoSY6TLqQpOdRk8OGfSjbkRSUr08IH/MIe5graPKV2NMgNAa5SVhFWfgead2AUm0791jFSurGC647TnfjQ6U8EWdUlQfRQVMLLYeR7mslTasjWePiKCTX2ho77PpkQ4y6P6JE+UrhGVYOj71s2UvSHg8X5F0kFon/w X-Microsoft-Exchange-Diagnostics: 1;DM5PR15MB1194;31:5N+Bi0F+d5vTuU1Yck5TtmtXQQ7uikZPiscVgDX1jOTfv0IW8pAKsIpnSwTY7RG19bcj8d7tATdaiCvbZ992mYaAJ1CMGKHOGIgCbF/vkt9wFzr2RWjbNQqdO55yUhWzq3U1TCI7lYCdBHcqVUdmVfDxtznZnIodRrcRGFC/6ucYcB+CUI48l2MCdKmcgXR/8gqAK4m0M22xID7Tf8xB5MJySTw7dbHamYKgQ18+plFJBT/44PoQRwGH4gxwBlB8;20:J54HQd8u5L6ThM6cXW+DklutTaR8Rh7Awn1HEVpdev6QVbMp/z1UR49tGjkJiVbdQTkJgEkPl3g8tl4wS8tr3dUOEb4tPHw74vNzuf+epm4DpTVeTgQ+uoOQBQB9BLVw/IOq+kPK4pFr+k2iKqpo8JoGVd4Ug2cEjCf8XX6MEP6jg07gAHUTQwMplCKj70yYkLg5oGJP3RHTw7i/jEwS1hqJwuryiyVgiFK5v/oMdxIQ6TNRo9mfi7H3F2aiDIryF0ObenF6TOHVcg2boLWc8E7yzwL0yu5xEH2bUfoijfEU4Gp7YQ0Pui6ty2NA2d5tgoYYKL+jrV6xmZ5Qr8wirTHt9nCpsIOqTT5zznZ/G9A4eHPapQSPVv3ESGxrfDZfMxNyjNhl5Oi9svZDzMR3fqma0cBvAnFAAJFWfMTMkqVlCs2qmy2fFN+YqBVc8wuQ7FV4zfQWJMizZEitvEv1N84p/KT4+pPOMDDlHbarapxmcZv9zxuJ6I0MPTCMZhjH X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(67672495146484); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6041248)(20161123562025)(20161123564025)(20161123560025)(20161123555025)(6072148);SRVR:DM5PR15MB1194;BCL:0;PCL:0;RULEID:;SRVR:DM5PR15MB1194; X-Microsoft-Exchange-Diagnostics: 1;DM5PR15MB1194;4:vaX24hIa/G+Te3uwvSrjMVzVK7/NJppVU4nNtL1Xx1XxvlNoB7wPRVDQnUwMcqYxyneXc050tVmbFBHFBvni9KiOxAcXErXCUtrNCV6HT9xiiV3jfiCNt6+U5uu3/5ogfNWw3KmFwNK/p3RUYRuFrTmHE3K2TrcaH+3EML0HdVXUK5mDTVLAbyvmk1HTgzfQr7yLaMlbQVyU16+0x6NKmURNbRHjAHiEicMb62/xEdsr9hjn9X5WZDCSBMpIZxktztUfeU5ntiIRrkE7HytV74rnEb30mKPSo9XI+HSTs4Yna7aZY8mjpGc7pRdTAbAqAfwWhLa0Nn/AC8eQW30LRWt6up6E+J0Nab2rrSNF4YBTzmZEGuxHlB8cC/qWN5+1sAY7ffSO7WNZLD31hf5B2P4jdbFRTodlVbB3BYnY1yRTLM8/FlyHJB75/fDKn5BECD/d9TtuIh87FgMmjxRzQeXeY0ybYqCLJQkyi6BY7NL2hMu+oSNmGW2Fq7ekVVgE/yo+Dn+O8mHu585wF2OaDgUJjRdz8BInqcDSZkKIV3GDByE8umCm0ILokl5BcnUjYzoENkb5wQzxz6Nq9ZkRuCzqvYWl5xXC88+FfhHH/k0qtv/6DDpaclb0w1XRTDj/ X-Forefront-PRVS: 01901B3451 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6049001)(6009001)(7916002)(39450400003)(189002)(377454003)(24454002)(199003)(2950100002)(42186005)(25786008)(101416001)(6916009)(92566002)(31686004)(65956001)(230700001)(47776003)(33646002)(66066001)(6116002)(50466002)(65806001)(105586002)(6666003)(50986999)(54356999)(305945005)(8676002)(81166006)(54906002)(81156014)(38730400001)(77096006)(76176999)(7736002)(90366009)(229853002)(6486002)(83506001)(4326007)(64126003)(189998001)(110136003)(5660300001)(2906002)(31696002)(86362001)(68736007)(117156001)(4001350100001)(97736004)(106356001)(23746002)(3846002)(30001)(36756003)(65826007);DIR:OUT;SFP:1102;SCL:1;SRVR:DM5PR15MB1194;H:[192.168.102.217];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;DM5PR15MB1194;23:MiDvHwnHjoMxAYBdkmawJc2v5VOkq/faRoNjl?= =?Windows-1252?Q?GfRh0sN3yDyC+SCvQ4hiXS6iJUKVKiwYfI6ppoA/zTekQApczuUjmFi4?= =?Windows-1252?Q?QOTmadiIZ3VDe2evHkjG4Wpps2noxgIeOajOK+CmZmMvQ9G5Zx6BeDMg?= =?Windows-1252?Q?9Y51HA2huF7lYn+FWsHPTbs1YrCq9zxj0cF3hm6Uok5jKPXeQzz89vce?= =?Windows-1252?Q?zgxPZ5GBgGAlufPHj9OTvl3KSuv2UJ9vZDDmeSQkWngEqPVrnUa9V3TL?= =?Windows-1252?Q?BDd6l1e26QqkaCOHJTSjE+DmQkbgZ2ED1eeeJPFAgTPfcxoZI/iBXH05?= =?Windows-1252?Q?wKwWvyZnzElcHJppgXeKsq1Yyi7jFDSwrezr6eE4BoLP1V1AEGHMkJtP?= =?Windows-1252?Q?Xz/KFXky7vdrSi7OLvaLz+14DkYU+NTHZ8fwRgIsk9e1E9rqvPG5jXrs?= =?Windows-1252?Q?aAvKCMQkdYSxa4xCC93wI+rG9GSyHQneJ81R77wWJmQsoVQWi0zFrH7A?= =?Windows-1252?Q?NezJCjLeNElKsrJViGFd3IF5r+YTgzScnEhujlat1Tuj4iA/+aEbwAxH?= =?Windows-1252?Q?yqJ8xSfJKODpKclxG7cDr8TGXqZ7EW+jDjuREEUw9OEFqGN53L5CW3Nm?= =?Windows-1252?Q?WEjfwoYugTmJForp+5hOaonSwr8P6z7YtMainVKUDgMTcUMYw0xaER+A?= =?Windows-1252?Q?zqzhJlJ9l42WLrbyqHstnplhYVArLn6XQlSX5+vUYgiVj2z05V2yC1GU?= =?Windows-1252?Q?sLKtvtWkcRdqItSOs1C5+CDKg/NrwwjnV5TwCIOl+FjNarqmjC3OxOQc?= =?Windows-1252?Q?J5X37pqZ4hDsR7LdAuUUmXVmTgHn/fckMHK/3a+SshtnVCvEj7G2Dwf8?= =?Windows-1252?Q?WJSfPEt32qfXFpaDi01nAU6WptUUzaUVq0pA5jn5ThFzUcTztQmGKpnx?= =?Windows-1252?Q?qVmP8d+DYUDIjUo50V388I2TPuXAZY9SOKCguomSDDHkCzt6DHK9jpse?= =?Windows-1252?Q?nCjHcSzrZQTqkrsJyGNPeg19D/NdUS8IUYUv2rWFDc5Gd8yOqJWXof2Q?= =?Windows-1252?Q?zYlPgGRONfJeDH4BLS1peQ+lVpPLgcvCwYzfzYp4MsT6OzDaArXWvqlH?= =?Windows-1252?Q?CLOim50tqVsN6WFgOlasdt+/yXel1j6vY6UmfvG7dxgyQ3FOufiSCexH?= =?Windows-1252?Q?cbIa+Et1evMIhnXsRUmnE5xINpSHngMYqpWDCIzA+knhP1aQBk/tQ/1b?= =?Windows-1252?Q?Zig34N9iZZIjzQuKRQecseXlL4oMFKM8+wS/HHtd3sDD06skC8jM+585?= =?Windows-1252?Q?Ow+XCDe4u3/KrCajFFL0pVMWuO9As6q9GyvL7KuEeieXm5QpU08YBKBN?= =?Windows-1252?Q?zSb6WSAek+D7A7EiXAkK6+HkkG9HzBGXo7SHDjUyuQUcZqAx5/3vZMr2?= =?Windows-1252?Q?HyvCKh5FaVxyayJP2JC0H5gC4umoV4+ohx1CukC+RDQKh60FT7G61b0Y?= =?Windows-1252?Q?/sUtNaiuRmoo//FlV7BEWrA+LQX?= X-Microsoft-Exchange-Diagnostics: 1;DM5PR15MB1194;6:1BusOld2nGLL0JfbtMfTlsDFoky8gD7eVs9wMOk1FYeF3pOv6vak/6xZDH5+yThmISb7tsN9gQlTDHtQ9PQrY40AWtLePHgtBoAtKyc8MaOwVs8v5qPffUaKzaYsCCmN34rSsV6Rzptp+50c4VKfPejxGIdF7A9i+JaL1o/eUoTKIZ0CDy3OJ46jUTu4cTpFEeXGX8RqlmmMkWfeAGTN+zTTCmKYXY2d7CRvgcoabztRjyUIrgTpXHmeYowdoc0xyj5jbKr3yjy5KG+XFl8+tP3bzTiwHrsIVA4euUs6z+7RrRegjsxnlJEHXigYaGq5eQFZ8cms0KAAjqV5MQWnGHHNkEU5i/PmPDkaLKtAeM/8PTukXSB3ZDunNzWadLnGuD7EVbAPnnMBx6ocgWeiJCIOYCvMfjNVbE6kbfih76A=;5:KkTIVdCIy1O87WGwReRZET0hu603Jy8iHlrXNI47W2V3OBUzSyfZGcDbimLu3OcLJYuuTOV/P7ZmZWOjwBX4ZFuRiRAx/M1dBPN0AkF7V0EUVQjQd7Gp4YsVF0ckI/3E3JKrvvAMblFAQRMPqvRcHCCl+KOh62mA9j7LIh0Wr2E=;24:03WcViO50DGbJYDSco7Myzpp/ARmcfyUdaqjg7fLj0AHicKqa4sMPpofuvVHtxDwsLdEPPfVSx1U1xywbBIOV9o0Dl9BhZIc+fXy/9/0adM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DM5PR15MB1194;7:REpALkU3B8HoLX5GlOXBHN91VLBNwiGhuOogTU9HXCr8nf587bgpSReTV0NO+EQZzrrsxJF4cVn5vzBuq1J/w8owGcEQgBLatkEh+y8KSvEIWSix/4aKw/kfhoI60l3NkISTvt4JdFgpw8JL14vBL2m8Jx8sWV+MmAgZvhv8Tb9k58ai4pIzyPeI8ioDnKj79ctKuE22i5d1rLjHe20Ys00YfqskNwDuOJSV9tlWMNWFz8PVaQAvsOrbIyS03amRYYTHxyWsyO9V4MkejU6T5C2DMgtPW6M3/gEQ3ZdcfhlQOpfBOmzun2nIL4aOJCWyQuKIs9RoAQnt18jraB1oMomW08t+HHEy0LiUqKRGhcufVD9SS0s6MQuancjpLC6pq1p9w7AIKqYShP1mQD6gN8zN83mH+lk+k2DuuQzHbkKfaTaGPECMzbZ+s2I2xRShx8gHO+z6jl2DyJ6EmJ3rMQ==;20:fCp2jXpPT+bC4FHT5SwDtHXZTpokWaB2/iLI5cmv5AjXZfGgK5fYl6vuFhFZys7eTKbWWwKNZfVsY0HAkHg9zqEQ0XvIqFKbX/fOShEICQZkksDcuUatPTaaj5iUakCMGzH6s55t5vZ73iyE73oefTO80UbwuCBmbcSJWbKwJQA= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jan 2017 02:47:21.1624 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR15MB1194 X-OriginatorOrg: fb.com X-Proofpoint-Spam-Reason: safe X-FB-Internal: Safe X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2017-01-17_01:,, signatures=0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 12/22/2016 09:07 AM, Paolo Valente wrote: > >> Il giorno 17 dic 2016, alle ore 01:12, Jens Axboe ha scritto: >> >> This is basically identical to deadline-iosched, except it registers >> as a MQ capable scheduler. This is still a single queue design. >> >> Signed-off-by: Jens Axboe >> --- > > ... > >> diff --git a/block/mq-deadline.c b/block/mq-deadline.c >> new file mode 100644 >> index 000000000000..3cb9de21ab21 >> --- /dev/null >> +++ b/block/mq-deadline.c >> ... >> +/* >> + * remove rq from rbtree and fifo. >> + */ >> +static void deadline_remove_request(struct request_queue *q, struct request *rq) >> +{ >> + struct deadline_data *dd = q->elevator->elevator_data; >> + >> + list_del_init(&rq->queuelist); >> + >> + /* >> + * We might not be on the rbtree, if we are doing an insert merge >> + */ >> + if (!RB_EMPTY_NODE(&rq->rb_node)) >> + deadline_del_rq_rb(dd, rq); >> + > > I've been scratching my head on the last three instructions, but at no > avail. If I understand correctly, the > list_del_init(&rq->queue list); > removes rq from the fifo list. But, if so, I don't understand how it > could be possible that rq has not been added to the rb_tree too. > > Another interpretation that I tried is that the above three lines > handle correctly the following case where rq has not been inserted at > all into deadline fifo queue and rb tree: when dd_insert_request was > executed for rq, blk_mq_sched_try_insert_merge succeeded. Yet, the > list_del_init(&rq->queue list); > does not seem to make sense. > > Could you please shed some light on this for me? I think you are correct, we don't need to touch ->queuelist for the case where RB_EMPTY_NODE() is true. Minor detail, the list is already empty, so it does no harm. -- Jens Axboe