From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932353AbdBPPfQ (ORCPT ); Thu, 16 Feb 2017 10:35:16 -0500 Received: from mx0b-00082601.pphosted.com ([67.231.153.30]:55241 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932143AbdBPPfN (ORCPT ); Thu, 16 Feb 2017 10:35:13 -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: <22d50d67-470b-70a5-1985-80ea30118aa1@fb.com> Date: Thu, 16 Feb 2017 08:35:02 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 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: BN6PR2001CA0033.namprd20.prod.outlook.com (10.172.27.19) To DM5PR15MB1193.namprd15.prod.outlook.com (10.173.209.11) X-MS-Office365-Filtering-Correlation-Id: 9b297688-2a9f-4e04-c350-08d456816263 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:DM5PR15MB1193; X-Microsoft-Exchange-Diagnostics: 1;DM5PR15MB1193;3:th1smTq9mwuZnAKDEzzTtZrFKfgm9xfvECkfetvwK785OSWPvERNXQPO9Zt7FkjleWr5ktqZ278ONLncfaVjmCYaCoxeHHzpLjQYzyDthy4HOWRZMV/IR0uO2IvnWONeE+dIIijACs/ubvjPtnLSMup5EIAdQcch6OBhrxXKQPXNLmSrnOVIBScdOk3E8cUlxhWBrVZ9tmufsEQfjfBNdTQeuRvzAA0zagHMsGQACIuSOlj+L9SdnnYmKhvaUltpjqtMYrrwQyaXoVHjzoDgHQ==;25:q+SK9iUgUYT4ty0m4aIWvGFIjtlL5+8gdm/I1uSpBR8PM2GV10oVbuzHlbfnRdYA2FQ23jk5OtxZ9CAUGx/l23HnutDjGu3u26/LIRpy2wuYcQr9BggGUiqj2kc9+A5NIySporj/jP14bCIHvWlRZ8sQy3oMVmRFXqtt2FkoU5kk+yGSYUTwrAgBHeUDFhUH1LebLd6TIRqMEDe+0UZFS6a6CORHrWBViu51l5ZUBwt2QHVaoPY6bfjBEuoMXSfPsSgPi+CfrSXxRoHUVBWo1Kbm/9R7T9zqsdfGtc9C++MZWtSf/h7Tsk6S+iRlb53eaSWPhyamu2VAmGlgCO8gNzxWqL0N+kw/mGZP4QJ1K3r1zJ2Y1vdEgTlmpeVRdVq3VU14KCDt96Upz6teejJW8TxMtOTRDYv3CFK0PiLrgbfqLu1gQD0Ky1/yvlqRkGhgkl1aAkNkHb+MYJ1ph538mg== X-Microsoft-Exchange-Diagnostics: 1;DM5PR15MB1193;31:B0Zkb/nI6QHoPCs8O2AZEy/qGNnOhWVlOMLgNwpEXLIUZcqt6H3gTMKXPDayz+eju/TRVsFLyMui/OmpwKP6GOvX6JYUB/eHGqv2NH97lIpZBSYB4tzA9sllt6z1nFrdZyaSVqtgm3w8bdWtX1RtfaRQ5WXyvWuUAl3nHLxklnAFAZvaxaA3TLs1v2c3xk3kHCM9M+UofLkzqCj7gxRS8Lf2Pww2/ZiBW+YuKmmB1R8=;20:5wP6eL6TuK+qrq4NyZpwxJbtR3P5VMjJxVlLFn6VEjTrJ6u76/p3WlrUUPOcsSUvhn/1a4PKHTyHhvyxxBKyt383d3CcWvEyxUK9ZAscs043xfL+cpo5191LHf0pkRZFTzjwFY5KWpY0ciU5BiteYbYX0zUqklrpCyQMJl3MCmixOW38eOwx+x7mWEndv4Uk6fZGTrevW2b4+Js/z+J31UQAemlImZwwgcpADIl7Ae7cSh+axp7XpAJAZayY4T/DECinOJ7XoTXyMhj1oWC4h/wnLGDcoeZPh2j+fDkZOVLikrmx+P4ATA2MWNFn7MmHXMDWmu7QjieD0czjwAXPEkKQuIRRQNkwW/RS2uB18+0zgmwQePNCnNQ4DSPmtdFxmGw1nlBW5wPE2TKY9gepw7aNzbVJnWv21rvuPWzZFTzS7P93jmGFPmIi9tn7wrNPH9bCEzLuKaXWPSvismMJ7SrTLVJeQ3o4pIHcXUYgNjeZ0bGBBIt4sHWANIgspmHE 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)(8121501046)(5005006)(3002001)(10201501046)(6041248)(20161123555025)(20161123560025)(20161123558025)(20161123564025)(20161123562025)(6072148);SRVR:DM5PR15MB1193;BCL:0;PCL:0;RULEID:;SRVR:DM5PR15MB1193; X-Microsoft-Exchange-Diagnostics: 1;DM5PR15MB1193;4:JyWPJ9yhpuYecMfZULTgPzo249jl6ojRbbhw4PmPsBjWjAfivHV4V5b1m8JNK7qo/0OUmX5Ci6CnmrokZyQl8yuqXRM+nhBLSsE50FkWUmCn6jaO6FTsPEXEKjK5WNXGwejA+jWX7jFf04pbSS25IzbY4+5xSLUMcMhPIrWWyAvSvxDkIjcrbiIJRhS+iUo5uyFLRzkOw/04vsRZASwzIGoQvK8S/o9OeBDA9TlNflwJycPQhOkkXKXyjD6jmUwnnBcLleFmgDNslLlyUheSjQKsHdisHNOKCaCVwMVF44YN8imweNEjoGAN48VO7cP7fN8Y8GbkvtGdgHM0pJvGx7BTKrjvAb0Xg9tJ4I3mi4MRSR5xF3CoOzD5ohWKJ/08sHo0SEMSgqZRLLfF3TefV8cBWYXzJo5CMKkIU3bhS2YixlfmwKLX939HLxZerR7t7sn4ofB2SwTIopi8GQ9NX4SY9oGc31YB45/Ttw6QXc8N1i5aode2X/N25PFC61oVu3NmREMgFIIIWWb2yGdkxLcE5hwsxYsKg05K07quRXNAM4gsPaHsumLxqlSJW1cKsr05v6WsX0gz8HrWHyf7TT6QavBxZv/eeei2usa07ek8br/135JkH4+wYXzeWR5Xc+3K5RgUMBtC0vlUPVruyw== X-Forefront-PRVS: 0220D4B98D X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6049001)(6009001)(7916002)(39450400003)(39410400002)(39830400002)(189002)(199003)(377454003)(24454002)(106356001)(50986999)(230700001)(76176999)(54356999)(65806001)(65956001)(305945005)(66066001)(47776003)(42186005)(86362001)(36756003)(6116002)(31686004)(3846002)(90366009)(101416001)(31696002)(105586002)(7736002)(83506001)(117156001)(81166006)(8676002)(53546005)(229853002)(6486002)(77096006)(23746002)(65826007)(5660300001)(81156014)(110136004)(6916009)(2950100002)(6666003)(68736007)(2906002)(53936002)(38730400002)(6246003)(64126003)(33646002)(25786008)(92566002)(4326007)(4001350100001)(97736004)(50466002)(54906002)(389900003)(189998001);DIR:OUT;SFP:1102;SCL:1;SRVR:DM5PR15MB1193;H:[192.168.1.154];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;DM5PR15MB1193;23:YM2Hw4+W0Tf7gNM+4f+WiAgJzGSmGRk7sVqyr?= =?Windows-1252?Q?d+8v8ktveS7xM9iQjLqHwZYMnqUeWAf4+gP2oFG1DJNQi8NHwQJIyTiI?= =?Windows-1252?Q?WgfJg5I0NYT1PzzMhrH2lrpXgjtBUmH7hPEXVtSkFu5o3ptObhTRHU0Y?= =?Windows-1252?Q?aBkokuRQKF1OuIIdVjnPevLq/390BMOMSfSVu9olJOPNiY3JH+LqyV1F?= =?Windows-1252?Q?g/RF6NGBohbhXkoFJWvmmnJtGXaNQ5G1ZGm5smRw96hnwf1dBVtWlZ7M?= =?Windows-1252?Q?n4s2FGA102u3ND42YFLBKsiIcd6cxAVh+kh7EWh6i/oCXkdokUD2sUj2?= =?Windows-1252?Q?M+iq9yayAx/sy4Hm3KpYTD+s2M/0UTrsYYA1i6l5Iia+SRnGlX+8gMNc?= =?Windows-1252?Q?jJvXD78emeq6jXRbNxlWeSuuCNZzfZeu6qJBsTcAp3SsAZMk3YQe4535?= =?Windows-1252?Q?WLjdNusT8cGwNhKxoqsbfmiv8LvqPcBXEQT4brglGNDrHvGISu2iY3id?= =?Windows-1252?Q?7+nGFiuqS64RRZVTcF7MGPu7TSg7DJTuGkIE3RElGi94HM4BQ6pD3vKZ?= =?Windows-1252?Q?LnVB1vidpR+R84kCfDk2ZeEOaIMYvk2nR90pHDHSQKR2nvXuvdQ7O9V2?= =?Windows-1252?Q?w9GEqTOkVR2Bk7fUs+sWUI5cptEWQwjt/iIEiM4j4khs7NYIFgoGYLdW?= =?Windows-1252?Q?/h5Z30u7ggYo65hRFllGmA5yKleJHEhuy9kCKIL3t/r/U8Ons5rHofL1?= =?Windows-1252?Q?lbgV9Qstjjextd+ccSfAs0772fiBrVZ3LUN4fk6uYqw4dXa/gYUuqGQZ?= =?Windows-1252?Q?gvRLCX5yHbnwnvdW5FbclOmMTmPp6sx9M5FpVS9BHCc0n3/ZCsl/TNKi?= =?Windows-1252?Q?tLQv2Xyqe/3Vbx88m4LmNHT20qO7DRY37KA7eNc8NLCgu+nmOxcOH40F?= =?Windows-1252?Q?qmvTBl7MmUsrgfbjpPAwZRfKInwES0QjGhiuqgHRaECVw8ubCVC1NWq3?= =?Windows-1252?Q?eZaTuWld4SijlXeD23HYpcvOKu0KBQTRjDKZmr9GxLAHZcp8p+4Ce/Dy?= =?Windows-1252?Q?yPbb43I4cHnY9oHGIHF8buO2vvfxkDy0Pk3YXm9eEJbeJIAgulV5/Neb?= =?Windows-1252?Q?diW2F1CASaRzHJbyv8TYjTs/yD9zuhqr7mYfWnQQXb8XEs2rWQ8vF0Lc?= =?Windows-1252?Q?o5uYLhhqwdQtkPXwUq6F98Lu0Ok2XO+vpX/nhyfdkNhqed3AmcOtrmpb?= =?Windows-1252?Q?/YeqIRez93HWgCbJFn1BsdChtobXnwrKa37EE0DtxL8tqCiIPhn9rdEE?= =?Windows-1252?Q?hIduCjv5jaENLtm0NxrDvWB6yyQzJHIoz2AABCm3EGLy2lHKXvKKHocE?= =?Windows-1252?Q?w6f7VH/N8W567XDIQ4IgzE8w3Tbk7MwEKn/J187l0DJlCmVTz4Y+lhKt?= =?Windows-1252?Q?OmjGfAn9RSzmU24if6sv8KlSsAx64Xd8lolZjILosV/0mXxH+QbiLFti?= =?Windows-1252?Q?5IaEVClfjDsuTmpbc2EJjX0cIhBxJQgM3HHteK6lg08Y5g9SjaWqGvvK?= =?Windows-1252?Q?b774jS1Axfgkg03pbCNNyuQxOsKnVFqodzaRJ9NOVamevLDTmrsOHvUo?= =?Windows-1252?Q?GzoLTuR0h0WXmBfGrhKXB1FdORiXVL5UFPuY7qm3zgo?= X-Microsoft-Exchange-Diagnostics: 1;DM5PR15MB1193;6:3R5lZUflZ7njXMQaC6By4qgqlvN5488NaKRAk+X0K8GkpT+jWiO9egxq3pA5PDoWIEYZETdG/X43ZZxAyiuhgeon3gD04BkxhMGXZ+p8xpXctpCRrJ21w0LJHX1ZTaYujFiWVixSsKk0Ac34/hD/vvwm4TgZrdqT96F8pa4mO8sD9w0DRHnCArVC2Tv0IQn/KSXHQDwqFxg424UR/hSLAy5nbBuy60rlu1/9c215NSQBy6wJl74GaxAdmIi2SlyKjZWAc6GGucnjnGp0vvWFJPq4mYHzMQipFYTnDTv9q32Qvg2zLlKUIgQZfkEA3VSynFObTdvFWVVBZlUPfLJiIUClVi+LCfZckGa0QCKohpdbBkrEQJB1wqzPnI9Z/wCdAjlD/WbGS5l3q4JZu6TPRQ==;5:K6LlS2zmOSG7D4DBKHwz44NSQZvT6NGVCjqHtC1J2dOH+F75IZeOMvCM+7j7nHPywjnLpXYRgP/K02nCD0ehR6hV7myg7p5JpD7HIGtU6HovqktDDQl4bqr4fZtsJoYf6pUobtbJpJsIvp2MCNSJxQ==;24:EPgKwRZH1A6xAMJRcXTsGucZdfrilAJOQWJDOlZMn7x+L0ptKme9NkxNG0UqTAuBms7dIjhLzk3ANqwQNZDGmYQPzvEUiK3n4DrIdsflB3I= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DM5PR15MB1193;7:6sPs2orKqOFUi0siXJ2g4MiUICpbfuOHDcnmnSZRsk0IJRJIxPgogZYrHdCdSIrPvS3rkq+V44wFzSjHWNRdQqlxRmanCtE7OasiYq6kRt5hYRp14bsZUDWrE/gzuqMxF7nI+4V4Kd2r4jpcgUFiAwYq5G7Ea6xgpgsJe3m/+3/mkxl5S+q7gfuuGDMzjOkmyNHDjiC62d57zfTPya9cTpdlxyMWHHDup8s4bZS1l5lfT44qL/+8YhVfSuHv6ohTQw88ry25ZFiEkL8LRO9ZCvBrB99/nfy0UzH/Y1qdPTT6ipL1zQisRXhF1YPXODPr4nfldrh740yrgvFUAlOz3w==;20:Q4ye57kRb2lIgHVYHhar3yfotf5HYL53YwXc97/VAyR0XX/+u29f+7MzWkUpwGeCLjHyrPbRXmUXOt8jkHews7ORHBmEZrEU8WnlARSxqo6yCRE38wXLQHigfMdjjZwz8dkc1NoRVc1DkxP1rwLi3zuClhs5w0gAFuRBZH+hUc4= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Feb 2017 15:35:05.9791 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR15MB1193 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-02-16_10:,, signatures=0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 02/16/2017 03:46 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 > ... >> + >> +static void dd_merged_requests(struct request_queue *q, struct request *req, >> + struct request *next) >> +{ >> + /* >> + * if next expires before rq, assign its expire time to rq >> + * and move into next position (next will be deleted) in fifo >> + */ >> + if (!list_empty(&req->queuelist) && !list_empty(&next->queuelist)) { >> + if (time_before((unsigned long)next->fifo_time, >> + (unsigned long)req->fifo_time)) { >> + list_move(&req->queuelist, &next->queuelist); >> + req->fifo_time = next->fifo_time; >> + } >> + } >> + > > Jens, > while trying to imagine the possible causes of Bart's hang with > bfq-mq, I've bumped into the following doubt: in the above function > (in my case, in bfq-mq-'s equivalent of the above function), are > we sure that neither req or next could EVER be in dd->dispatch instead > of dd->fifo_list? I've tried to verify it, but, although I think it has never > happened in my tests, I was not able to make sure that no unlucky > combination may ever happen (considering also the use of > blk_rq_is_passthrough too, to decide where to put a new request). > > I'm making a blunder, right? If a request goes into dd->dispatch, it's going to be found for merging. Hence we can never call the above on the request. -- Jens Axboe