From patchwork Wed Mar 29 20:20:54 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bart Van Assche X-Patchwork-Id: 9652485 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 D7A8560113 for ; Wed, 29 Mar 2017 20:22:22 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C656D205AD for ; Wed, 29 Mar 2017 20:22:22 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id BADEC26E39; Wed, 29 Mar 2017 20:22:22 +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.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_HI 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 24F44205AD for ; Wed, 29 Mar 2017 20:22:22 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932825AbdC2UVM (ORCPT ); Wed, 29 Mar 2017 16:21:12 -0400 Received: from esa3.hgst.iphmx.com ([216.71.153.141]:64516 "EHLO esa3.hgst.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932716AbdC2UVC (ORCPT ); Wed, 29 Mar 2017 16:21:02 -0400 X-IronPort-AV: E=Sophos;i="5.36,243,1486396800"; d="scan'208";a="6816808" Received: from mail-cys01nam02lp0050.outbound.protection.outlook.com (HELO NAM02-CY1-obe.outbound.protection.outlook.com) ([207.46.163.50]) by ob1.hgst.iphmx.com with ESMTP; 30 Mar 2017 04:21:00 +0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sharedspace.onmicrosoft.com; s=selector1-sharedspace-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=5JqZpJKcNiSGPTmcOdJNxnSt+Hud+rOOWsq2ksKPCY4=; b=SfoeH1c4C6fbCmikVt5v1BpcBz137VUQlLS/bNAiYMVWHGX7i9tvzM42hJbjIQd1K01QTGXJSxTBy/LnESRGRMOEika9f/WEaPB4w8FusVofHJXplHTgRkiVvtLZObMAeMGwAcZF/uA8n6XaJMOG/MHmBT4PXR03ryLVLrhuooY= Received: from MWHPR04CA0027.namprd04.prod.outlook.com (10.172.163.13) by BY2PR04MB111.namprd04.prod.outlook.com (10.242.37.147) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1005.10; Wed, 29 Mar 2017 20:20:58 +0000 Received: from SN1NAM04FT008.eop-NAM04.prod.protection.outlook.com (2a01:111:f400:7e4c::205) by MWHPR04CA0027.outlook.office365.com (2603:10b6:300:ee::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1005.10 via Frontend Transport; Wed, 29 Mar 2017 20:20:58 +0000 Authentication-Results: spf=pass (sender IP is 74.221.232.55) smtp.mailfrom=sandisk.com; fb.com; dkim=none (message not signed) header.d=none;fb.com; dmarc=bestguesspass action=none header.from=sandisk.com; Received-SPF: Pass (protection.outlook.com: domain of sandisk.com designates 74.221.232.55 as permitted sender) receiver=protection.outlook.com; client-ip=74.221.232.55; helo=sacsmgep15.sandisk.com; Received: from sacsmgep15.sandisk.com (74.221.232.55) by SN1NAM04FT008.mail.protection.outlook.com (10.152.88.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.1005.5 via Frontend Transport; Wed, 29 Mar 2017 20:20:57 +0000 X-AuditID: ac1c2134-817ff70000005688-02-58dc1728f6e6 Received: from SACCASIP04.sdcorp.global.sandisk.com (Unknown_Domain [172.28.1.254]) (using TLS with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by (Symantec Messaging Gateway) with SMTP id 38.60.22152.8271CD85; Wed, 29 Mar 2017 13:20:56 -0700 (PDT) Received: from ULS-OP-MBXIP03.sdcorp.global.sandisk.com ([fe80::f9ec:1e1b:1439:62d8]) by SACCASIP04.sdcorp.global.sandisk.com ([::1]) with mapi id 14.03.0319.002; Wed, 29 Mar 2017 13:20:55 -0700 From: Bart Van Assche To: Jens Axboe CC: Omar Sandoval , Hannes Reinecke , "linux-block@vger.kernel.org" Subject: [PATCH] blk-mq: Export queue state through /sys/kernel/debug/block/*/state Thread-Topic: [PATCH] blk-mq: Export queue state through /sys/kernel/debug/block/*/state Thread-Index: AdKoyfc+qJ7hETMDQhCDyda/91agFg== Date: Wed, 29 Mar 2017 20:20:54 +0000 Message-ID: <1D08B61A9CF0974AA09887BE32D889DA12B851@ULS-OP-MBXIP03.sdcorp.global.sandisk.com> Accept-Language: en-US, nl-NL Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.181.8.64] MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrILMWRmVeSWpSXmKPExsWyRobxn66G+J0Ig2+nNS3+7znGZrFn0SQm i723tC0O37vK4sDiMbH5HbvH5tPVHp83yQUwR3HZpKTmZJalFunbJXBl7D9fXPBMvuL6pE6m BsafUl2MnBwSAiYSZxpuM3UxcnEICSxhklh7qY8VwjnGKDHhfj8rSBWbgJHE7Al7WEBsEQFZ ie+7X7OBFDELNDJKrOw6D1YkLBAqsX35bWaIoiiJhg0voBr0JCbuvM8EYrMIqEq8OD6JDcTm FYiVOP1qElgNI9DQxdNbwGqYBcQlbj2ZzwRxnoDEkj3nmSFsUYmXj/8B7eIAsuUlrp+2gyjX kViw+xMbhK0tsWzha2aI8YISJ2c+YZnAKDwLydRZSFpmIWmZhaRlASPLKkax4sTk4tz01AJD U73ixLyUzOJsveT83E2M4IhQNNnB2LHR/RCjAAejEg+vwurbEUKsiWXFlbmHGCU4mJVEeLU+ AYV4UxIrq1KL8uOLSnNSiw8xSnOwKInzLtWeGiEkkJ5YkpqdmlqQWgSTZeLglGpg7HHiWClr 13d1np3qwtu/0xjLaoT+/z7KpPhc/maFx8XzRlf+erac+toQGCT76/H2K5VCfZ2Htk24ffb2 4c92kzwuyzQGummlSVx6d0pW6sKh08rP+mYp+uUzGV8JcjI+MVXQQniVhGS4SWGS+pboxUpn V1WoVF5cpSil5KK/9fj2lS8m75c1UGIpzkg01GIuKk4EAIg0WiGEAgAA X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:74.221.232.55; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(39410400002)(39400400002)(39860400002)(39840400002)(39850400002)(39450400003)(2980300002)(438002)(199003)(189002)(9170700003)(97756001)(356003)(106466001)(305945005)(7736002)(2920100001)(2930100002)(2900100001)(55846006)(81166006)(189998001)(8676002)(8936002)(8746002)(46406003)(6916009)(23726003)(47776003)(50466002)(6116002)(3846002)(5660300001)(102836003)(7696004)(50986999)(54356999)(5250100002)(38730400002)(4326008)(33656002)(53936002)(2906002)(54906002)(55016002)(86362001); DIR:OUT; SFP:1102; SCL:1; SRVR:BY2PR04MB111; H:sacsmgep15.sandisk.com; FPR:; SPF:Pass; MLV:sfv; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; SN1NAM04FT008; 1:Gf7JZVjxzQe8kV24fQMl5mP7Sjh7dHRqjsZg3qawHoVI6++VKZV19hxoPDziU1TgijhnYcpUWwpM/rfGinmTE/pIfMh7qP6IR0I/yDT5dpqMuXvBu4eVLPBxZF72L7g58DOfN/P7lc9nylqUU0PfBLf0dK15btko4XCJCA7ZgoUnwWPH/EzAo0SHIWbWcJ7grRibJr/YrT649Ha1bBJ4zOcqvb6Dc7T4tqgZlrUiQP10U6wLCoEAa7nNZrCsUwTDIQ1HqFdCDV6B7MKU7upvzDX3urXWGY/ZKevxNmE3+rkwzjXE2Inm7QzjmhLcWEN55LGIDKvtK7FMM+9TQAyalLwjeHzdHADVXx5qf0R1iTFSiyY8J0t32mWE51kJgx/lIj//1EbaZmEhPRtaf+A0494FIJGxHva32pOBzTmTffJBNSIy7PxU5Tw1Qs6iYSUlSOmuR7gkbmVqCnCe5m0T39seG/6zG+3vm+0uAEPIDBNUboGLnGH0sqog9aadnyy9yXkTxmXzVNATtxzLJBOneiuKF2VQYmV4gpjY76MY5ec92nKs1qLwaM3ogmZE9Crl X-MS-Office365-Filtering-Correlation-Id: 3a835f67-92b4-47ff-9c34-08d476e11c04 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(8251501002)(2017030254075)(201703131423075)(201703031133081)(201702281549075); SRVR:BY2PR04MB111; X-Microsoft-Exchange-Diagnostics: 1; BY2PR04MB111; 3:RJeZ3/ioSxl2r1q83oTN5gLrGS964BQ/4+HH7l8EkqYmcLR0zrwHJbC/JA2w+nTiQUeupx2rXEsddRJNCXtuCO1SaacEPxbEscS4GGieCC2LN2vNXc/1u35pWLAUtMHBvXZT5DZR0YuQ2xtLh2PKwwN6R2FjogaMSFyOBgagGPbdouHu32wh4E2Hf6PKDpaVhfw1Ln2J7ogprNusAtXm1Gb3VLh6FKuaxH5M/UXMoUUqFbloxB0ZR65TLqb5jQwskr8kbfMM7fVEjsk91KZrlf0TO3l/4hRJumRG/zmlHrkBydAeJiZj773Ky7V5T2vaI5UhHX/MmvNSvJHp3nB0iQv6EPdUubu9MVkE+Kqk7LWxOr0RxPpvrXBjIM8CiYCSnlzirZybN4fH97Benxv1RTFnYMo5uYiUe8dMrXpZ8NOMq3kt3/7sBAgU8WnQ8FeoIphwlgr/jKzFaxJQoV26+KZqg34IWMLskUxBcW09lp2IuKM+8cObMv4hVSa+YURAK4n1yjMUr8YWDS8zbZ9fDg== X-Microsoft-Exchange-Diagnostics: 1; BY2PR04MB111; 25:A9w6ZOnMaqniw6Ch0csvGEyJYLvw5cQwqa2RhPQ8UWh7mQPx1dGF8mxcryo5d0fS7/3zwQO6D+gThkk1mow36iMq3yB3HuNer+4G9tR3ZZ5gaToPWzitz5gNap9CnX36T680Vm/ASI+rPBZfbsrhTEvQsq69eulwRE5LmXwd7wOwyC1TTm6hDXZJEuSa46BMO+Mv9rtOEzt8zOa3OwlXIsp0xs1x1XdW8hsZY+Y6teYptjCkMSLqvdjzlqLewavhkZXIpYDwyIXywu1QaScNGbLzqczTdZ8uTeesaxXErsXFfMIxZA/LaazfLIUfcXigYTz9c4VlqB1mXuuenSUbinswdvw340+5GGEM99nzbQ13NsjXL9koHpFArks1+GwLXYcGAj5UeV6EzBXUx+oryJuAT5PkOOedFDX5giRspR90hsoo+xhweBBNLVUHEIcx/1eTkEFzKbaz4juyKp6bkw==; 31:hXOXVrXFoXktmwrsE3ooy/d6xVzuaYnF1inLCFat3xjxPF1vKNZLibZ2e/Tw/9nNuWWw4J4DtPgAPHWTB1T1S392JuxFtWyXDc6UaGEKXLmXhgsRP7CIrpfrOYcXO6Z+qvXjq7+ID6QJ/L+Mujl4AV8u41UsqgjrQiu3uGmiXfxss0txhBvRbxBfw+SI5BhPWeEnIWq5Lw4Uqfd3BuQi7lSr39WxBGvTkasy9xwiE/IgCykwoMvhl10PjC/plbW+7oo9cpJsZxzZj7AiN87Nbg== WDCIPOUTBOUND: EOP-TRUE X-Microsoft-Exchange-Diagnostics: 1; BY2PR04MB111; 20:ftFBf8WrjdBQdy2rDWeJTQlf9QeKCTlCaZ8+XD2B2zNwC11R0lXTXO6ED04K9f22a7neaIOe74wzfhPMxnxl9bPJ4seuHlhqunneBbND3hPa31Vmba21/WpSYQrzrJ1rW2kBcaSdgR+etlO2Hf9vt9R3O21BC0/ihhX7bm+yBP+Xu5X2adk+QQQnTld8G04ZSTnGawuIETLq9Fu6DWAIeXsUZwiO19mELiDdFM7OVThcAdAxI+sClxYexCOIvYJIexx7AGIidOiikwFo53z0pYALF5WFDRPQXQVSCCEwuuJpjzK5rH5/qwE2oJOgCRVrUSmuFoO21WS7wr+v9dv7oMuO9iIX26kUcV6pyBr6BFhwix5hdXbzY6tGwIe19i87g4hh1CXk19R+DktPK6lTiVqNswWVUHd7nvFy2GKZrLrMWxadS6lpgOGXAtZDxcfZ0/2DFIpu4M3EfIk6hmf4Lo5xmDX4CekC7D5H/clEsuORsNqQr/XBrVk6us7c2zCH X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(67672495146484)(42932892334569); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(601004)(2401047)(13017025)(13015025)(8121501046)(5005006)(13024025)(13018025)(13023025)(10201501046)(3002001)(6055026)(6041248)(20161123555025)(20161123564025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406075)(20161123560025)(20161123558025)(6072148); SRVR:BY2PR04MB111; BCL:0; PCL:0; RULEID:; SRVR:BY2PR04MB111; X-Microsoft-Exchange-Diagnostics: 1; BY2PR04MB111; 4:k/dnEpiXbE+G/sCKzRZBz9Cuj5jSNjLoD6TJh/AjxSUT+YFO0thnZc7YZABMS9EkxsPI2BS+hP99uIjUucGeOGuyECoRGI1BnYkK39yAQPuizO+lqQNML8vyOTWv41UqAqnSkNaEd2rPe0uNDLhU6pn6NbqVTL2w6amim2pVlNhrO+S16AHk5tyhLLDWtVU6MqiQsGqiiWMtSt1VlsDdAE+gBK/je0vaIZxx5dPiB/T1CqaJMk964FMwNDqcpssiu3Lrt5e11iN5ipuorj7DpDe5uSByPPyWFcvuCHPihzQvG8T22DxqpA/Q/UEwD6BgBkudKPrTnbd4ZKWFXSxpnsOM71O18R+y5vbONe32qn8LALfTUAy7L1EV6ZZ6NOsAbniVvxtyV3Ft7SQW41lyL/Ykd74x3wLqdXO56zJbOOpAoPYxsuszWbLtEYh67/hL64+Whjx8PyqGupygCGftVTWq9qkZptLGvMtR1hPNLSJUOERAwsKdC629PUGyJI0FoCmxNWeLlVF1dYsq5VzTBpfCXxVJs0ljdoJ/R8MLybQRJ/FvLxqffaKi6m3LooDY+ZY2DaCyjKHFtr1JSuyrrLb6SYKBp9VDZHS/PxQR1Lt7U9hNxGWTmSi8VJcN0qY+6wAyAUgE3OMhkXVB5vRzwvb36ty8KSW0A7t2Xr22iNF8P2DamtWZ9Y+0qKnEcbSwVFDt4uk1ZTAtBoWfvJL6iEnXYYNrBzYWnF7wvnZ//LYlapWOdtJ45CLcwtpVMS/Sr7i3u7FuldmxxiZDqrsPWU5p8G92BKeiUYRrAb8whhBxC3r4S6vk1sBZSQzVuBZh4nF8dC6WFLIGt0ukavHq1OgVbR43dPR3hTKOPDeka3Ue/vndiYIn99cZu0GC/NKoLeO0ULFCpPEVppn7WCmzZrsV+c0X02GQQKjCCz2UNEX wHrISYj1HE4MaFpaC5Q5P X-Forefront-PRVS: 0261CCEEDF X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY2PR04MB111; 23:DZAT2mYmToHgCH/jaSrv4+jMoQwVaM+FWtOM3ZvqHc?= =?us-ascii?Q?f4ZPTe8qVcIj6i7X7wPQGB0TgOD6QFCsS07jCGBryUKepkUfis7FU9Wxv019?= =?us-ascii?Q?wMFRHkdCzp+4fxvQesNL6nOIl0fm0VYGfJx9i3+IAMAFsnYaqYuMLssdDfvI?= =?us-ascii?Q?RoyvivO/+KXT/lGGWp+ZBuSS4nt6BTj+9numc+r9Dimg9U/0px8tXyR5BWF2?= =?us-ascii?Q?PYOSlCQQL3Z0WyxEq/+eb4IqB1LvWkYMONRavpnR8NNo51TU/Fa3BXi3NZuv?= =?us-ascii?Q?cd05Eh2QG5e9Wjjym4e4zqar2lrZM0ZSjWK5D2IjM4GzdjJXkieyNbS8FEq8?= =?us-ascii?Q?WEPOlNHkIaBB84U9GAclmtr6gfhn5fxplZHtfqHK/PXisaeQYtIVu2jrL9tQ?= =?us-ascii?Q?UVKou1wL08zHytRPWQ05AkZr691wNkT0mM3bLYRWygFmdL5CXvtwLpQvyO+l?= =?us-ascii?Q?D0vfgbKrVn9MROwTQDpxf+xK1SEsQdAJAFAmkqkJsiIJO7cw6eSdlQHVLt89?= =?us-ascii?Q?b8VyB8uwHfk4ZafXGnhpKgyoFhDVlfA5OopQ9MDs0BCUCLME8BfN+IcP4thf?= =?us-ascii?Q?6VuCCiaJlCQXoxz4Fm8/M4JE18EMlnUe+5PTRJNExGQTBHEcqCx+q4pAHVsr?= =?us-ascii?Q?TJloXK7UvM4nFPUwWzU81NLKt97wvnUoPJBkJDaFql5zvz1DWRL6Fl5ben9k?= =?us-ascii?Q?adIJ9Y0i6VznuGhWG4bPTT4Q0mFD65Ce6RQAgA1cIN3Q9abj0dwek5pMjpbe?= =?us-ascii?Q?+OHhUdP7NGI6vmnERW0VTGfqc9Z0eYvW/2uyTpGSiKR5EvrC7rDAgNMGFqCo?= =?us-ascii?Q?FVL5YeNtjzC/KitenY6NlPR32bjpTTHIr8gie70XqsDuByhHoJyZ7R4AGC9L?= =?us-ascii?Q?PBlOMkMEt2lMlfqWrBm75jUpqCLTCTotunGxcq9Ccb7Qsdm9J3LqYNC1iysz?= =?us-ascii?Q?BdNOBhJWpu6jVNMYO+mkZ1xA0Fu3+7tsaZeZlpXNKPX5L3l6BiL2nC9FDBDY?= =?us-ascii?Q?qCPK7bjmf5eIy/h1F7uyKJ7KOUO6FernUMrY+/LhqINmV+rqYV9zQ7Yj7QqJ?= =?us-ascii?Q?SHnMenoNFZhte7X09fgCe/nqZBJat8/BFaTIb855A3pJ4CaRzwOcn6axhWYW?= =?us-ascii?Q?CHKGCllU+MjRSa0UaFkMB3eeIdSLPqg/ZUiUTrq++NmV45ZXnojw=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; BY2PR04MB111; 6:tKjqkaOsfzVIrU3AJmB04UrM1oF7km7C3d4l9coG4Gtt9XLYoqpKoSYxX+zCRbINiHTiMm8hQdq2upC5weZ40gOokc4rRjigYMW5OVD2ysqsUixMczXabTWGjS/UvWEmINVugp3mwG0QPPuwqltYQQSe2wgAzHjTjbUw7VKyQfCv+Kn6ARyK6W4619vZHj6lnGkrOqwooBlRu36vfzZBcwhNwsqmo7Yez51PyabIznWvDtZA+ymAN7RJE8tU/r4jGZFnjJpY8ouLZ+zC/qhmTnpe77bcP9TwZJfTk072SqJWvtFTOr+Wy836ytITQwapxMns/NoN4jir5DggMxbE3ATV6An+ubj8mD/nZKDO5OwfMwcn7Tka6ASCxHSWsjLUiWmkCt8OG2fjJz8Ft2k3znc6scl6kFQC0+7PeBAsOX0=; 5:QrOVnFzFybis+2JDEYsDxS8bKrHNY72URqzvvyIynoHvugILYwCxxM7Mzq83pInJ9fkzDyqE9st1pjq8BwzPmiaErmkHEw2pay5vxoJb+gulV1bbjoq9AHLkOL6/riCTuKHtN5fHuCbpZmQjTZnWbg==; 24:JV5vabOxeRtUzpnaSdnRFYcK2dKg7LamB4KTNGCXKxjLMZ9mjG8a7bhrhYqO16ikC2lv44lrTAhVrfa7Fcqpz0ozklfEqTF60iOrsC+SuPk= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BY2PR04MB111; 7:+1w8BQ15fF/zly5WRuwgvDGtmDtgyaXjCvmwJFNiFL5uPbUk5pyyWsvWMJczDbwT2OF0gc7LXZUqug6IYV+dv9qwwn9d77EjMY5RY/Fsrkn7E2agDlK57VJ+2a9FJeKBdzm5lM7euUhWzPnOPsiUld3t1Ldq/xuz9PA3cuaXD7Kv5Ijb7vlRL9B6RIFmh7IeIXSCj+8dfPtatqGT0nX3NLGW6nKfilGl4rw6K9M648sw7tKh5lBw9rIZp6cgSb9DTmsccAEep8ZYx/rLYKZtDTnH121wk+PtWeWwFGU6ZUTc7fUudZA64KlGs0Vlm2PtrRowIlDtrqwmsSaA4XgT7A==; 20:FuUe74EdgDfZCzBPScnXE464izecLxTxhCfwz02J5wbpofOqhc0Jf9lu9JV4yoHRBRRBHdsdPKTlnee7sP/hpFapH3t8Y8FAjD2QQzTkYnFGMmZrJuPy3emkjIocCv3VT59hvqRpQH1LXF/B2Yl5RIVE3HlrDhRxL9jUJGE5TpI= X-OriginatorOrg: sandisk.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Mar 2017 20:20:57.1803 (UTC) X-MS-Exchange-CrossTenant-Id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=b61c8803-16f3-4c35-9b17-6f65f441df86; Ip=[74.221.232.55]; Helo=[sacsmgep15.sandisk.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR04MB111 Sender: linux-block-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Make it possible to check whether or not a block layer queue has been stopped. Make it possible to run a blk-mq queue from user space. Signed-off-by: Bart Van Assche Cc: Omar Sandoval Cc: Hannes Reinecke Reviewed-by: Hannes Reinecke --- block/blk-mq-debugfs.c | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) diff --git a/block/blk-mq-debugfs.c b/block/blk-mq-debugfs.c index 4b3f962a9c7a..cff780c47d88 100644 --- a/block/blk-mq-debugfs.c +++ b/block/blk-mq-debugfs.c @@ -43,6 +43,87 @@ static int blk_mq_debugfs_seq_open(struct inode *inode, struct file *file, return ret; } +static const char *const blk_queue_flag_name[] = { + [QUEUE_FLAG_QUEUED] = "QUEUED", + [QUEUE_FLAG_STOPPED] = "STOPPED", + [QUEUE_FLAG_SYNCFULL] = "SYNCFULL", + [QUEUE_FLAG_ASYNCFULL] = "ASYNCFULL", + [QUEUE_FLAG_DYING] = "DYING", + [QUEUE_FLAG_BYPASS] = "BYPASS", + [QUEUE_FLAG_BIDI] = "BIDI", + [QUEUE_FLAG_NOMERGES] = "NOMERGES", + [QUEUE_FLAG_SAME_COMP] = "SAME_COMP", + [QUEUE_FLAG_FAIL_IO] = "FAIL_IO", + [QUEUE_FLAG_STACKABLE] = "STACKABLE", + [QUEUE_FLAG_NONROT] = "NONROT", + [QUEUE_FLAG_VIRT] = "VIRT", + [QUEUE_FLAG_IO_STAT] = "IO_STAT", + [QUEUE_FLAG_DISCARD] = "DISCARD", + [QUEUE_FLAG_NOXMERGES] = "NOXMERGES", + [QUEUE_FLAG_ADD_RANDOM] = "ADD_RANDOM", + [QUEUE_FLAG_SECERASE] = "SECERASE", + [QUEUE_FLAG_SAME_FORCE] = "SAME_FORCE", + [QUEUE_FLAG_DEAD] = "DEAD", + [QUEUE_FLAG_INIT_DONE] = "INIT_DONE", + [QUEUE_FLAG_NO_SG_MERGE] = "NO_SG_MERGE", + [QUEUE_FLAG_POLL] = "POLL", + [QUEUE_FLAG_WC] = "WC", + [QUEUE_FLAG_FUA] = "FUA", + [QUEUE_FLAG_FLUSH_NQ] = "FLUSH_NQ", + [QUEUE_FLAG_DAX] = "DAX", + [QUEUE_FLAG_STATS] = "STATS", + [QUEUE_FLAG_RESTART] = "RESTART", + [QUEUE_FLAG_POLL_STATS] = "POLL_STATS", +}; + +static int blk_queue_flags_show(struct seq_file *m, void *v) +{ + struct request_queue *q = m->private; + bool sep = false; + int i; + + for (i = 0; i < sizeof(q->queue_flags) * BITS_PER_BYTE; i++) { + if (!(q->queue_flags & BIT(i))) + continue; + if (sep) + seq_puts(m, " "); + sep = true; + if (blk_queue_flag_name[i]) + seq_puts(m, blk_queue_flag_name[i]); + else + seq_printf(m, "%d", i); + } + seq_puts(m, "\n"); + return 0; +} + +static ssize_t blk_queue_flags_store(struct file *file, const char __user *ubuf, + size_t len, loff_t *offp) +{ + struct request_queue *q = file_inode(file)->i_private; + + blk_mq_run_hw_queues(q, true); + return len; +} + +static int blk_queue_flags_open(struct inode *inode, struct file *file) +{ + return single_open(file, blk_queue_flags_show, inode->i_private); +} + +static const struct file_operations blk_queue_flags_fops = { + .open = blk_queue_flags_open, + .read = seq_read, + .llseek = seq_lseek, + .release = single_release, + .write = blk_queue_flags_store, +}; + +static const struct blk_mq_debugfs_attr blk_queue_attrs[] = { + {"state", 0600, &blk_queue_flags_fops}, + {}, +}; + static void print_stat(struct seq_file *m, struct blk_rq_stat *stat) { if (stat->nr_samples) { @@ -735,6 +816,9 @@ int blk_mq_debugfs_register_hctxs(struct request_queue *q) if (!q->debugfs_dir) return -ENOENT; + if (!debugfs_create_files(q->debugfs_dir, q, blk_queue_attrs)) + goto err; + q->mq_debugfs_dir = debugfs_create_dir("mq", q->debugfs_dir); if (!q->mq_debugfs_dir) goto err;