{"id":794468,"url":"http://patchwork.ozlabs.org/api/patches/794468/?format=json","web_url":"http://patchwork.ozlabs.org/project/linuxppc-dev/patch/1501166846.2516.1.camel@wdc.com/","project":{"id":2,"url":"http://patchwork.ozlabs.org/api/projects/2/?format=json","name":"Linux PPC development","link_name":"linuxppc-dev","list_id":"linuxppc-dev.lists.ozlabs.org","list_email":"linuxppc-dev@lists.ozlabs.org","web_url":"https://github.com/linuxppc/wiki/wiki","scm_url":"https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git","webscm_url":"https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/","list_archive_url":"https://lore.kernel.org/linuxppc-dev/","list_archive_url_format":"https://lore.kernel.org/linuxppc-dev/{}/","commit_url_format":"https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/commit/?id={}"},"msgid":"<1501166846.2516.1.camel@wdc.com>","list_archive_url":"https://lore.kernel.org/linuxppc-dev/1501166846.2516.1.camel@wdc.com/","date":"2017-07-27T14:47:28","name":"blk_mq_sched_insert_request: inconsistent {SOFTIRQ-ON-W} -> {IN-SOFTIRQ-W} usage","commit_ref":null,"pull_url":null,"state":"not-applicable","archived":false,"hash":"8e241e2d85c8cc8b3da13132aab04130c8eab717","submitter":{"id":71843,"url":"http://patchwork.ozlabs.org/api/people/71843/?format=json","name":"Bart Van Assche","email":"Bart.VanAssche@wdc.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linuxppc-dev/patch/1501166846.2516.1.camel@wdc.com/mbox/","series":[],"comments":"http://patchwork.ozlabs.org/api/patches/794468/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/794468/checks/","tags":{},"related":[],"headers":{"Return-Path":"<linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org>","X-Original-To":["patchwork-incoming@ozlabs.org","linuxppc-dev@lists.ozlabs.org"],"Delivered-To":["patchwork-incoming@ozlabs.org","linuxppc-dev@lists.ozlabs.org"],"Received":["from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3])\n\t(using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xJFbX1X0Yz9s06\n\tfor <patchwork-incoming@ozlabs.org>;\n\tFri, 28 Jul 2017 01:03:20 +1000 (AEST)","from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 3xJFbX08R4zDrKx\n\tfor <patchwork-incoming@ozlabs.org>;\n\tFri, 28 Jul 2017 01:03:20 +1000 (AEST)","from esa4.hgst.iphmx.com (esa4.hgst.iphmx.com [216.71.154.42])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby lists.ozlabs.org (Postfix) with ESMTPS id 3xJFTD3HmdzDrJT\n\tfor <linuxppc-dev@lists.ozlabs.org>;\n\tFri, 28 Jul 2017 00:57:50 +1000 (AEST)","from mail-dm3nam03lp0024.outbound.protection.outlook.com (HELO\n\tNAM03-DM3-obe.outbound.protection.outlook.com) ([207.46.163.24])\n\tby ob1.hgst.iphmx.com with ESMTP; 27 Jul 2017 22:47:31 +0800","from CY1PR0401MB1536.namprd04.prod.outlook.com (10.163.19.154) by\n\tCY1PR0401MB1533.namprd04.prod.outlook.com (10.163.19.151) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id\n\t15.1.1282.10; Thu, 27 Jul 2017 14:47:29 +0000","from CY1PR0401MB1536.namprd04.prod.outlook.com ([10.163.19.154]) by\n\tCY1PR0401MB1536.namprd04.prod.outlook.com ([10.163.19.154]) with\n\tmapi id 15.01.1282.021; Thu, 27 Jul 2017 14:47:29 +0000"],"Authentication-Results":["ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=sharedspace.onmicrosoft.com\n\theader.i=@sharedspace.onmicrosoft.com header.b=\"n7FYH4vQ\"; \n\tdkim-atps=neutral","lists.ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=sharedspace.onmicrosoft.com\n\theader.i=@sharedspace.onmicrosoft.com header.b=\"n7FYH4vQ\"; \n\tdkim-atps=neutral","lists.ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=sharedspace.onmicrosoft.com\n\theader.i=@sharedspace.onmicrosoft.com header.b=\"n7FYH4vQ\"; \n\tdkim-atps=neutral","spf=none (sender IP is )\n\tsmtp.mailfrom=Bart.VanAssche@wdc.com; "],"X-Greylist":"delayed 616 seconds by postgrey-1.36 at bilbo;\n\tFri, 28 Jul 2017 00:57:51 AEST","X-IronPort-AV":"E=Sophos;i=\"5.40,419,1496073600\"; d=\"scan'208\";a=\"37390141\"","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=sharedspace.onmicrosoft.com; s=selector1-wdc-com;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version;\n\tbh=foRCAilbeppKvc/P8X68PCX6LQ5V9weKBAqzOT6S88A=;\n\tb=n7FYH4vQ30r4HiKa+NqaYpKyy94LrCAqcRBastpvwaEZzU4ydxKgxGaOmUtCc7PJrhhBPOAo+RlYSV7zGCzAzlpVxYudc+MgYWXVcX2KeEoMgrDVtugntFKaEQmyO+AvCwLNIjaFBIXwqpAurEIO1vTaGTXpfg1onfrihHi/sK8=","From":"Bart Van Assche <Bart.VanAssche@wdc.com>","To":"\"mpe@ellerman.id.au\" <mpe@ellerman.id.au>, \"axboe@kernel.dk\"\n\t<axboe@kernel.dk>","Subject":"Re: blk_mq_sched_insert_request: inconsistent {SOFTIRQ-ON-W} ->\n\t{IN-SOFTIRQ-W} usage","Thread-Topic":"blk_mq_sched_insert_request: inconsistent {SOFTIRQ-ON-W} ->\n\t{IN-SOFTIRQ-W} usage","Thread-Index":"AQHTBpbYyx2cmVtqXUGNBRJ+OE1bb6JntOSAgAAMdAA=","Date":"Thu, 27 Jul 2017 14:47:28 +0000","Message-ID":"<1501166846.2516.1.camel@wdc.com>","References":"<87a83qfosu.fsf@concordia.ellerman.id.au>\n\t<073ed79c-11ce-e86c-a905-91fd28675d47@kernel.dk>","In-Reply-To":"<073ed79c-11ce-e86c-a905-91fd28675d47@kernel.dk>","Accept-Language":"en-US","Content-Language":"en-US","X-MS-Has-Attach":"","X-MS-TNEF-Correlator":"","authentication-results":["ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=sharedspace.onmicrosoft.com\n\theader.i=@sharedspace.onmicrosoft.com header.b=\"n7FYH4vQ\"; \n\tdkim-atps=neutral","lists.ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=sharedspace.onmicrosoft.com\n\theader.i=@sharedspace.onmicrosoft.com header.b=\"n7FYH4vQ\"; \n\tdkim-atps=neutral","lists.ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=sharedspace.onmicrosoft.com\n\theader.i=@sharedspace.onmicrosoft.com header.b=\"n7FYH4vQ\"; \n\tdkim-atps=neutral","spf=none (sender IP is )\n\tsmtp.mailfrom=Bart.VanAssche@wdc.com; "],"x-originating-ip":"[63.163.107.100]","x-ms-publictraffictype":"Email","x-microsoft-exchange-diagnostics":"1; CY1PR0401MB1533;\n\t20:KcFcEOvkIeLacdwSD5dGnDr+d7WCLOntcxAZ6fJp4ylqUHMMxL4VSxyFhuf/BKjnBr911dejKcaRAapzeBv/+gj3QNV1ZUGNDgZ9Foq8MF369gz5/KvAlY4fSNVC8ZaJS/Vlm6DMRz3YCJ/f+Ya7KqQqwbROd3jJKJKw0T3dqC8=","x-ms-office365-filtering-correlation-id":"7254c25e-614b-4c55-ba68-08d4d4fe67a3","x-ms-office365-filtering-ht":"Tenant","x-microsoft-antispam":"UriScan:; BCL:0; PCL:0;\n\tRULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254075)(300000503095)(300135400095)(48565401081)(2017052603031)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);\n\tSRVR:CY1PR0401MB1533; ","x-ms-traffictypediagnostic":"CY1PR0401MB1533:","wdcipoutbound":"EOP-TRUE","x-exchange-antispam-report-test":"UriScan:;","x-microsoft-antispam-prvs":"<CY1PR0401MB1533B8BEDCFE295640A64F1998BE0@CY1PR0401MB1533.namprd04.prod.outlook.com>","x-exchange-antispam-report-cfa-test":"BCL:0; PCL:0;\n\tRULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(93006095)(93001095)(10201501046)(3002001)(6055026)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123555025)(20161123562025)(20161123560025)(20161123558100)(6072148)(100000704101)(100105200095)(100000705101)(100105500095);\n\tSRVR:CY1PR0401MB1533; BCL:0; PCL:0;\n\tRULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);\n\tSRVR:CY1PR0401MB1533; ","x-forefront-prvs":"03818C953D","x-forefront-antispam-report":"SFV:NSPM;\n\tSFS:(10019020)(6009001)(39850400002)(39410400002)(39860400002)(39450400003)(39400400002)(39840400002)(199003)(24454002)(377424004)(189002)(105586002)(230783001)(2900100001)(189998001)(106356001)(33646002)(36756003)(478600001)(25786009)(3846002)(2501003)(575784001)(66066001)(3660700001)(3280700002)(102836003)(2906002)(6116002)(6436002)(86362001)(2950100002)(101416001)(103116003)(229853002)(76176999)(50986999)(305945005)(6506006)(7736002)(54356999)(4326008)(38730400002)(6246003)(72206003)(97736004)(5660300001)(68736007)(53936002)(54906002)(81166006)(81156014)(6512007)(8936002)(14454004)(99286003)(77096006)(6486002)(8676002);\n\tDIR:OUT; SFP:1102; SCL:1; SRVR:CY1PR0401MB1533;\n\tH:CY1PR0401MB1536.namprd04.prod.outlook.com; FPR:; SPF:None;\n\tPTR:InfoNoRecords; A:1; MX:1; LANG:en; ","received-spf":"None (protection.outlook.com: wdc.com does not designate\n\tpermitted sender hosts)","spamdiagnosticoutput":"1:99","spamdiagnosticmetadata":"NSPM","Content-Type":"text/plain; charset=\"iso-8859-1\"","Content-ID":"<3AE2FE7ECBCBA94C969EA425D4CAE2A2@namprd04.prod.outlook.com>","Content-Transfer-Encoding":"quoted-printable","MIME-Version":"1.0","X-OriginatorOrg":"wdc.com","X-MS-Exchange-CrossTenant-originalarrivaltime":"27 Jul 2017 14:47:28.9616\n\t(UTC)","X-MS-Exchange-CrossTenant-fromentityheader":"Hosted","X-MS-Exchange-CrossTenant-id":"b61c8803-16f3-4c35-9b17-6f65f441df86","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"CY1PR0401MB1533","X-Mailman-Approved-At":"Fri, 28 Jul 2017 01:01:43 +1000","X-BeenThere":"linuxppc-dev@lists.ozlabs.org","X-Mailman-Version":"2.1.23","Precedence":"list","List-Id":"Linux on PowerPC Developers Mail List\n\t<linuxppc-dev.lists.ozlabs.org>","List-Unsubscribe":"<https://lists.ozlabs.org/options/linuxppc-dev>,\n\t<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=unsubscribe>","List-Archive":"<http://lists.ozlabs.org/pipermail/linuxppc-dev/>","List-Post":"<mailto:linuxppc-dev@lists.ozlabs.org>","List-Help":"<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=help>","List-Subscribe":"<https://lists.ozlabs.org/listinfo/linuxppc-dev>,\n\t<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=subscribe>","Cc":"\"linux-block@vger.kernel.org\" <linux-block@vger.kernel.org>,\n\t\"linuxppc-dev@lists.ozlabs.org\" <linuxppc-dev@lists.ozlabs.org>,\n\t\"linux-kernel@vger.kernel.org\" <linux-kernel@vger.kernel.org>","Errors-To":"linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org","Sender":"\"Linuxppc-dev\"\n\t<linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org>"},"content":"On Thu, 2017-07-27 at 08:02 -0600, Jens Axboe wrote:\n> The bug looks like SCSI running the queue inline from IRQ\n> context, that's not a good idea. Can you confirm the below works for\n> you?\n> \n> \n> diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c\n> index f6097b89d5d3..78740ebf966c 100644\n> --- a/drivers/scsi/scsi_lib.c\n> +++ b/drivers/scsi/scsi_lib.c\n> @@ -497,7 +497,7 @@ static void scsi_run_queue(struct request_queue *q)\n>  \t\tscsi_starved_list_run(sdev->host);\n>  \n>  \tif (q->mq_ops)\n> -\t\tblk_mq_run_hw_queues(q, false);\n> +\t\tblk_mq_run_hw_queues(q, true);\n>  \telse\n>  \t\tblk_run_queue(q);\n>  }\n\nHello Jens,\n\nscsi_run_queue() works fine if no scheduler is configured. Additionally, that\ncode predates the introduction of blk-mq I/O schedulers. I think it is\nnontrivial for block driver authors to figure out that a queue has to be run\nfrom process context if a scheduler has been configured that does not support\nto be run from interrupt context. How about adding WARN_ON_ONCE(in_interrupt())\nto blk_mq_start_hw_queue() or replacing the above patch by the following:\n\n\nSubject: [PATCH] blk-mq: Make it safe to call blk_mq_start_hw_queues() from interrupt context\n\nblk_mq_start_hw_queues() triggers a queue run. Some functions that\nget called to run a queue, e.g. dd_dispatch_request(), are not IRQ-safe.\nHence run the queue asynchronously if blk_mq_start_hw_queues() is called\nfrom interrupt context.\n\nSigned-off-by: Bart Van Assche <bart.vanassche@wdc.com>\n---\n block/blk-mq.c | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\nThanks,\n\nBart.","diff":"diff --git a/block/blk-mq.c b/block/blk-mq.c\nindex 041f7b7fa0d6..c5cb3b2aabcf 100644\n--- a/block/blk-mq.c\n+++ b/block/blk-mq.c\n@@ -1251,7 +1251,7 @@ void blk_mq_start_hw_queue(struct blk_mq_hw_ctx *hctx)\n {\n \tclear_bit(BLK_MQ_S_STOPPED, &hctx->state);\n \n-\tblk_mq_run_hw_queue(hctx, false);\n+\tblk_mq_run_hw_queue(hctx, in_interrupt());\n }\n EXPORT_SYMBOL(blk_mq_start_hw_queue);\n \n","prefixes":[]}