From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750994AbdBBFUR (ORCPT ); Thu, 2 Feb 2017 00:20:17 -0500 Received: from mx0b-00082601.pphosted.com ([67.231.153.30]:38110 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750808AbdBBFUO (ORCPT ); Thu, 2 Feb 2017 00:20:14 -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> <26ED11F4-2507-4A5D-ACB9-C501AA9CBB29@linaro.org> CC: Jens Axboe , , Linux-Kernal , From: Jens Axboe Message-ID: Date: Wed, 1 Feb 2017 22:20: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: <26ED11F4-2507-4A5D-ACB9-C501AA9CBB29@linaro.org> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit X-Originating-IP: [66.29.164.166] X-ClientProxiedBy: BLUPR0601CA0030.namprd06.prod.outlook.com (10.163.210.40) To DM5PR15MB1195.namprd15.prod.outlook.com (10.173.209.13) X-MS-Office365-Filtering-Correlation-Id: 42c2a35b-7ecb-49e8-b1c4-08d44b2b2791 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:DM5PR15MB1195; X-Microsoft-Exchange-Diagnostics: 1;DM5PR15MB1195;3:wc9V7Bt7SujboeFJezVpqGzCoASJyTikck0zZkaw7YRg8xJhIm8jidIH/BPL1+DiKWgPFZtF1j1BA7DEZ5eM5YE5vvdwwXCaS5fPiAqalsjo4/BEGTrRZWx5InHGd5IvH/4hbcfv12Zl4gSa7CSfRutZwMoMxy7f0DW79sbvgytY/CiOdbH+8wfMLF+yc2qXB4remKS8fkRykYUCVeZf2e4jm9tR4LAANGQ8E/v+245WlUvMgSF4lbmbBM06Ibf73n/O54SrufidoO0BhZmiwg==;25:bdLznnYUDPoT32mnkERXUveUZH2QGEDKBqC4M76sL1P13OJajTs9eeKn3Ny4CN1r+EFTr5MQoLJcfYSr9plSBwPAidVCW9YVBbyjJFMql/0k1jMOzycbeNb8Yz3AlFfYRW4Y7qcX+g6D0KWlt69l1kqvOfShb/UC5KGWwNFKTjuwSWpkKYbpJim0w8Tg8ryVL4MyARBq6iKoAn9B+GiAlB9BUr4bxWaIQIyaMkxipmeipfmnMRZPdYvq4mfKMgt5v1DBmVFQoqNBAUnUnXbf8JuwLSMZsl3MFPKoTLXEj//99RW2G7DexDBq5/nPjiONdGkL7zUfpEFU10hpokQaeJcrTjUdAM12qfJXHOP0LJwwhZ17YaAxX5L6glLHC9+YS2s8sO9tWwzZKQabD8RnbtiAYH/0QWUwXdSQd14594y7uCXp3/sz3T+v4xN8B8VB X-Microsoft-Exchange-Diagnostics: 1;DM5PR15MB1195;31:Z4dtOK+4rGmf1ZQCz0AOABfPwg9wLoxXS3/+vqWwA8gSg7QMGnQlfSV10kUr8x8yjcTyUrqA2IwW2lZYxYL5ZW4mJSigvOISjUJ0yYGuAcjJOqWaZe71yv3kl+7zG6PW3W9C0mIpm97jTRPu3k9VDQoDcp8/D1x5Y6u8eBYjSKerEfwWA6WOrJp5MfQdjwPdT7n/fquWoYNvVKJA1H+WpOBUqTME1Nuvq0Sta8CqSvz9+fmBoKDFKgSOLtQl/OcKIo7ctFx04OcehxhwVZTVhQ==;20:gtSKQlQNsrF3uJ7qd6LUjqayS9A4ndG/SnfTiXOVGbCZxoqiwVt4oBV5WMVZ3xUEZ+m98AW7J40eLbwyXzH8SiiypeNdlHENYGWmekmxxbN2TQSWKYpjZ7EQl3TnH7uPliG8yg3TGgjEE26Y4IZvCOp4BbCUq9fbIe9oCxcCboRWWeHuKNacE5alvPSUggKZvbkrybbsmLPwDZ/q62BmSXe7DGtsbSXwynSb3zz9se6G5adpOdmnFhCwM/I3FmyAqu37Ofm6iuFXxBDIRESCWilC4cHVuD1hotvOuTgL0IAc26Q+7Qa9fPOeWsYi2k2FogB5zmkY93zivpd6i6g/nstElbtGicvrpiAdCpMlt60+9NL9nvGatgcDCsjRxqVvdmeJ+5C104adASA/WCu6Ywan338TQULkkO85rMqZZ6KSW/n/A7yxKko7Glnhon/58dwM4sDHsHvLscfMI2jGr2rgyd+Nc34TltIt3G4GHK0cEnOg80Woue7wMqkNdOrB X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(6041248)(20161123562025)(20161123558025)(20161123560025)(20161123555025)(20161123564025)(6072148);SRVR:DM5PR15MB1195;BCL:0;PCL:0;RULEID:;SRVR:DM5PR15MB1195; X-Microsoft-Exchange-Diagnostics: 1;DM5PR15MB1195;4:RoB0sdtZz9mYRp7o7bM2xaWSs7Vk9ak4lMBDr3unE8cNCI54G6L9h9ztHTpR6lqGd6LlNKWmmzJ//x05ILUG/48cvzXCwBu0REIvvH4iFJxssfUXQIQlD9Z5rcd4aj6Bd0aX2/9K3NQ9TqFCTkWuMH6QpXvO/66LVvJXQS5T7WdrDBdelAyURMakUGZYoGLsQeLOp3OhRG1Y0pLQqEUSx8aP1V8Gi2e/lrNFeAxUUtUR7o1DNRiDPAmzjvmknki5BeOmHBm1s+8iK9grCCytSdRKU/i84I32ks/eHXoc2RtQdXw/g+IgFfsvYBZ3rAsSOGSe3l3Fkw1MBgl15LpyH6P8FnEvyfG3VokC26jiTRbX3qtS6p8B0XHfL8wkWvHoKZomGyZVm82Egf4wRLAbwxc+e+rrYTykOuAr/lA0/dUKR44zBMsWZ0SkVn9HSbHlGJ75zzYTdLCQdJb+OXWNjDrPilzT4vzLkbA0ofyFKcWHTLwloc5Dkq451i5PAR4k43D7RRYjk5bMofd51dK/brYAx0J3foNwNP+6TZILgHXrJXJmo/x2HyIXEO+Ky3UkAzJvJGzkz9avA+1JEfFQ47JGPd7uroiBCWuH0Xv3mv8= X-Forefront-PRVS: 02065A9E77 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(6049001)(7916002)(39450400003)(39830400002)(39410400002)(377454003)(24454002)(189002)(199003)(66066001)(25786008)(50986999)(76176999)(4326007)(117156001)(54356999)(68736007)(54906002)(53936002)(81156014)(2950100002)(65806001)(38730400001)(65956001)(101416001)(90366009)(6666003)(6486002)(77096006)(4001350100001)(47776003)(229853002)(6916009)(36756003)(81166006)(97736004)(65826007)(92566002)(110136003)(42186005)(31686004)(23746002)(305945005)(230700001)(7736002)(31696002)(8676002)(86362001)(83506001)(189998001)(106356001)(105586002)(64126003)(3846002)(6116002)(33646002)(2906002)(5660300001)(50466002);DIR:OUT;SFP:1102;SCL:1;SRVR:DM5PR15MB1195;H:[192.168.1.176];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;DM5PR15MB1195;23:AdZ4PLCtxLr80QpRWL+mEPRg04txSDuPgbd2w?= =?Windows-1252?Q?+1UXVuujFdhMia84I5Fi1A/QyAaI3OzQr5oGgPC7T1XzltaBKW2Blt5M?= =?Windows-1252?Q?CtVd+yNRxhaUt3JdqqQ5yv4dZ72pSDJ9u/y2dJ51CgT/QO2tk6kilcbL?= =?Windows-1252?Q?9SU9ZRg9d9sk7GserDGETinXgWuZlrVk1cAhPemg85z51qjcBSAqZS19?= =?Windows-1252?Q?IYNiTgGOa9nXRM5y7O5GmKMj/jElQdwynhaDYn2CEAluazj9491pMKKN?= =?Windows-1252?Q?1riL6ecTNbOgj5Cy1vZryE7ktmX63rfdKHNXHztrFaUFoHaFP1nMBBVe?= =?Windows-1252?Q?tT5fxiALQHoA5a3BPUH+OiKzfVUKH2eetgMzNQDsiNDNaLpL5V8hkR01?= =?Windows-1252?Q?iz6XMPAnDfhXiUfu3YGYTS+4dTHqUmOlMpLDfYPF+DNHRQ9yfOIid8pJ?= =?Windows-1252?Q?X3KayR/UGxUorNIDTRM5aQyFHCvxz5RnarDs7DK89i38fWHPVZUTE4Ra?= =?Windows-1252?Q?VNnIjGo9+EtuJnT0OzTwnpMPQ4HE8Oatsw+mvL6X/TDDwSIgqhRMEh8S?= =?Windows-1252?Q?a5yzG2aBCeHxvOY8Jn9uch3NzPUz7VvdeF9i7d/iyisbu6w/TpbdXGW6?= =?Windows-1252?Q?hpepx12/evr3w6tMmDQG+yEMQZcoi2tsO0YqFP646n0Jd8zwbdvw3xnT?= =?Windows-1252?Q?ivpmCFsoUfDVfjSgzZ52aF689+sOMIi712pBBIAtwLNlRWuvbFUTwHAz?= =?Windows-1252?Q?UWaf03Pi1Tpnb0NbA4jLmPwuZ+g3KVDEmdeni5vDBFlwtQKWSdJpGOUy?= =?Windows-1252?Q?BOqHl82WUlI3kTojGJV2+IL0WFXEtUd1K3Q8oVafpgWcUQmE6hYcRKCT?= =?Windows-1252?Q?PA39BZYeUR5tLMUM/x/bjhKvHIZclkXHwC+yOpp69YEu78nLVwr1RjfB?= =?Windows-1252?Q?Q/dzaIIp4k5L0s6zIFRctzmwQAWPl6yMIKM8RKqR00hNvXACbkZjF8PA?= =?Windows-1252?Q?UJrJCPS+tLBCxyyBJrJR/LU9LQidjTXJAdZ+nMfP5gFWdbmwHSaBsGh6?= =?Windows-1252?Q?iGf0hGe4p/5DtivEUnoSqWy+17+UOICrST1s6hTsdGXioOM3f/1A4a9s?= =?Windows-1252?Q?tPRN5AfFXc1jn7eeON47OCNDBB0bvvJbqQlRIQBKdm++61ldNnmD8s+H?= =?Windows-1252?Q?eOikmnL+igVAbOgS8mJY3Qr87B1c6EY+mv1veeGRppieXpdWKu/P7qE3?= =?Windows-1252?Q?9Txg/2AxLkOvD729/lg3Q4EJBHh9B2UA5QAxTkyu85GIuXV7sPOuY5vG?= =?Windows-1252?Q?e35eW5QIUtO6a+UdbG6jzTHRlnK1rs1q3visygv4S/IbL9zYfpBq0lb7?= =?Windows-1252?Q?pwyj1yV3de2c6atJDoH0Ur3EtujgBcUZEGmngH+GvuSjm4wKQe+oO1Rq?= =?Windows-1252?Q?UnGXKJ5rhuSwZz7E4wjgUk9MbsI4SF4yskHl3QackU6wG2SAfCQYd6Sm?= =?Windows-1252?Q?zjiNvymjwo1CJnRCCl9wPriO+9nkSbgG089MOdbKIzCZAmi14W+W2e+4?= =?Windows-1252?Q?EwbriOeDmDdlAO5591l/3WUDDsBfk8jb4hx?= X-Microsoft-Exchange-Diagnostics: 1;DM5PR15MB1195;6:Sb7yDzG+QSdXNxs+ZrHrPIRe0qQWectd8an4dCc1Eg2Fx7RvdtLtOgNqglhiSY0vJ17frfVq04Ps5GtbgYF6iYx0NildxyyOBiczci0RIzAL+MApZIyr0tn40xx20Rmi3lRR7Di5J+5y8umQ53IzmMKOTKvkP6j6HWkWDL5yH3Bvk9h6ElKyavClHnBJtq7LftDNnUjZWiDzs4r7VldKhHwSFpDCT9gvhqlpn5SuPQfD0BINWWYhCHI+jecwcMrnLkQ4TqNQV6GyfD6Wx0IgpeAM+dIF7gjy5K00y2B4xwBX7eIqKkAgx33wVLThjg8WeWBXolQzILES4v0MFWotTWSVml4T3y1IhpubPbNcFuFVcln6ToS1UZOOpYjTd5CtKkynut98Adq2aZTjxeB1qb3A2aSbb1rtmzMsp4I9STQ=;5:MLHHqrwAsNdNqjbbwtJTNEX2jkE7lqMTlh89izT0AIEQZ6vWbNgQWYyym//1/4+waYa+TvO9mneQ72AjW5sAG5D0+8CxYaxfYGi9tH5NpD65fRdXqMlMbSGoG/tLcn/NUUUTvzyPQJ0RRnJOtxAXNw==;24:EDmR06YBHIRe6t7vSS1rI2R0lsoYY2Zd2rrzRJkW+dtbj9sQ+qsWzGjrk53GV8rvA3fwUfLtx0YDsW3PuNFb+fAukGRCSWKmHKui2J+IjuQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DM5PR15MB1195;7:ckoCxQmb60Apy5EtlEP5j/YfhJ6xIOypMe6x2O8Zj1YsCyyYhmAZuGyiZTRgPrfmf5aaKMzFqf8ek7QFyrMCunc3mIrW26wtoWAZ/UMFHxNR1/DOS9KFG/tsKrQm2Gfd8cTWCggnZqffVA2Y/cuUxN40xGUR6OV6jVvEqJBPgwyZU8/oSfkroyj9VlDnwxt409FIiLxv8nHlZM54pyHN8Yb4mELm3cLYfDpbSbJ1EsCa7NNCbYnzssmSAcE2xZHsC6aWTVu2k4HDqzbvQJ5ohaJi0uAHKYadUN7EpVss+mhICog02UmmmHr7pJVYnsxwzgkmTqIkuZlTl+zvN48a/R5uThGkfIsTxMiMP56gh/8bT3TC2s7EuQPkG3IFrjUyPsuZhHsSnHbuKEYs4AY+cv6KhcDgvVpY30tVFEb5XBVfLjn6bVDtjsmXpzdknutzovp03DXylHs37h5GosQjg+/rXCNfzM1caYjuzBjvTW98NktRmi0SUqpwn7FWhAFgXdutwG65Vk1dS1xh97Y7Z2SnGWvYlV4E1fCylSYlRQRaDt4dmODh4CIMt0sSHa/p;20:BwJiIMUSkAxz+pGLXbifFswyD7ZSjUzmk9ZKut7BVCoSNiJp4/3/C1AodYyuKm02ICB3YzbGzni+vyYuZtbbg6Cm5D6hQnEh+hdzB5AXZuLJ6cTob7KZ0TVx4JGWBXpoBWGjJ5ExulGESctMfkVU2QQDBuGv95qj6T4lO+1qKEg= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Feb 2017 05:20:07.3488 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR15MB1195 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-02_03:,, signatures=0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 02/01/2017 04:56 AM, Paolo Valente wrote: >> +/* >> + * add rq to rbtree and fifo >> + */ >> +static void dd_insert_request(struct blk_mq_hw_ctx *hctx, struct request *rq, >> + bool at_head) >> +{ >> + struct request_queue *q = hctx->queue; >> + struct deadline_data *dd = q->elevator->elevator_data; >> + const int data_dir = rq_data_dir(rq); >> + >> + if (blk_mq_sched_try_insert_merge(q, rq)) >> + return; >> + > > A related doubt: shouldn't blk_mq_sched_try_insert_merge be invoked > with the scheduler lock held too, as blk_mq_sched_try_merge, to > protect (at least) q->last_merge? > > In bfq this function is invoked with the lock held. It doesn't matter which lock you use, as long as: 1) You use the same one consistently 2) It has the same scope as the queue lock (the one you call the scheduler lock) mq-deadline sets up a per-queue structure, deadline_data, and it has a lock embedded in that structure. This is what mq-deadline uses to serialize access to its data structures, as well as those in the queue (like last_merge). -- Jens Axboe