From patchwork Tue Oct 18 21:49:30 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bart Van Assche X-Patchwork-Id: 9383109 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 98275600CA for ; Tue, 18 Oct 2016 21:49:40 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8E7F629769 for ; Tue, 18 Oct 2016 21:49:40 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 8272D297E9; Tue, 18 Oct 2016 21:49:40 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id AB5FE29769 for ; Tue, 18 Oct 2016 21:49:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755467AbcJRVti (ORCPT ); Tue, 18 Oct 2016 17:49:38 -0400 Received: from mail-by2nam03on0062.outbound.protection.outlook.com ([104.47.42.62]:18438 "EHLO NAM03-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754138AbcJRVtg (ORCPT ); Tue, 18 Oct 2016 17:49:36 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sandiskcorp.onmicrosoft.com; s=selector1-sandisk-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=gg+UC4GnhsQTTFyzzzk+KTVbCLy4eGLHk6biOgNhxC8=; b=ArW4F5kZhoDREJw9P3fNFR55rsuC2JV+Av4Hjvbb8d+5tc+7JCVIqWhbKNLJcFXKeikmlMO3zvK5Ua9drgCMcEtaQKK0uFIfZNNjzVb3u9hqR/4eC626NTy2Qt/eQWGdGwa3D3/OeSTNmAMMZJv+Y0kaY7VikuY8ouU+uhp1OFY= Received: from MWHPR02CA0018.namprd02.prod.outlook.com (10.168.209.156) by CY1PR0201MB1913.namprd02.prod.outlook.com (10.163.56.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.659.11; Tue, 18 Oct 2016 21:49:34 +0000 Received: from BN1BFFO11FD036.protection.gbl (2a01:111:f400:7c10::1:158) by MWHPR02CA0018.outlook.office365.com (2603:10b6:300:4b::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.659.11 via Frontend Transport; Tue, 18 Oct 2016 21:49:33 +0000 Authentication-Results: spf=pass (sender IP is 63.163.107.225) smtp.mailfrom=sandisk.com; vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=bestguesspass action=none header.from=sandisk.com; Received-SPF: Pass (protection.outlook.com: domain of sandisk.com designates 63.163.107.225 as permitted sender) receiver=protection.outlook.com; client-ip=63.163.107.225; helo=milsmgep14.sandisk.com; Received: from milsmgep14.sandisk.com (63.163.107.225) by BN1BFFO11FD036.mail.protection.outlook.com (10.58.144.99) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.669.7 via Frontend Transport; Tue, 18 Oct 2016 21:49:32 +0000 Received: from MILHUBIP03.sdcorp.global.sandisk.com (Unknown_Domain [10.201.67.162]) (using TLS with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by (Symantec Messaging Gateway) with SMTP id 43.FD.61581.FA696085; Tue, 18 Oct 2016 14:39:59 -0700 (PDT) Received: from milsmgip11.sandisk.com (10.177.8.100) by MILHUBIP03.sdcorp.global.sandisk.com (10.177.9.96) with Microsoft SMTP Server id 14.3.319.2; Tue, 18 Oct 2016 14:49:30 -0700 X-AuditID: 0ac94371-5f3ff7000000f08d-88-580696af8c2b Received: from exp-402881.sandisk.com ( [10.177.9.6]) by (Symantec Messaging Gateway) with SMTP id 92.D9.02564.AE896085; Tue, 18 Oct 2016 14:49:30 -0700 (PDT) Subject: [PATCH v3 03/11] blk-mq: Introduce blk_mq_queue_stopped() To: Jens Axboe References: CC: Christoph Hellwig , James Bottomley , "Martin K. Petersen" , Mike Snitzer , Doug Ledford , Keith Busch , Ming Lin , Laurence Oberman , "linux-block@vger.kernel.org" , "linux-scsi@vger.kernel.org" , "linux-rdma@vger.kernel.org" , "linux-nvme@lists.infradead.org" From: Bart Van Assche Message-ID: Date: Tue, 18 Oct 2016 14:49:30 -0700 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: X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrPIsWRmVeSWpSXmKPExsXCddJ5ke76aWwRBnN3mVr833OMzeLl+Q+s FitXH2WyWDUxz+Le0S9MFntvaVvMX/aU3eLZoV4Wi+7rO9gszn94xWSx/Pg/Jov23g5mi7aN XxkdeD0mNr9j91i85yWTx4NDm1k8Ni+p99h9s4HN4+PTWywe7/ddZfN4+3Inq8fnTXIBnFFc NimpOZllqUX6dglcGY8PfGApWCdQsf3CP5YGxg+8XYycHBICJhJ/ZrWwdDFycQgJLGWSWL6v GcrZwSjR1n+ZBaZq+akvbBCJxYwS7b/eMIMkhAWcJBbfXcgKYosIyEp83/2aDcQWErCTeLt+ J9gkZoG9LBIPL98CK2ITMJL49n4m2FRekKLTJ8EGsQioStzYNgssLioQIbHp6xyoGkGJkzOf ANkcHJwC9hJXD4SDmMwCmhLrd+mDVDALyEtsfzuHGeLOHjaJd61yECeoS5xcMp9pAqPwLCSD ZiF0z0LSvYCReRWjWG5mTnFuemqBoYlecWJeSmZxtl5yfu4mRkg0Fu5gfH3b+xCjAAejEg/v Bwu2CCHWxLLiytxDjBIczEoivDG9QCHelMTKqtSi/Pii0pzU4kOM0hwsSuK8F6M/hgkJpCeW pGanphakFsFkmTg4pRoYDaYo/Z618t72daeTXrvXLM6MX1LLkzzRXFibu1E1lrlc58rPuElJ 1dVeTyLtr98JXrTJWXf1eZ4p075esLzZeC7xH2uB4NQKgy6Bd/ONr+8zq9jAvk5oU/JS/50v 5rzeHR//pTKXNdknWrphquSuLifXv/KCZ/qmiJwp39ntsuXUqZu/tRYsVWIpzkg01GIuKk4E AFee4Q3CAgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrOLMWRmVeSWpSXmKPExsXCtZGTTffVDLYIg7/3bSz+7znGZvHy/AdW i5WrjzJZrJqYZ3Hv6Bcmi723tC3mL3vKbvHsUC+LRff1HWwW5z+8YrJYfvwfk0V7bwezRdvG r4wOvB4Tm9+xeyze85LJ48GhzSwem5fUe+y+2cDm8fHpLRaP9/uusnm8fbmT1ePzJrkAzigu m5TUnMyy1CJ9uwSujMcHPrAUrBOo2H7hH0sD4wfeLkZODgkBE4nlp76wdTFycQgJLGSU2L/h LjNIQljASWLx3YWsILaIgKzE992v2UBsIQE7ibfrd7KANDAL7GWR6Lh9CqyBTcBI4tv7mSwg Ni9I0emTYHEWAVWJG9tmgcVFBSIkNn2dA1UjKHFy5hMgm4ODU8Be4uqBcJAws4C6xJ95l5gh bHmJ7W/nME9g5JuFpGMWkrJZSMoWMDKvYhTLzcwpzk3PLDA01CtOzEvJLM7WS87P3cQIiYrI HYxPJ5ofYmTi4JRqYHR75Cdnzzr5iF7wWf5LXEqxa91sWU5u6/eW+iqufPpe7I8v7VFruQxz jzeIH2s4xvF5ywPLxe7fdI/fEs+zig66w7b+92abJ8smJCz88LpIZc62YFdJgS9Hs1zYapXF P2c8dc/RkzjJceTZu677/o5+nz8/MGxZ3nxexVHLrbDtR6U/f+4zLyWW4oxEQy3mouJEAN3t PbM6AgAA X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:63.163.107.225; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(7916002)(2980300002)(438002)(189002)(199003)(77096005)(54356999)(50466002)(68736007)(189998001)(92566002)(31696002)(50986999)(6916009)(230700001)(2906002)(356003)(106466001)(4326007)(87936001)(7846002)(65826007)(5660300001)(2950100002)(76176999)(305945005)(81166006)(65956001)(64126003)(36756003)(53416004)(11100500001)(7416002)(626004)(23676002)(47776003)(65806001)(8676002)(4001350100001)(110136003)(86362001)(83506001)(229853001)(586003)(19580395003)(33646002)(81156014)(8936002)(97736004)(2270400002)(69596002)(31686004)(19580405001); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR0201MB1913; H:milsmgep14.sandisk.com; FPR:; SPF:Pass; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD036; 1:9rb/WJT01z47gqec/apF/4AiZp+A5aD12O0rfuDIIlGASvEXJ5yGuunCf0Pr2eeb1+simW/eqTvqaFTc3Ie0OY2tt9umT09Bh3x1zRMr5yEvIDjSm9uWHYtdUdHp1lTGCQDDs8Ptxr6sJcM2rgXL93LrSVN5J86GMpMnzPCUiYDGhAFqOiTG9oD+NvvcAbJSdlboRHS6qTuyj2M7hSGhVqIWMyh3TwKL46qwCWey1ImATMedYeCvZSCQ8JxlRzhVhiZ/W6p9BbcpgFY+2QnbK8Ta2mFr3Z0su4/lMqHgDXSg9S2cOdLxPr8cdNXDhdYgNYzRvcqbGvXa7cvNBueaVCvSllKHTck1SA65kaT+2IAoLxv6TEEjGF/UwBbTlIg0YM2SK6WJGs5uCzGzYhgqgWIg9oQGnEVsqQmzcVmWpuKg2pkxpcJi3beaeJqgMXKRNVz2Q22oszuPRuEoye1nsEF+XHQqbjzL+bjRoD25QsBk1zN2ZbegJq0M3kzzm6qPp7O9nVR2g0lQ7RrbbnyIp+89DoVVQn55RDqbYORI1Y0YjSaaSo5OLj/ZZafu6vpO X-MS-Office365-Filtering-Correlation-Id: 9d1beb13-fd34-45ba-1fd3-08d3f7a0a5ad X-Microsoft-Exchange-Diagnostics: 1; CY1PR0201MB1913; 2:eSsB4qqfeqBu26JGuDvMlcPoUD/Z5GQsitzQ8DpYxyWJkTOKU5/eAFkHcqOyHBNsEId0ycTXQUA4be1RW+Q13ZoipEUI+ZUIlV5D2HsPdAgZDID9OyXb3W7W/ZB1xuVLzTCtghnoqihmtrZdnvl3/06JQRsaII1IOSZz2fy4PBBFpm3TJpgcT4A8ew+3z+XFm6rk/ar/fVHlovbr+dNu3Q==; 3:4ypqpwsG6apOwPnjNUR6eBD1qmGxhei5gug8aIj3Eb1W//S49JITf4qe7RpxYYVQ6RQ1E/hnzhl+uYBnOBhFZCxf9zfTxILevlSYzk9AASzT7khQCbwdLrP9LUI4wogtR8wC74QXDZOUwK750SD9s7D+Ik3xp3wvYuOa3eDXj4F/G3l94KuQV08JsklxIPk7MMwmDK9RyFusd+KejphyPiJmdwK6K1fpUaAhDq/t+p8avCCl/2s1Waa/qI1JpUf1GAjbGDXbWg0ggZgmCFgKqe7C1vQXqoRrsh1SPPLQ15w= X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(8251501002); SRVR:CY1PR0201MB1913; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0201MB1913; 25:DrWtN7RM7FiBW2W8e/321lP4NhShXCChS6fNoI0wNrsLr+QiCzluHVEzdM+5gV9o9qFNbNisA5IBSXsAdeZ33AD2kZnZUzSutsvZhx1ZET9a8rU2Ve5wXL3kr1MfILPdne6LiqOTOmxVqKMceiTsDR5lVPE0GORDYuFjQw1Ecn1SnWNdK5QvH1vwawNtshPOak/n2gbrSjrJmw4MbIcAMZfV1+c1ENHYqpisWfeP3+IFw7dh24lJv+3QkR1rPZU80CxACshmvmPI13KkvJvmYxZVgHFlUWen+mok6ayWjVtSC+hN2x3t4YToTqL2uiimykQsTMaaTa7Zch8Llfw+Z5+whU0zg0Q0NMp3ZThjauYTQcInK40oWdUxF0p8CyMBQERyFzwr9F9LBhVc8acYkZSrJy5wMzyUs6AARBSXrliMXo+m73D/SbfssZ7gA7TFINJqTy03stQFPEz8XwuM8yTtQ2xHn4QTNbsn8YX0Hi4dXeB9fmJvD1g0fAPq+OVROhOmP+EIB8vKsC/Juu84xnY9aRAocb1ZVwNWa17w+DspyIhuQnIa41HYKQgGCSsh09ZsQURTISvy3MUCXZZUZFHXO9qc6dFku4vqVsVDfn42d+e5W9t6ZYA3y7DArxSTc3n1yTQ5fRlURQh0DwXOAwdWJpiP6aaF1im5TyjIXMhhfsoqfBrsEOe3BtOVwlgMFaZyMUIIsT0iYdb5B+y+f0Zp/Olfkf84M8CvAIpxV1NEWlnuNr5Jq8nBxFMVpOshoEnANIEQ0m+iCRqDZ6usLZ/5KCnDvQnAKv7IXSc4mWg= X-Microsoft-Exchange-Diagnostics: 1; CY1PR0201MB1913; 31:MFgKER574xk0yv7mwurliaTpJUHrmeT3CXwTg6gymXr6rSso6KI/l0OrAbdryh29Osp21GMOmkNI1Gr2LMD8dzIhXx8vh/t2uxyOB/0ht2NrZPn0BpqxQQUekcnL0+o7RbqYLTO4/bbic3BZOe/9Il+r1n66jQjFSvk2AoCaqptTZNQqOwgBBuchcBww6llAAM36196YPdg4Nx6kFBiOYxtOGqk8yf0WqNqgbyCjbZDlNj+sJxEYnu6fyh4sOhSB; 20:M6FQiIeVYNaBwfx38iixMPdqhUOchLjXpw5E5KsvHsLnicJZx9PUKawCmBe2fq/mu58sz1QbeAfWuFa/nA2PF+3YLEuVV26AxUyrDWbHgd63PsVwtvnlbDW96Y6UbKIZ+LN88iNm1J2X2DI8KbDGNtXxqkWG8wNC2cu9EOUAUxNpCxSjjaK7s9LBA+f7/gskezBm0Jx4XCHZR5IGMnBqqLicJC6sR0QeqtBKje00ZYC1lFKB2aOVLoR6VcLIyy8OREEqvqTY4T1rRTgkGnH6b+BK2DUmS3MbQWePagTbTYY3k4KxsSb/Fa4zb4ycheoVTT/lv7bDsrGuuqtqaz9FvePE5unn2UYUooCUToA08Jd1dcktIb1HPHdRgXQazEDEYtFVKvcxBtgUfwSutpF3Q97JY3uLE9O2Q3IPS+KE+FMnf0k9IRy6EnAJLn2GPUSlUJck8m444jiBzsBK6THVBM2OBz5qTp9DOKQMg24+JMUNQuzgUyUvHoxkm6ctpg/U X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(42932892334569); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040176)(601004)(2401047)(8121501046)(5005006)(13016025)(13018025)(3002001)(10201501046)(6055026); SRVR:CY1PR0201MB1913; BCL:0; PCL:0; RULEID:; SRVR:CY1PR0201MB1913; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0201MB1913; 4:zqnYU0Wo/oOjhxe6rdmVi3uoKeVSDHowaJgPEPuGLNOpzGqKNTr0Q/W03b18kJ3x6h9Jn/S01a11yKl+LUSbLmSs+2BjSR1pO2pTMWfhXyhKE2kCMORzq8Cxd46N15ZOlxCLjce+jhNkHf+4CwlTfIuKjW1it7Dky/AJ5hccojR7KXtVWPYENIbGBZToTE7lAPtbGNXkMNEZj+Faj4x+T8nSd2BF3tRs+AdDoFjg+FaW5JUTBLOt63IGZIaP1gskZlIgGUvYck5Bo3HScVR1XluaYcbSwikkVBdqxFwXV745qV6UMOlo68SXMZ1NEWSuRWsnI0mwSP1XRx82QjYDVHTfvmLh6+GgdsUeuyg/HlSBcSkJyc32X2BkWjyjOQ5IcWdZYDosv4jKpVlkQPCkyyF71pxxYy+dl4B5yo/LU+sFwWyF9CsctmM8noWFeBzGf7VhXGLcpaxpgTs/48jMFToeizhVQvK+F46lummkBhXHOnzYB5rnNTe0KB4HEtIr X-Forefront-PRVS: 00997889E7 X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTFQUjAyMDFNQjE5MTM7MjM6dk5ZdlZHdkliNkQxdnNFS0Z1T1hFZktB?= =?utf-8?B?UXB3M3kwamd6U2NMckJhakJvYkc3MysrWHRma0JCY3ZyME5YL0lVdzB5VFNC?= =?utf-8?B?d2dHeG5VVzNEVll3a3FpZlkwUXE5Z0VyRDVBTEJMcFUyRUhzcVFpdkk0MWFG?= =?utf-8?B?SXdnQXZqMGF3c1JZcjNHVlBoc0Z1WU5jdXIxSUNKVmQ1L2dOL3hvd3Nob1hr?= =?utf-8?B?eE84dDlTUHFDQyt0aW1iKzlTdklRZGUrNUZvUnBYVXIwOGJvZkRNRDQzbW9Q?= =?utf-8?B?UUJSbURqTlh3WktpcFlweFA4NlZnM2ZBc09tSUhXb3gxNk5aczA1cVQzWlpv?= =?utf-8?B?TmFFNklZYjQ1TFgvR0h4YkorL1paQ1Z6c0VHMkM3OEZpRU53VFNQTHBEdHVp?= =?utf-8?B?OENLV2FRU3lnU1dOY3dnd0JyY2lyaENWT1ZnQ3pIOWUzcUNGU0VUektsbm5O?= =?utf-8?B?NEpmZzVSU2U0dXp3SjYxcmUvcTUzS2ZBQzNqVHFucTZUMU9DS0w2akltSEZE?= =?utf-8?B?WlhncWR3SDBkVTRZMHRDM0JLSkZncVk4dHNCQmFtaVF0NGR5NUZTVlIzTlQy?= =?utf-8?B?d1ljL1pleTZwb05RVmEyWW9lT2lpK21jU0hkMVE0UlhpellIR2swNzNNZmFD?= =?utf-8?B?Mis2MFR6VnZhU2tlb2NwQUNSa3NJeitEMG1HYXZzU3FmU0krS1ZnWUhUWWhq?= =?utf-8?B?RG1lcWpieThJRVVvbUpGYUlydDNaU0lOMms2alR4TWFETjNzemxuaWxxTE5U?= =?utf-8?B?NUljdWZzaFVqd1dRdmFTLytZNHRaVTYrUTByaG1keEVYT0RJTFM2Mmx2dU9Z?= =?utf-8?B?ZUFQTGhuRmtjZkNpb2pOMW02L3B4STFyOThRR1k4MW1ka1VUMzY0U0R2bDE3?= =?utf-8?B?MEQ4YmMwQmcvM3hBU01vd2dTbG93eC9VVnhWVURkQUlKMmhJaGJFblZDREZY?= =?utf-8?B?THc0MDZmUWFKY2RZcGRlTzE5RzFaVVF3Slh5bTNseFF3dlZNM2NwRUJhalpP?= =?utf-8?B?TVZNeUZGK0htaGFsRWtOeVRwYkpjVTJSemVORnpwVGdHWG1YMmV3ZkZ0OWNV?= =?utf-8?B?ejZRbmZOQzNvc3NuM2pzeXdPelJSVE1OOVlkNmlaaGU4OGZIanJtbUZ6RUlX?= =?utf-8?B?TTlEcEY2bmp4aWlUSlVlVE1PYm1KRzQzcThQaERBU1VuMkVwVTFaTXhndmlW?= =?utf-8?B?V1VicEcwNncrcTNtSk9WcFo4cy94UlpzV1ZCdUVCbTM2bHJpVnNOSTdJc2ty?= =?utf-8?B?NVZnSVkxMS9UYk1sOVBraHJFNEo2ZExCWVhJLy9ZNlVvcTVKaTlwRitZUWtU?= =?utf-8?B?aXEreDRLS05INjF2eDhYNkRodVVHY1kzT3RSQm1hd25ITUpMZE1RRy9Ga3h3?= =?utf-8?B?eisvY3BHR0lMbC9tSm0vTnMrUHJPZEFyWTBZUjRVN3pGTk5LakdxbC9CSW9F?= =?utf-8?B?Z0FSYmdhMG9TZDllbitSK0JCaHVjeEVQaUY3OGtBVzdmWW5aNk9IcERzMnZ0?= =?utf-8?B?aWlIV1dub0tIdlh4eUdlSElleitxbmFETTFlclpoTHJMc1BUemlIZkd2bGhw?= =?utf-8?B?V2VUWitJb29zYmIvVUxOcDhYa1FuaHNsNWlieDRDRHZlZDlKblU0NC9nVTR1?= =?utf-8?B?OGdTWHlxMitOdWNBRUE0RlgzSGpmQ3BQZ3lhaVBPV1hvR083bWFiakU3bjNr?= =?utf-8?B?SHpkczZaSWs3TnUzMUdOcEIyZkpmWTMzakVvbk9ocU1VdHRUY1Mzem1EWUk5?= =?utf-8?B?Y2xPS2hacTNySDkzMXJjU1dRPT0=?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR0201MB1913; 6:Ll9F/GvmjV0Mg2zZ1eZ/KwbfGQr5K4MGA3zoEzAPoth+acQZQDvO1Ml2k1oG8ncyXZT5thDiurqq7EjmU9SHqtzlRTGAs9QpeBDBUzLcMbcoSGYUaDDBJwJii+5r6JdylO6HpFSHrep7HSv1UghPslAEv3Gyfu9PzgtK/DIDLh2ut4NBUYCVd0Dr2pXUJYWEpV3ycaKkUj9KP9lxPbeo77MgeFb2Z2LQwhqVLnlHzneUywNqvhROz341EcZhibuMM3+xJfVdE3SmU7KG0M3honi0ghfLe97G9vUW8dHqEUN0QCxfTK/Egv4pvyK92KAdEMGFFAM1o13Ob5WTjT7xKkwFKSpdByLc5j5HaBg2+hI=; 5:fJecCsefaD1csvpmWkdnsO4Z6k24sgtUQrgVJe2Jwd7LXkIa+GT1s+7wX5TznZD9muRJ0MnLWgLwySzWn14r6x9BoKWMta3UDSS7hw+dT+ba3ABuEEyUB1LaGtKxUCwbuCwlpOeGWtzChtsPbkiQbw==; 24:ucyxosOYh9ak9dQXxzTNDhrKGwQ6r1d61vBWMyognTSqWd2cGxcD0Eh4+4mNBHOhhYfroFS4UKfDDj9PJV8Wa7DseUnQAP3vnA3Ho5BMzhc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY1PR0201MB1913; 7:mx1OVh+Y7+y9ZI+XqB+EtKP0m6GhflWZjR5NwEp9ZEJ9uL/8EBrCAhOg2n7ApeUUUdZ3LViqGvFltKhqPT3qXz1+pe4y8t9TrLA2H9VaJckJX93B6nufsEJqagfdbgJO1v0F0SjgxKsABpuMi400/4RHaa51fFamOfc1z7bKLIK84ZVmMttTx7ng+vLCiz1n0ksS+Ddqu/th4XjZ9OOC+JVaSB3S3K0lobu/KsQXWUU+28yGWEUnR6gLpwdeRjGl4stKiZXNqxf5B7oewu0OMP9/zzx16AVmgrEv/ozcpZEgA/iSgxwYRtDviZxjYfbl6OMsViXLf7qesSNvjJJiJ2qQyGJeGp8nhZiOWzpeRCk=; 20:1Er9FV0nELhBBWCiYLIoCf1f+6NwTT3QoaeeZnXJPSj1yciu59iTWpQqPEKXHPRw0CEoaTqBR6MTwwhdRRmp8I7tKKoijpmkeXdz2rQT996AMilQwA03OxVxG/Pgt7TDINwebMtQIitJi4MSCzBr//4qmXxkkAr2rs0LglNWV3aU6QbHt5eS6i7kJApzTlXBSpNLNsxSkk+iMO9Drw6S54mn1AXMNBUIoLrMRwIu1khrceDF2cKCV7bLD5grZZun X-OriginatorOrg: sandisk.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Oct 2016 21:49:32.3618 (UTC) X-MS-Exchange-CrossTenant-Id: fcd9ea9c-ae8c-460c-ab3c-3db42d7ac64d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=fcd9ea9c-ae8c-460c-ab3c-3db42d7ac64d; Ip=[63.163.107.225]; Helo=[milsmgep14.sandisk.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR0201MB1913 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP The function blk_queue_stopped() allows to test whether or not a traditional request queue has been stopped. Introduce a helper function that allows block drivers to query easily whether or not one or more hardware contexts of a blk-mq queue have been stopped. Signed-off-by: Bart Van Assche Reviewed-by: Hannes Reinecke Reviewed-by: Johannes Thumshirn Reviewed-by: Sagi Grimberg Reviewed-by: Christoph Hellwig Reviewed-by: Christoph Hellwig --- block/blk-mq.c | 20 ++++++++++++++++++++ include/linux/blk-mq.h | 1 + 2 files changed, 21 insertions(+) diff --git a/block/blk-mq.c b/block/blk-mq.c index b52b3a6..4643fa8 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -946,6 +946,26 @@ void blk_mq_run_hw_queues(struct request_queue *q, bool async) } EXPORT_SYMBOL(blk_mq_run_hw_queues); +/** + * blk_mq_queue_stopped() - check whether one or more hctxs have been stopped + * @q: request queue. + * + * The caller is responsible for serializing this function against + * blk_mq_{start,stop}_hw_queue(). + */ +bool blk_mq_queue_stopped(struct request_queue *q) +{ + struct blk_mq_hw_ctx *hctx; + int i; + + queue_for_each_hw_ctx(q, hctx, i) + if (blk_mq_hctx_stopped(hctx)) + return true; + + return false; +} +EXPORT_SYMBOL(blk_mq_queue_stopped); + void blk_mq_stop_hw_queue(struct blk_mq_hw_ctx *hctx) { cancel_work(&hctx->run_work); diff --git a/include/linux/blk-mq.h b/include/linux/blk-mq.h index bb000c3..523376a 100644 --- a/include/linux/blk-mq.h +++ b/include/linux/blk-mq.h @@ -223,6 +223,7 @@ void blk_mq_delay_kick_requeue_list(struct request_queue *q, unsigned long msecs void blk_mq_abort_requeue_list(struct request_queue *q); void blk_mq_complete_request(struct request *rq, int error); +bool blk_mq_queue_stopped(struct request_queue *q); void blk_mq_stop_hw_queue(struct blk_mq_hw_ctx *hctx); void blk_mq_start_hw_queue(struct blk_mq_hw_ctx *hctx); void blk_mq_stop_hw_queues(struct request_queue *q);