From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755483AbcKBPC3 (ORCPT ); Wed, 2 Nov 2016 11:02:29 -0400 Received: from mx0b-00082601.pphosted.com ([67.231.153.30]:34976 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752400AbcKBPCY (ORCPT ); Wed, 2 Nov 2016 11:02:24 -0400 Subject: Re: [PATCH 5/8] block: add code to track actual device queue depth To: Christoph Hellwig References: <1478034531-28559-1-git-send-email-axboe@fb.com> <1478034531-28559-6-git-send-email-axboe@fb.com> <20161102145908.GI13964@lst.de> CC: , , , , From: Jens Axboe Message-ID: Date: Wed, 2 Nov 2016 09:02:08 -0600 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 MIME-Version: 1.0 In-Reply-To: <20161102145908.GI13964@lst.de> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [64.134.26.173] X-ClientProxiedBy: BN6PR03CA0062.namprd03.prod.outlook.com (10.173.137.24) To CY4PR15MB1192.namprd15.prod.outlook.com (10.172.177.14) X-MS-Office365-Filtering-Correlation-Id: 7969852e-5223-4cb8-c99a-08d403313be1 X-Microsoft-Exchange-Diagnostics: 1;CY4PR15MB1192;2:foctu/UVf9TCgB38y3+mYmcFrGi2mjSNnlZs2abuvkETEPI/fHCm5De1qG+oIH4Z82LwdiAIthtpASKY0aPOUElM+YlY7H/SG+aAqIv110BfS8fToQhK18DF5B5U+uBImG2a+edYK14x3f1mH5w96j19PVum39dSjFv/78hev2gpadXOpUY6MxqcDQE0qI7/XRwWVEm04IxARxfF8SH0/g==;3:++u4p5NZozDdvnMM8/Iekt2F1HlXMRhkVG6H2J1fh5j6w1oxNBGt8ftf7hpdkmK39z91DPPNkCEmIVwRb8Bu7QkZYjEhUZEujIAU+GO2lYncO6Hl5kPfoSup0WRWuYvp2uwsz/K0JIoAMDuk83j99g==;25:LbkhtvUOxTkNYlLjLqj9Wu0oHWd3MHZbSeOJEodVZCB1A1vZgQ6rJopP11huZIpdtUZxmBM+/XpZ31CTi/RGZMv3Tj73/PfaWiJfIJwmAKPMwkX6wD2+ve0CiiGtLrRwmo6y3g8WkX59JxK5++FyNtOoITRpvzJOVLWijhlhn8lDoTIOrUrjbIxY4ZvIzIj3UIaTzrf0kr+07j9Ou+J7fe7agLy7np52fp2d76vqhsEGNXAOdsiUnn+G9UZR/Fj3CJXjU4WKIMOKdtGM2Hsyv5o7+grTUk+1aMVCQ789eYRscTmMj346P7KAJ5wzqqHAEtfriPK33nRzul/6AOX2v9JKa0Cyo2ex1Plk6nhGHlrUMiC75nwvdmVGMmcTepopIRemvNdtJnBWLzb3SksLqTZbQJ1bpX0G4n6TsqN5fMsAOfHS/S3PYKf72K0PCQnD X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY4PR15MB1192; X-Microsoft-Exchange-Diagnostics: 1;CY4PR15MB1192;31:AJEYtsZJFp+9SB5mx3Y2pWQx3mvHoiWnSr08NvvkpbMUDCrbEshooVxj/2Rt8/AngV916XPNLi8smxOSSjCmtsfJhzX16Kv+qfcQXj5DAMXgmFoV96wopFNUmS3ENnFAvHSXpsu5+TjEIIdJD4a3/jwCCYftudFC+TowG59urA0n6lBdcoPzxnb9c3vGbdbj7CKQT+x2tWQTcOEOFTIsMA3xmDbkQMh0p/mSGTCK6E34mWBwhh5cNrSqHKSuhHw1kuXBMhx4rCCq+RY9ClMuUCtvRMTEDsMOmNirRF6euX8=;20:ynsZcGC8/BPgBk+G8gBI/MEXVDuHFdpapMgedgr8QWL63serTWvFpZM9bNmCnCRBLGfX7b/9q5932bHMVnrwP9IVFfGJt8rmJh0r1UI15stG4UlMCi1Np7XLEnR2Mp2r9tln4+vq0+SzqluJmJaEPHXtzwbVA8v5XwX+lcvh1KI=;4:KCOecL2Du2i/AIISNdUoYlCXuLqctZ4595egn/K52Or/EhSgtrIqqv/uSj3L5/YTDuRs/AeyybSr1diEZBSikwp3thpPjyQZbcxAgvCmJ6UB3mJIEg02qKvUj7leZilyD71EkvM905vXVN+TV/2JCnVBb/wk5HnDRwBM9La34TWkgxlPYGBDCPEKV+KP/+wvgrNKO6ZD/ScNsnYgdRAH9CNf8l2F06DcVEiwTmnQIrT7A4LaRXYUZRHRByR4lIRPpE1GGHxcB9YjOQfgqUr31ulZ6F5afwQCKnArptJDftvZ/9QNb1ZY37fkJuZI0TpJn+vy7EAbufJLswmXXmijZESDG6PUrdX5BWSvuiEAp/YmPc1M0PPrxmy5y48yVFrakaeMMpty9/USOvC3LpnAjw== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040176)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046);SRVR:CY4PR15MB1192;BCL:0;PCL:0;RULEID:;SRVR:CY4PR15MB1192; X-Forefront-PRVS: 0114FF88F6 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(6049001)(7916002)(377454003)(24454002)(199003)(189002)(8676002)(110136003)(33646002)(92566002)(4001350100001)(65826007)(2950100002)(81166006)(6916009)(68736007)(64126003)(586003)(23746002)(86362001)(105586002)(97736004)(117156001)(31696002)(6666003)(50466002)(5660300001)(81156014)(101416001)(189998001)(76176999)(54356999)(50986999)(66066001)(65956001)(230700001)(47776003)(65806001)(4326007)(77096005)(83506001)(31686004)(6116002)(7736002)(2906002)(7846002)(36756003)(3846002)(106356001)(42186005)(305945005);DIR:OUT;SFP:1102;SCL:1;SRVR:CY4PR15MB1192;H:[192.168.6.194];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;CY4PR15MB1192;23:XQxB9Z+BbyrPT/qt4Vv68oaGWgmfBFvAsjkd/?= =?Windows-1252?Q?EmyNytlbkDGOQgkuN26T6DwbnEReaDIS0FM4mqj+4h7YSkRDgRefnG34?= =?Windows-1252?Q?pkDCom7mJ72M7RnjXG+O7MEJ0IxjJzl4IsYjAaSm+iLvbSre+bxLzJqY?= =?Windows-1252?Q?E939TUhA5jD2bBXBBIqGRArKPnzyTB2BziA1zwfycF4wnqIpfqZeOOvN?= =?Windows-1252?Q?3orvDcV22dEfF6IEQ8wbyRqHOfc010ADZrDPwZdGI3UzlizeGUCmUCce?= =?Windows-1252?Q?ZI5ZIGucZkFCun7atQB4pcnm1EZrQWEMdRNtK4WIA9xJE4AulK4HPS0z?= =?Windows-1252?Q?exNpt1mpgOTcgyudxkrqWtvGv/2iDLAABUAjAq2yE/pNbMUguheaeYGW?= =?Windows-1252?Q?59par7Me7/9OGmD/AqwWYCVpJ0N2KS9//wZctjS/lDXL/POv/hMYLJJq?= =?Windows-1252?Q?LO2pa9mnljMuue5HQ2sU3GzuXU6Kghpgqt80xw+SlylyVJSQUojiTwTi?= =?Windows-1252?Q?2HdUZ18AjYLNZ3fkvrShQccL95F8MC21uZQB/S3Fz/Vx/zieeNzRjCSx?= =?Windows-1252?Q?EZ418RkZBTAOg4vjYZOsmOWPInT0aVQ2BHfGTaYOixRLBlQ+ih7+yJHa?= =?Windows-1252?Q?By6Ffk4OMNYHg4roJug3AdftcQ3WaJhTZ/vnYJRpEatwDfuXghT+M/JB?= =?Windows-1252?Q?GXnmR9KclsPDXagDv0ZSUSWOpI0VLeo/LnqyLrvsnItT3Aw+B3p907l7?= =?Windows-1252?Q?5goGJpH+iqyaIYB7PebH32wRugqqhaVVZS1aW9k1gs5nayRfiVWvh8tm?= =?Windows-1252?Q?TQpatHz/WsjOQTuubzdc6Qr2IaAFjj7tq0/QZgWMWVtmhOipFBHX3tRV?= =?Windows-1252?Q?zxPlYHK/q31As5FsupE7HSa2vtZKghui22cCNX65jZVzL+Io80vZmAZn?= =?Windows-1252?Q?QaSbYV/7Btm86rO8wDTmZ3pl+MfNOGLjEjFic+UfjBMW5Cs/Z+mPXpRx?= =?Windows-1252?Q?t7Tw3UQX3ojD0kIALxJnhE4jdkw4KOC4Yvt49hgUohodHP+WEzQmmXaD?= =?Windows-1252?Q?v3p//GGhfBsmSPOjSyzmY5xJ7V2VRxUU7RdZr0VRnOxD4mC9GBl0iVeY?= =?Windows-1252?Q?tsG6JUKkSAqDcFGl+Dz/B6hEIm4W1ItxuNeHbHwdtnJoqHvsE3i5IP/P?= =?Windows-1252?Q?BUDF62WPLE4ctETVrslYVIm3kVYTOBAMNarEkoPxGfFOy1qYYi/jv72N?= =?Windows-1252?Q?EmwiHTcYgvAYvJcGnRew9yIYKeGY0OMWTITlttVFbn3e4Lw9L1jCcsAc?= =?Windows-1252?Q?iclw31xjwlvaGomd5pk2zytBc9mh5ebq2wIBGl2HmYY1IEcPIzfhoTcN?= =?Windows-1252?Q?B8azegDNdo5gOTgjt4Bl/2+XGol3230Lg=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;CY4PR15MB1192;6:xK+BVSxigvmK4dr/bEyQFFTV1TjinK02MN2do66937fV9dQDp353wsQNMJULtr/vEAMnBZpUM96ksh4pFHkigLjay3BTlC1YFZ7kKw6lVr+nSKLjlXckg5nnhvf3WvLm4hFQzJONQzF+YNOf4gUQKhTOuGS43g5DjYlY3i7dgosui73y8ppWXJmMlS3v/wLPzYG7hC3TEiSINW4ZX5DIf6f5ffC6zs0slbG4sZrovvE1ErYiJNQmL70ccmF3pnHS6wx3sFS+a8kNKtZfYAsMTEf/Cu1YaQ7uJMtb/FvlRy4NktBUb9z/++8uLQZgITtL;5:+Q+6QtuDTGXyW5MUooN1KhPgdLdzvB0g6MByPmn9IpVn7ooquqQF5RsGMUt6T1NwKatpTNzisNs6kUB6PLPkAwfDm7b7dkJyip2+LW9BFlxKyg3YIMv9ncGWqLsb5ie48y9WEn2zhve1+B225D28kA==;24:sJwOUhkPVs3YER/UsDmaiRjDJU9TlCoY09X4uo0F+WH+DfgAhHCIn5JejZZ63A+mjsSezlfbwAmTc/o+xFY7J2k2wGL/eTXDA1pPor84p54= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CY4PR15MB1192;7:E77ImrsvVAxcwmoq09fmIOIADmIiB82UOv8aQBEucEhTjhi08Asj7hNOsYf0BXTDO0BH7trmBdq9DPLq2ClEWlTWLkMwLcKPV4nuIycC9p0njye1i1VFmEilp8hzXrSxVVc/NTtFUAibeKC8t4ez7uoPKvOzdCsUGVW1Mp9GImtkfz45xAGWdVOaIX1TXEuIqXZtMI8UyMqZVc90M9ahcxyvpzqAU6P84sftVkdJoW7zkOaf2nbfqkKrl6dEDknAmgz6Htc9myg9h61ZUBYaYmojuTYoT8aZ1oBfDfemE6VeCYPqlwxjptdgK9xt4JdmDC3/EY3jlC6WRdbWZ4nUbDeKSroL+6I/L58IO2u9Ry8=;20:0HKDUGl7YDH1Uipvu3nVDDLCNcB0KLL4E7p8EvWFXR7GEt2RCTiLfei43au5ZpKmCRznMabVz2VoG59yrwXmZhf8O2efr3ZRao5SbPZbK6AuCalgCrcb9tOgnfudt9Xo4HW3DrpUE4xDyd/2mlZwekcpDU4PXOVfIc48hk189l8= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2016 15:02:14.3113 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR15MB1192 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-11-02_03:,, signatures=0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 11/02/2016 08:59 AM, Christoph Hellwig wrote: > On Tue, Nov 01, 2016 at 03:08:48PM -0600, Jens Axboe wrote: >> For blk-mq, ->nr_requests does track queue depth, at least at init >> time. But for the older queue paths, it's simply a soft setting. >> On top of that, it's generally larger than the hardware setting >> on purpose, to allow backup of requests for merging. >> >> Fill a hole in struct request with a 'queue_depth' member, that > > That would be struct request_queue.. Good catch, will fix. >> /** >> + * blk_set_queue_depth - tell the block layer about the device queue depth >> + * @q: the request queue for the device >> + * @depth: queue depth >> + * >> + */ >> +void blk_set_queue_depth(struct request_queue *q, unsigned int depth) >> +{ >> + q->queue_depth = depth; >> +} >> +EXPORT_SYMBOL(blk_set_queue_depth); > > Do we really need this wrapper? Not necessarily, just seems like a nicer API than manually setting the field. Not a big deal to me, though. >> +++ b/drivers/scsi/scsi.c >> @@ -621,6 +621,9 @@ int scsi_change_queue_depth(struct scsi_device *sdev, int depth) >> wmb(); >> } >> >> + if (sdev->request_queue) >> + blk_set_queue_depth(sdev->request_queue, depth); >> + >> return sdev->queue_depth; > > Can we kill the scsi_device queue_depth member and just always use > the request_queue one? Yes. I'd prefer that we do that through the SCSI tree, once this is in though. -- Jens Axboe