From patchwork Wed Jan 11 13:01:46 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kemeng Shi X-Patchwork-Id: 41754 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp3132298wrt; Tue, 10 Jan 2023 21:06:54 -0800 (PST) X-Google-Smtp-Source: AMrXdXuleLPzglq/d+dqSrENZ+gWY5qyhJ41Tr0X8u4jsJy0vU+wV7ELTNPdDxB8CsXs746rUGuE X-Received: by 2002:a17:90b:310f:b0:226:876c:4c57 with SMTP id gc15-20020a17090b310f00b00226876c4c57mr29186007pjb.39.1673413614600; Tue, 10 Jan 2023 21:06:54 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673413614; cv=none; d=google.com; s=arc-20160816; b=bg5gRHvm0aZzLK3n2aRfB1DHEEH4t+aa71gKu+dPoqBDY5yyGpYOOuR0w6qB7OTF8C hwbjuENsvvP6uyy5srAFsUTzndUsbIE2hF1AXWtxn8QlrmlQb7ZdLOcsN0pKruFce3Zz FqJge7VAk0duTp6nmG2mgVqnGhUf7pfdbdyCmaRdAqyDg7qCb70TrPbr7WE2d/6FFB5u p048w3OZQqzFxug0sVTuCLBMEFRVO09zZcQEGdWeJtfPcH8RQhrdiek1uXl2UFwwJ9qn dlGmIK0fsp52LDRXv9xL3o2NMcGWr9GI5MM4blOtKb7bpv5szwdTVBwv/u8uPG8bukDq 8cBA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=f8QPQ8audkagp7vc3jomVcAPsS0Ya5v5CwUO/yOP7h4=; b=KtBfOBdO7BAp4Snp/XWxomvSl88BzUoL7dPMy3g73FQiGS7S5GWE614sJV5hfscT4o t2+m0LlXaAK9SHEFt8rNBVDSVu26PRnTlci6EW3AiLgSkvKiJ5Xmt5dbIy14fhvw0Gib vybdcZHsdq/rFr3MPPVawOMSxtbUZmLg8u5s+UbZ2rNrB2KYKiF75ed2YzmQQJDjgnUM I4rx4HpReVEvv+B5SHltq7IAJ6An3uB0z17MJkb2MnTXj55FoGro6nDa+L6nP9OYHqn7 YXFixPTtuLdgnzJBfIQq0GrsB2pi9hwAZRt9G7y2ZaEjWinzIzrWJ3JJzMznjtYCgZOy JZRw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id c16-20020a630d10000000b00499c23cd65esi13568746pgl.93.2023.01.10.21.06.41; Tue, 10 Jan 2023 21:06:54 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235925AbjAKFFY (ORCPT + 99 others); Wed, 11 Jan 2023 00:05:24 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48442 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235319AbjAKFDi (ORCPT ); Wed, 11 Jan 2023 00:03:38 -0500 Received: from dggsgout11.his.huawei.com (dggsgout11.his.huawei.com [45.249.212.51]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 83D4BDFD1; Tue, 10 Jan 2023 21:03:37 -0800 (PST) Received: from mail02.huawei.com (unknown [172.30.67.153]) by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4NsFv1717Mz4f3lY5; Wed, 11 Jan 2023 13:03:25 +0800 (CST) Received: from huaweicloud.com (unknown [10.175.124.27]) by APP1 (Coremail) with SMTP id cCh0CgDX9S8fQ75jGl2gBQ--.10280S3; Wed, 11 Jan 2023 13:03:28 +0800 (CST) From: Kemeng Shi To: hch@lst.de, axboe@kernel.dk, dwagner@suse.de, hare@suse.de, ming.lei@redhat.com, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org Cc: john.garry@huawei.com, jack@suse.cz Subject: [PATCH v3 01/14] blk-mq: avoid sleep in blk_mq_alloc_request_hctx Date: Wed, 11 Jan 2023 21:01:46 +0800 Message-Id: <20230111130159.3741753-2-shikemeng@huaweicloud.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20230111130159.3741753-1-shikemeng@huaweicloud.com> References: <20230111130159.3741753-1-shikemeng@huaweicloud.com> MIME-Version: 1.0 X-CM-TRANSID: cCh0CgDX9S8fQ75jGl2gBQ--.10280S3 X-Coremail-Antispam: 1UD129KBjvJXoW7uF1rZw13Kw47GF13JFW8JFb_yoW8ZrWfpr W7Ja1Utrn0934xCFyIywsrW3y7Cwsrur9rGF1aq34rZ3yUKr10kF4UZr48WFyxAFs7Aw45 J34rt3WUXryqk3DanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUB0b4IE77IF4wAFF20E14v26ryj6rWUM7CY07I20VC2zVCF04k2 6cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M280x2IEY4vEnII2IxkI6r1a6r45M2 8IrcIa0xkI8VA2jI8067AKxVWUGwA2048vs2IY020Ec7CjxVAFwI0_JFI_Gr1l8cAvFVAK 0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28EF7xvwVC0I7IYx2IY67AKxVWDJVCq3wA2z4 x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8Jr0_Cr1UM28EF7xvwVC2z280aVAFwI0_GcCE3s1l 84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0DM2AIxVAIcxkEcVAq07x20xvEncxIr21l5I 8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjxv20xvE14v26r106r15McIj6I8E87Iv67AK xVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xvr2IYc2Ij64vIr41l42xK82IYc2Ij64 vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4xG67AKxVWUJVWUGwC20s026x8G jcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r1q6r43MIIYrxkI7VAKI48JMIIF0xvE2I x0cI8IcVAFwI0_Jr0_JF4lIxAIcVC0I7IYx2IY6xkF7I0E14v26r4j6F4UMIIF0xvE42xK 8VAvwI8IcIk0rVWUJVWUCwCI42IY6I8E87Iv67AKxVWUJVW8JwCI42IY6I8E87Iv6xkF7I 0E14v26r4j6r4UJbIYCTnIWIevJa73UjIFyTuYvjxUIv38DUUUU X-CM-SenderInfo: 5vklyvpphqwq5kxd4v5lfo033gof0z/ X-CFilter-Loop: Reflected X-Spam-Status: No, score=0.0 required=5.0 tests=BAYES_00,DATE_IN_FUTURE_06_12, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754701354259115430?= X-GMAIL-MSGID: =?utf-8?q?1754701354259115430?= Commit 1f5bd336b9150 ("blk-mq: add blk_mq_alloc_request_hctx") add blk_mq_alloc_request_hctx to send commands to a specific queue. If BLK_MQ_REQ_NOWAIT is not set in tag allocation, we may change to different hctx after sleep and get tag from unexpected hctx. So BLK_MQ_REQ_NOWAIT must be set in flags for blk_mq_alloc_request_hctx. After commit 600c3b0cea784 ("blk-mq: open code __blk_mq_alloc_request in blk_mq_alloc_request_hctx"), blk_mq_alloc_request_hctx return -EINVAL if both BLK_MQ_REQ_NOWAIT and BLK_MQ_REQ_RESERVED are not set instead of if BLK_MQ_REQ_NOWAIT is not set. So if BLK_MQ_REQ_NOWAIT is not set and BLK_MQ_REQ_RESERVED is set, blk_mq_alloc_request_hctx could alloc tag from unexpected hctx. I guess what we need here is that return -EINVAL if either BLK_MQ_REQ_NOWAIT or BLK_MQ_REQ_RESERVED is not set. Currently both BLK_MQ_REQ_NOWAIT and BLK_MQ_REQ_RESERVED will be set if specific hctx is needed in nvme_auth_submit, nvmf_connect_io_queue and nvmf_connect_admin_queue. Fix the potential BLK_MQ_REQ_NOWAIT missed case in future. Fixes: 600c3b0cea78 ("blk-mq: open code __blk_mq_alloc_request in blk_mq_alloc_request_hctx") Reviewed-by: Christoph Hellwig Signed-off-by: Kemeng Shi Reviewed-by: Christoph Hellwig --- block/blk-mq.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/block/blk-mq.c b/block/blk-mq.c index c5cf0dbca1db..f2586d485be6 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -658,7 +658,8 @@ struct request *blk_mq_alloc_request_hctx(struct request_queue *q, * allocator for this for the rare use case of a command tied to * a specific queue. */ - if (WARN_ON_ONCE(!(flags & (BLK_MQ_REQ_NOWAIT | BLK_MQ_REQ_RESERVED)))) + if (WARN_ON_ONCE(!(flags & BLK_MQ_REQ_NOWAIT)) || + WARN_ON_ONCE(!(flags & BLK_MQ_REQ_RESERVED))) return ERR_PTR(-EINVAL); if (hctx_idx >= q->nr_hw_queues) From patchwork Wed Jan 11 13:01:47 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kemeng Shi X-Patchwork-Id: 41741 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp3131610wrt; Tue, 10 Jan 2023 21:04:33 -0800 (PST) X-Google-Smtp-Source: AMrXdXv2dkO40Lufh+wnBmqr3Su9FNhn5dlpusG7G3yQ2dLoCAncmGPChDvEXk4xqarZrd7WLkZL X-Received: by 2002:a17:90a:c695:b0:223:7de6:423e with SMTP id n21-20020a17090ac69500b002237de6423emr73815620pjt.31.1673413472678; Tue, 10 Jan 2023 21:04:32 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673413472; cv=none; d=google.com; s=arc-20160816; b=hqjNcH+gxeZfxO0zlWSMlHnAeDDB5unyH/2eWXhqt9ziGEz/IZhhdZVJ3Y0jgP9A38 s8YrDmpKchtqgRQTAQl0UUqwxPmcmyWdqhQJ5uPLwENvFzEqrLC7vxVoRotSt5RzZAKz xruETxD4qPvnXMZWdIEG0zacifH70Qe+nCJEnzeqGI8pCmOV2kUOvkbQAY0WXrjpXcGH pjrlaoGC1R7g4C+cTC3tPSjQdETU5lORglZvG5bcDrHE2DTQ/osOp29qhcUj7I4zY3SD 3VmhT4MPpID1L/B1JondGKJniQ1TT+TdfSm4gYrIblKMS10rkP+5FmjV05U4ouDgGZ0X C/Ag== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=LFQHoDW60FBi1NV3ZTsOdz4XXMcZ6JbH8Lilkc4ZbE0=; b=h/fkk6388zuHfT47NB8CqGvEX5H4vh1/tyJ7b+0AfW5GreohPUU330Cva4hu0vXbJo LbPAJjh9HFcJYaATpYjw9TGsWGBJnNbu6oYoxM3ntHy/zRLqKa5MSY+ovCx5n4elkzIe XVUq8FsNaa7KpkwJMfGxvyI+i9RAosVLn/4Z7H5Pc6WYFqTvhJW7c/dZR2u8V5Z8IVMz lWOif5oGzGev2fniWfO5TMx7EGdNOcsWpKkHYZ9kW1/C2q1ZKYw24TTu5He/gXEChIGX sjr4sVlBAld3CiYOlNyBTU/VdEHBsYdeuv9X6Eq/aMGANz5OIfI7sVRIjtyBhaDEOxWy x7yw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id bv19-20020a17090af19300b002269f120f08si16292518pjb.67.2023.01.10.21.04.17; Tue, 10 Jan 2023 21:04:32 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231828AbjAKFDp (ORCPT + 99 others); Wed, 11 Jan 2023 00:03:45 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48382 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233683AbjAKFDe (ORCPT ); Wed, 11 Jan 2023 00:03:34 -0500 Received: from dggsgout12.his.huawei.com (dggsgout12.his.huawei.com [45.249.212.56]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E0C34D11D; Tue, 10 Jan 2023 21:03:33 -0800 (PST) Received: from mail02.huawei.com (unknown [172.30.67.153]) by dggsgout12.his.huawei.com (SkyGuard) with ESMTP id 4NsFv22Njcz4f3nqQ; Wed, 11 Jan 2023 13:03:26 +0800 (CST) Received: from huaweicloud.com (unknown [10.175.124.27]) by APP1 (Coremail) with SMTP id cCh0CgDX9S8fQ75jGl2gBQ--.10280S4; Wed, 11 Jan 2023 13:03:28 +0800 (CST) From: Kemeng Shi To: hch@lst.de, axboe@kernel.dk, dwagner@suse.de, hare@suse.de, ming.lei@redhat.com, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org Cc: john.garry@huawei.com, jack@suse.cz Subject: [PATCH v3 02/14] blk-mq: remove stale comment for blk_mq_sched_mark_restart_hctx Date: Wed, 11 Jan 2023 21:01:47 +0800 Message-Id: <20230111130159.3741753-3-shikemeng@huaweicloud.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20230111130159.3741753-1-shikemeng@huaweicloud.com> References: <20230111130159.3741753-1-shikemeng@huaweicloud.com> MIME-Version: 1.0 X-CM-TRANSID: cCh0CgDX9S8fQ75jGl2gBQ--.10280S4 X-Coremail-Antispam: 1UD129KBjvdXoW7Jw18Ary5CF1UZw45KFyDKFg_yoWkJrX_W3 W5Crn7GrWDJrn0vrWakF1UZF48K34kJa4UCay5Jr9rtw18XFZxGr4UKr15XrZ8W3ZrGay3 J3Z8XrykA3WS9jkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT 9fnUUIcSsGvfJTRUUUbfxYFVCjjxCrM7AC8VAFwI0_Wr0E3s1l1xkIjI8I6I8E6xAIw20E Y4v20xvaj40_Wr0E3s1l1IIY67AEw4v_Jr0_Jr4l87I20VAvwVAaII0Ic2I_JFv_Gryl82 xGYIkIc2x26280x7IE14v26r15M28IrcIa0xkI8VCY1x0267AKxVW8JVW5JwA2ocxC64kI II0Yj41l84x0c7CEw4AK67xGY2AK021l84ACjcxK6xIIjxv20xvE14v26w1j6s0DM28EF7 xvwVC0I7IYx2IY6xkF7I0E14v26r4UJVWxJr1l84ACjcxK6I8E87Iv67AKxVW0oVCq3wA2 z4x0Y4vEx4A2jsIEc7CjxVAFwI0_GcCE3s1le2I262IYc4CY6c8Ij28IcVAaY2xG8wAqx4 xG64xvF2IEw4CE5I8CrVC2j2WlYx0E2Ix0cI8IcVAFwI0_JrI_JrylYx0Ex4A2jsIE14v2 6r1j6r4UMcvjeVCFs4IE7xkEbVWUJVW8JwACjcxG0xvY0x0EwIxGrwCF04k20xvY0x0EwI xGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F40E14v26r1j6r18MI8I3I0E7480 Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_Jw0_GFylIxkGc2Ij64vIr41lIxAIcVC0I7 IYx2IY67AKxVWUJVWUCwCI42IY6xIIjxv20xvEc7CjxVAFwI0_Gr0_Cr1lIxAIcVCF04k2 6cxKx2IYs7xG6r1j6r1xMIIF0xvEx4A2jsIE14v26r1j6r4UMIIF0xvEx4A2jsIEc7CjxV AFwI0_Gr0_Gr1UYxBIdaVFxhVjvjDU0xZFpf9x07jhUUbUUUUU= X-CM-SenderInfo: 5vklyvpphqwq5kxd4v5lfo033gof0z/ X-CFilter-Loop: Reflected X-Spam-Status: No, score=0.0 required=5.0 tests=BAYES_00,DATE_IN_FUTURE_06_12, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754701205243586106?= X-GMAIL-MSGID: =?utf-8?q?1754701205243586106?= Commit 97889f9ac24f8 ("blk-mq: remove synchronize_rcu() from blk_mq_del_queue_tag_set()") remove handle of TAG_SHARED in restart, then shared_hctx_restart counted for how many hardware queues are marked for restart is removed too. Remove the stale comment that we still count hardware queues need restart. Fixes: 97889f9ac24f ("blk-mq: remove synchronize_rcu() from blk_mq_del_queue_tag_set()") Reviewed-by: Christoph Hellwig Signed-off-by: Kemeng Shi --- block/blk-mq-sched.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/block/blk-mq-sched.c b/block/blk-mq-sched.c index 23d1a90fec42..ae40cdb7a383 100644 --- a/block/blk-mq-sched.c +++ b/block/blk-mq-sched.c @@ -19,8 +19,7 @@ #include "blk-wbt.h" /* - * Mark a hardware queue as needing a restart. For shared queues, maintain - * a count of how many hardware queues are marked for restart. + * Mark a hardware queue as needing a restart. */ void blk_mq_sched_mark_restart_hctx(struct blk_mq_hw_ctx *hctx) { From patchwork Wed Jan 11 13:01:48 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kemeng Shi X-Patchwork-Id: 41744 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp3131852wrt; Tue, 10 Jan 2023 21:05:16 -0800 (PST) X-Google-Smtp-Source: AMrXdXsPb4nhfyRYEjl/0yZe17gVs6/T/gnA2tEOPNzhTTUJZhWRmmwtD/CwehNQ10t1gPzOV/bg X-Received: by 2002:a05:6a21:3a45:b0:9d:efbe:e607 with SMTP id zu5-20020a056a213a4500b0009defbee607mr83267751pzb.35.1673413516492; Tue, 10 Jan 2023 21:05:16 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673413516; cv=none; d=google.com; s=arc-20160816; b=VOqow8Q8gndAZsQu3GTnbNTjDjH/E0OE2YjHPXnkUxcrVRjAHFM8qPcvUcwpvKvln2 eBFkSQuYuzQd4sNL16xyPFShykyxIdEklHgOAHSEIPNH01v7oVvOLgpou/zRaRPgLW3A LnQ8MoUxcVTDCVIVPBN2ALhVhfTJodGNTYEjRDU891L4s3xKtjfVq5TxI4pC4cGMgCiX ErkRp2zlbebYAY/RSUaF/tcjhtvrw66L7ea3lGLBNTmll882xq9dWyzkNAb/uHnFAzOC jtx5xkzWQ9gKN8GZWgB6nbSOxRm5WvgfMCRV3lRZzFX0T5BzuQPtnwepWpCWzLXlasOA +hrQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=MjKsxA12kuwo1BqvHu2pTSzMNRVZRAsqqn+EVA9nBes=; b=vQb4TjvyQw15Rhd3P2RczSAK7LztkU8QUZR2hMFMKUD5JhEXEr4Y3q4CZyRU+ASdeL 0yOdZ3bTFIyLzCzQiFg4GlOMc7PN0oYB32mHPXzHugG+WXuE9Yxah99Sg8+q6vrSGxz7 V4EDw6xZW2kiRfrmH91T7Lo2PfVVblDDTgIk5xFmkXEHyYjBDDIE7Lv3bSX9V43uGA+U abzUL+0uIHqVGnBP+rc4NUzqBR2upr2EiPXNL/wS0gyEQbFRTThu3cjHJAIYfo+kUJna 1jhCCJ9MA9qvTFOPj3cwNZtfrQQ+0TqL6PxdbTeHECJhnNdFiFQ66TxN//eXcv3zVwub jOLA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id k133-20020a633d8b000000b004988e653840si13667266pga.774.2023.01.10.21.05.03; Tue, 10 Jan 2023 21:05:16 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235762AbjAKFEB (ORCPT + 99 others); Wed, 11 Jan 2023 00:04:01 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48390 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234505AbjAKFDf (ORCPT ); Wed, 11 Jan 2023 00:03:35 -0500 Received: from dggsgout12.his.huawei.com (dggsgout12.his.huawei.com [45.249.212.56]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 655CDD2D8; Tue, 10 Jan 2023 21:03:34 -0800 (PST) Received: from mail02.huawei.com (unknown [172.30.67.153]) by dggsgout12.his.huawei.com (SkyGuard) with ESMTP id 4NsFv25BYrz4f3lJx; Wed, 11 Jan 2023 13:03:26 +0800 (CST) Received: from huaweicloud.com (unknown [10.175.124.27]) by APP1 (Coremail) with SMTP id cCh0CgDX9S8fQ75jGl2gBQ--.10280S5; Wed, 11 Jan 2023 13:03:29 +0800 (CST) From: Kemeng Shi To: hch@lst.de, axboe@kernel.dk, dwagner@suse.de, hare@suse.de, ming.lei@redhat.com, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org Cc: john.garry@huawei.com, jack@suse.cz Subject: [PATCH v3 03/14] blk-mq: wait on correct sbitmap_queue in blk_mq_mark_tag_wait Date: Wed, 11 Jan 2023 21:01:48 +0800 Message-Id: <20230111130159.3741753-4-shikemeng@huaweicloud.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20230111130159.3741753-1-shikemeng@huaweicloud.com> References: <20230111130159.3741753-1-shikemeng@huaweicloud.com> MIME-Version: 1.0 X-CM-TRANSID: cCh0CgDX9S8fQ75jGl2gBQ--.10280S5 X-Coremail-Antispam: 1UD129KBjvJXoW7tF15AF1rKFW7tr4rZry3twb_yoW8XF47pF 43Cw4jkas3tr1jvFWkJa9rC3WF939xKr97Grs3Cw4Ygr48Grsaqr10gF4UXFyFvrs5Ca98 Ar4qyryrZr1UX37anT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUB0b4IE77IF4wAFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k2 6cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M280x2IEY4vEnII2IxkI6r1a6r45M2 8IrcIa0xkI8VA2jI8067AKxVWUWwA2048vs2IY020Ec7CjxVAFwI0_Xr0E3s1l8cAvFVAK 0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28EF7xvwVC0I7IYx2IY67AKxVWDJVCq3wA2z4 x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8Jr0_Cr1UM28EF7xvwVC2z280aVAFwI0_GcCE3s1l 84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0DM2AIxVAIcxkEcVAq07x20xvEncxIr21l5I 8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjxv20xvE14v26r106r15McIj6I8E87Iv67AK xVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xvr2IYc2Ij64vIr41l42xK82IYc2Ij64 vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4xG67AKxVWUJVWUGwC20s026x8G jcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r1q6r43MIIYrxkI7VAKI48JMIIF0xvE2I x0cI8IcVAFwI0_Jr0_JF4lIxAIcVC0I7IYx2IY6xkF7I0E14v26r4j6F4UMIIF0xvE42xK 8VAvwI8IcIk0rVWUJVWUCwCI42IY6I8E87Iv67AKxVWUJVW8JwCI42IY6I8E87Iv6xkF7I 0E14v26r4j6r4UJbIYCTnIWIevJa73UjIFyTuYvjxUx4SrUUUUU X-CM-SenderInfo: 5vklyvpphqwq5kxd4v5lfo033gof0z/ X-CFilter-Loop: Reflected X-Spam-Status: No, score=0.0 required=5.0 tests=BAYES_00,DATE_IN_FUTURE_06_12, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754701251550264166?= X-GMAIL-MSGID: =?utf-8?q?1754701251550264166?= For shared queues case, we will only wait on bitmap_tags if we fail to get driver tag. However, rq could be from breserved_tags, then two problems will occur: 1. io hung if no tag is currently allocated from bitmap_tags. 2. unnecessary wakeup when tag is freed to bitmap_tags while no tag is freed to breserved_tags. Wait on the bitmap which rq from to fix this. Fixes: f906a6a0f426 ("blk-mq: improve tag waiting setup for non-shared tags") Reviewed-by: Christoph Hellwig Signed-off-by: Kemeng Shi --- block/blk-mq.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/block/blk-mq.c b/block/blk-mq.c index f2586d485be6..de0e0d70cba2 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -1826,7 +1826,7 @@ static int blk_mq_dispatch_wake(wait_queue_entry_t *wait, unsigned mode, static bool blk_mq_mark_tag_wait(struct blk_mq_hw_ctx *hctx, struct request *rq) { - struct sbitmap_queue *sbq = &hctx->tags->bitmap_tags; + struct sbitmap_queue *sbq; struct wait_queue_head *wq; wait_queue_entry_t *wait; bool ret; @@ -1849,6 +1849,10 @@ static bool blk_mq_mark_tag_wait(struct blk_mq_hw_ctx *hctx, if (!list_empty_careful(&wait->entry)) return false; + if (blk_mq_tag_is_reserved(rq->mq_hctx->sched_tags, rq->internal_tag)) + sbq = &hctx->tags->breserved_tags; + else + sbq = &hctx->tags->bitmap_tags; wq = &bt_wait_ptr(sbq, hctx)->wait; spin_lock_irq(&wq->lock); From patchwork Wed Jan 11 13:01:49 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kemeng Shi X-Patchwork-Id: 41743 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp3131725wrt; Tue, 10 Jan 2023 21:04:49 -0800 (PST) X-Google-Smtp-Source: AMrXdXu09gY4Q27Vkdnl9IkACD5XZtxzGkyfAD36oX8bO5uUlyxiPra9i1qAExKvu++4SmT55ZKE X-Received: by 2002:a05:6a21:6d86:b0:a3:e346:2548 with SMTP id wl6-20020a056a216d8600b000a3e3462548mr108470587pzb.15.1673413489643; Tue, 10 Jan 2023 21:04:49 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673413489; cv=none; d=google.com; s=arc-20160816; b=PkZ1maoxFCu77B/nArK1qCl+JXusEv9nidvYC8OoxfJsRGix3OwXsxOUKULbNeRmdq FHnv3wjtzh+vqTBvrtMFrPx/eI4HaBfqbRF084CeMjlVoJpJTrmk0YDtTRkUxcIZPaIe NEE/DcKjjsjOXIbyOUAJvU4WcEapSlYJemkKCBWWfrt0GRC3n5gL/LulEE5Tgc2FXnrd DxfSHi+xA6GdlzQ3mxQ88nXChSxOZUxHkGYeqSKQz0TiDlgUFWNe6XwGFHhuWpUWy6Tx KLxu6qgYg6jtEu+a9Pci5Qx33bA5M5UgiSKZqChO3UX/fF90msRmWx7yWJ/IRxkKPF2G Bmqg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=1HTi23l7hkS+r1uz44rt5VAzptuX87TXbqheNGfxyn4=; b=i1KtuE/xdseErZhID7rcJh5eifR94XQ+3CSA6Yb/suwCZXa1bBtwb8nY+WZY4/MF8r ytK7IOSUTM0Tw9gmY9sNZScAhtIhySLJaKHZoe5KuzULC4PFuFslbaBgZlsy4GUH/wwp l1S1m2VAkb4T1KTTSFBAvtbUnGqCqMWbRIbPWw636gSXIth1DhErxHmHGlzckaT+adfH lO2A7Yd1gzWvt0dKczmHfY+J6Siw2aiPV2YcfszKoMfShJZRd3SRmmb0ErzNGr2dD3Xo 9DmnH56bP0ggeRdjTzhm2O6DVu5bt5OBMedFa+1SfgOhuFbD40RUfgd1nHR2bQKJLdhU OVMA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id v29-20020a63b95d000000b004a42cabd42asi10601419pgo.37.2023.01.10.21.04.37; Tue, 10 Jan 2023 21:04:49 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235723AbjAKFD7 (ORCPT + 99 others); Wed, 11 Jan 2023 00:03:59 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48388 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234020AbjAKFDf (ORCPT ); Wed, 11 Jan 2023 00:03:35 -0500 Received: from dggsgout11.his.huawei.com (dggsgout11.his.huawei.com [45.249.212.51]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4A2B0D2D1; Tue, 10 Jan 2023 21:03:34 -0800 (PST) Received: from mail02.huawei.com (unknown [172.30.67.153]) by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4NsFv31XCwz4f3v42; Wed, 11 Jan 2023 13:03:27 +0800 (CST) Received: from huaweicloud.com (unknown [10.175.124.27]) by APP1 (Coremail) with SMTP id cCh0CgDX9S8fQ75jGl2gBQ--.10280S6; Wed, 11 Jan 2023 13:03:29 +0800 (CST) From: Kemeng Shi To: hch@lst.de, axboe@kernel.dk, dwagner@suse.de, hare@suse.de, ming.lei@redhat.com, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org Cc: john.garry@huawei.com, jack@suse.cz Subject: [PATCH v3 04/14] blk-mq: Fix potential io hung for shared sbitmap per tagset Date: Wed, 11 Jan 2023 21:01:49 +0800 Message-Id: <20230111130159.3741753-5-shikemeng@huaweicloud.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20230111130159.3741753-1-shikemeng@huaweicloud.com> References: <20230111130159.3741753-1-shikemeng@huaweicloud.com> MIME-Version: 1.0 X-CM-TRANSID: cCh0CgDX9S8fQ75jGl2gBQ--.10280S6 X-Coremail-Antispam: 1UD129KBjvJXoW7CFW7tFy5CFyfXr4Duw1ftFb_yoW8AF48pr WrtF1UKrsaqr1vvFW7Xa17GF1Fkr4kKwn3J393uwsIv3y5Kr1xJFW8KayfJF10vFZ3ArW7 Za15tFyUZrn5X37anT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUB2b4IE77IF4wAFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k2 6cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M280x2IEY4vEnII2IxkI6r1a6r45M2 8IrcIa0xkI8VA2jI8067AKxVWUAVCq3wA2048vs2IY020Ec7CjxVAFwI0_Xr0E3s1l8cAv FVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28EF7xvwVC0I7IYx2IY67AKxVWDJVCq3w A2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8Jr0_Cr1UM28EF7xvwVC2z280aVAFwI0_GcCE 3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0DM2AIxVAIcxkEcVAq07x20xvEncxIr2 1l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjxv20xvE14v26r106r15McIj6I8E87Iv 67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xvr2IYc2Ij64vIr41l42xK82IYc2 Ij64vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4xG67AKxVWUJVWUGwC20s02 6x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r1q6r43MIIYrxkI7VAKI48JMIIF0x vE2Ix0cI8IcVAFwI0_Jr0_JF4lIxAIcVC0I7IYx2IY6xkF7I0E14v26r4j6F4UMIIF0xvE 42xK8VAvwI8IcIk0rVWUJVWUCwCI42IY6I8E87Iv67AKxVWUJVW8JwCI42IY6I8E87Iv6x kF7I0E14v26r4j6r4UJbIYCTnIWIevJa73UjIFyTuYvjxUxD7aUUUUU X-CM-SenderInfo: 5vklyvpphqwq5kxd4v5lfo033gof0z/ X-CFilter-Loop: Reflected X-Spam-Status: No, score=0.0 required=5.0 tests=BAYES_00,DATE_IN_FUTURE_06_12, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754701223127754372?= X-GMAIL-MSGID: =?utf-8?q?1754701223127754372?= Commit f906a6a0f4268 ("blk-mq: improve tag waiting setup for non-shared tags") mark restart for unshared tags for improvement. At that time, tags is only shared betweens queues and we can check if tags is shared by test BLK_MQ_F_TAG_SHARED. Afterwards, commit 32bc15afed04b ("blk-mq: Facilitate a shared sbitmap per tagset") enabled tags share betweens hctxs inside a queue. We only mark restart for shared hctxs inside a queue and may cause io hung if there is no tag currently allocated by hctxs going to be marked restart. Wait on sbitmap_queue instead of mark restart for shared hctxs case to fix this. Fixes: 32bc15afed04 ("blk-mq: Facilitate a shared sbitmap per tagset") Signed-off-by: Kemeng Shi --- block/blk-mq.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/block/blk-mq.c b/block/blk-mq.c index de0e0d70cba2..2bfe83f2bcca 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -1831,7 +1831,8 @@ static bool blk_mq_mark_tag_wait(struct blk_mq_hw_ctx *hctx, wait_queue_entry_t *wait; bool ret; - if (!(hctx->flags & BLK_MQ_F_TAG_QUEUE_SHARED)) { + if (!(hctx->flags & BLK_MQ_F_TAG_QUEUE_SHARED) && + !(blk_mq_is_shared_tags(hctx->flags))) { blk_mq_sched_mark_restart_hctx(hctx); /* @@ -2101,7 +2102,8 @@ bool blk_mq_dispatch_rq_list(struct blk_mq_hw_ctx *hctx, struct list_head *list, bool needs_restart; /* For non-shared tags, the RESTART check will suffice */ bool no_tag = prep == PREP_DISPATCH_NO_TAG && - (hctx->flags & BLK_MQ_F_TAG_QUEUE_SHARED); + ((hctx->flags & BLK_MQ_F_TAG_QUEUE_SHARED) || + blk_mq_is_shared_tags(hctx->flags)); if (nr_budgets) blk_mq_release_budgets(q, list); From patchwork Wed Jan 11 13:01:50 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kemeng Shi X-Patchwork-Id: 41742 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp3131692wrt; Tue, 10 Jan 2023 21:04:44 -0800 (PST) X-Google-Smtp-Source: AMrXdXvN77RMpwiAg/UD4ZOo4YlXi4VpB0MAdMdo4wucsxHFevLiewVRJ3eh9NGZs636QhLP4wt7 X-Received: by 2002:a17:903:2652:b0:192:8e0a:16b with SMTP id je18-20020a170903265200b001928e0a016bmr49318185plb.14.1673413483994; Tue, 10 Jan 2023 21:04:43 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673413483; cv=none; d=google.com; s=arc-20160816; b=Nn+prUWyHL2+nCRgv+K4Zqqg5mr30UtTTMypJTR22IXIp1yokyHc/jI7QtuR0ZVqQ8 uAWLdp97PyDxCbQkYizA2Qr/1NAXV5ioorbFJZWWEUtkS7XWwfI6tutF2weI+kq2C4Gp SnUMkSVevLpvrDLVmsLmR9VbIzL2QBgk1hs6ptB0WEFQnXPXTmblDqmRpIKepIx3QQpq JSGu348LOIRrOUCdGjyxcIk/0Xwh2iO6gO5/bcI60kYxqaDYHhbUkvlR3sbvKXZ1E82g Rz5nex0UNXx7xvVddanqRzxvfrz6zMEeXs0XVSx6tNALAMC/A7BAtIj5zpU6ZFGaZRnR 0acA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=WvZ0dICnE0gewjcovSek9M/bgPlV8QOMj94zXLaiQXA=; b=NOLVRHUuDLeWi7zJb0Oi+Pa316xVEXvjqtio4ax7WBQfrov989rf0hKy6d3SsfBN+M KNkULip3cctaWUcf29hS23jpZq1EYhsi5BmAvEtbue64yP/xUo4MlZPh1z+hl51e5Cz7 kp/NE7I7mt5OPEo94oyYa/mT3rN7jRzEPDEb3BypYRVF8/kAQtFLADoxCIe5mjenP4qf uPhZziCfv/Rilp6LwBm9E+hzWfyZWmr5OoqUpch3kqFo1l8lkE4Fi92Ow72NEHZgvkao ujgX0TcjPWpa2XmDHokNEO7SZnLOljcKje0vxVxw4YabyoEdgvuSKle/wZAwMulJIjKn 59LQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id c6-20020a170902c1c600b00192f4b0a9e1si12598061plc.20.2023.01.10.21.04.31; Tue, 10 Jan 2023 21:04:43 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235631AbjAKFDy (ORCPT + 99 others); Wed, 11 Jan 2023 00:03:54 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48380 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233598AbjAKFDe (ORCPT ); Wed, 11 Jan 2023 00:03:34 -0500 Received: from dggsgout12.his.huawei.com (dggsgout12.his.huawei.com [45.249.212.56]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DA8A5D100; Tue, 10 Jan 2023 21:03:33 -0800 (PST) Received: from mail02.huawei.com (unknown [172.30.67.153]) by dggsgout12.his.huawei.com (SkyGuard) with ESMTP id 4NsFv340gHz4f3s6m; Wed, 11 Jan 2023 13:03:27 +0800 (CST) Received: from huaweicloud.com (unknown [10.175.124.27]) by APP1 (Coremail) with SMTP id cCh0CgDX9S8fQ75jGl2gBQ--.10280S7; Wed, 11 Jan 2023 13:03:30 +0800 (CST) From: Kemeng Shi To: hch@lst.de, axboe@kernel.dk, dwagner@suse.de, hare@suse.de, ming.lei@redhat.com, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org Cc: john.garry@huawei.com, jack@suse.cz Subject: [PATCH v3 05/14] blk-mq: remove unnecessary list_empty check in blk_mq_try_issue_list_directly Date: Wed, 11 Jan 2023 21:01:50 +0800 Message-Id: <20230111130159.3741753-6-shikemeng@huaweicloud.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20230111130159.3741753-1-shikemeng@huaweicloud.com> References: <20230111130159.3741753-1-shikemeng@huaweicloud.com> MIME-Version: 1.0 X-CM-TRANSID: cCh0CgDX9S8fQ75jGl2gBQ--.10280S7 X-Coremail-Antispam: 1UD129KBjvdXoWrKr1xWry5Kw1Utw48Ww18uFg_yoWDArX_uF y0yw1kXayDJF17Ar4I93W0yFn8KryDWr1fXFZ3KFy5GFyfXFn8Was5KF4rZ3y7Gay7K34a 9r1rXF9Fyr10gjkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT 9fnUUIcSsGvfJTRUUUbSxYFVCjjxCrM7AC8VAFwI0_Wr0E3s1l1xkIjI8I6I8E6xAIw20E Y4v20xvaj40_Wr0E3s1l1IIY67AEw4v_Jr0_Jr4l87I20VAvwVAaII0Ic2I_JFv_Gryl82 xGYIkIc2x26280x7IE14v26r126s0DM28IrcIa0xkI8VCY1x0267AKxVW5JVCq3wA2ocxC 64kIII0Yj41l84x0c7CEw4AK67xGY2AK021l84ACjcxK6xIIjxv20xvE14v26w1j6s0DM2 8EF7xvwVC0I7IYx2IY6xkF7I0E14v26r4UJVWxJr1l84ACjcxK6I8E87Iv67AKxVW0oVCq 3wA2z4x0Y4vEx4A2jsIEc7CjxVAFwI0_GcCE3s1le2I262IYc4CY6c8Ij28IcVAaY2xG8w Aqx4xG64xvF2IEw4CE5I8CrVC2j2WlYx0E2Ix0cI8IcVAFwI0_JrI_JrylYx0Ex4A2jsIE 14v26r1j6r4UMcvjeVCFs4IE7xkEbVWUJVW8JwACjcxG0xvY0x0EwIxGrwCF04k20xvY0x 0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F40E14v26r1j6r18MI8I3I0E 7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_Jw0_GFylIxkGc2Ij64vIr41lIxAIcV C0I7IYx2IY67AKxVWUCVW8JwCI42IY6xIIjxv20xvEc7CjxVAFwI0_Cr0_Gr1UMIIF0xvE 42xK8VAvwI8IcIk0rVWUJVWUCwCI42IY6I8E87Iv67AKxVWUJVW8JwCI42IY6I8E87Iv6x kF7I0E14v26r4j6r4UJbIYCTnIWIevJa73UjIFyTuYvjxUxD7aUUUUU X-CM-SenderInfo: 5vklyvpphqwq5kxd4v5lfo033gof0z/ X-CFilter-Loop: Reflected X-Spam-Status: No, score=0.0 required=5.0 tests=BAYES_00,DATE_IN_FUTURE_06_12, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754701216915530089?= X-GMAIL-MSGID: =?utf-8?q?1754701216915530089?= We only break the list walk if we get 'BLK_STS_*RESOURCE'. We also count errors for 'BLK_STS_*RESOURCE' error. If list is not empty, errors will always be non-zero. So we can remove unnecessary list_empty check. This will remove redundant list_empty check for case that error happened at sending last request in list. Reviewed-by: Christoph Hellwig Signed-off-by: Kemeng Shi --- block/blk-mq.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/block/blk-mq.c b/block/blk-mq.c index 2bfe83f2bcca..ca2be137d6db 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -2839,8 +2839,7 @@ void blk_mq_try_issue_list_directly(struct blk_mq_hw_ctx *hctx, * the driver there was more coming, but that turned out to * be a lie. */ - if ((!list_empty(list) || errors) && - hctx->queue->mq_ops->commit_rqs && queued) + if (errors && hctx->queue->mq_ops->commit_rqs && queued) hctx->queue->mq_ops->commit_rqs(hctx); } From patchwork Wed Jan 11 13:01:51 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kemeng Shi X-Patchwork-Id: 41749 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp3132051wrt; Tue, 10 Jan 2023 21:06:02 -0800 (PST) X-Google-Smtp-Source: AMrXdXs1ueKZhsfhxDjf9xrpfB/6k+wMVFg+j/xb2vXI3e4ZAoeheAN53GD/L7EvKSkZriyqwi/b X-Received: by 2002:a17:90b:a12:b0:227:1b37:50c9 with SMTP id gg18-20020a17090b0a1200b002271b3750c9mr8189174pjb.5.1673413562481; Tue, 10 Jan 2023 21:06:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673413562; cv=none; d=google.com; s=arc-20160816; b=d3AZaLEpK76LyTL1CR3DBZbwbwia88Ysy3xrwd2BJ5VuEwRRDeTvI3fjbCDI5m1VFO qoFfUj1gdyrll/ict4P7oxziLaK8nwbdleRvY/j6g9OE9GKUzm7IMYpbbuCPDPy4QJYO QKer/CWfZTYHVhRRK9uEg7TdKeO4TsZXgCNTzp/7bcpjPd4FxJyv2S0pRgZiL+/fr5Nc kNSzS7lJqAQZqnVKJ42okgCQ2zxXUQ3Cy2biRPvGggSRG8gElU/WadPgZNuZoQpT01VX yPLVn261Pay0P6FSsMf/8FfV3hBUxbrew3dmnFzo2upiXqfVnGOypPosyNVNXkPe8GZY 6QUg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=lwaVinEdkq0HYm/MQ3KFpWM93C0nL/H5/obP2ahVM0Q=; b=iL0Dpdxx0Itpr8bdulRWHgGV23GfYt9EE9hSCvFnC2ADjTuctq9PQ183ORLnoxF769 VMNl6AeTNt1Owg0PdMqktSoclRoWtvdwgUdoMWTEt+t0yV971adbRBT3FjVZPaSTJFJS +jf4j9JpCF/kNC3UZvwFECjGPm82WNMo7RzFt9R0UNp/zp65iiKEa2FtsCGTvwiCBmWO z3SLg6VM9Bd6i9nG5qY8dR4y0XRzAGVUijiMRBkn58wFuvp8J2HK4cwCNu6Vo9UKSz5H b8YqDbFirtGysUefVBI3EZAriiT2ryKE8rlSOeCu6I5MiSSTrC9GQ+jT6BydzJ3zySY0 xWEQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 13-20020a17090a190d00b00219ce921f62si16795834pjg.174.2023.01.10.21.05.50; Tue, 10 Jan 2023 21:06:02 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235912AbjAKFEL (ORCPT + 99 others); Wed, 11 Jan 2023 00:04:11 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48406 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234853AbjAKFDg (ORCPT ); Wed, 11 Jan 2023 00:03:36 -0500 Received: from dggsgout11.his.huawei.com (dggsgout11.his.huawei.com [45.249.212.51]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DD3E1DED4; Tue, 10 Jan 2023 21:03:34 -0800 (PST) Received: from mail02.huawei.com (unknown [172.30.67.153]) by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4NsFv40svsz4f3jpr; Wed, 11 Jan 2023 13:03:28 +0800 (CST) Received: from huaweicloud.com (unknown [10.175.124.27]) by APP1 (Coremail) with SMTP id cCh0CgDX9S8fQ75jGl2gBQ--.10280S8; Wed, 11 Jan 2023 13:03:30 +0800 (CST) From: Kemeng Shi To: hch@lst.de, axboe@kernel.dk, dwagner@suse.de, hare@suse.de, ming.lei@redhat.com, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org Cc: john.garry@huawei.com, jack@suse.cz Subject: [PATCH v3 06/14] blk-mq: remove unncessary from_schedule parameter in blk_mq_plug_issue_direct Date: Wed, 11 Jan 2023 21:01:51 +0800 Message-Id: <20230111130159.3741753-7-shikemeng@huaweicloud.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20230111130159.3741753-1-shikemeng@huaweicloud.com> References: <20230111130159.3741753-1-shikemeng@huaweicloud.com> MIME-Version: 1.0 X-CM-TRANSID: cCh0CgDX9S8fQ75jGl2gBQ--.10280S8 X-Coremail-Antispam: 1UD129KBjvJXoWxur4kCFWxKr1DWFyUAryfCrg_yoW5AF4DpF WUXa12yrWrJrZ7Xay8JanrZFyakrs3KrWagryft34fXr45K34fXw45try3ArWIyrs5Ar43 ur4Yg343Jr15GwUanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUBIb4IE77IF4wAFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k2 6cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M280x2IEY4vEnII2IxkI6r1a6r45M2 8IrcIa0xkI8VA2jI8067AKxVWUAVCq3wA2048vs2IY020Ec7CjxVAFwI0_Xr0E3s1l8cAv FVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28EF7xvwVC0I7IYx2IY67AKxVWDJVCq3w A2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8Jr0_Cr1UM28EF7xvwVC2z280aVAFwI0_GcCE 3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0DM2AIxVAIcxkEcVAq07x20xvEncxIr2 1l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjxv20xvE14v26r106r15McIj6I8E87Iv 67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xvr2IYc2Ij64vIr41l42xK82IYc2 Ij64vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4xG67AKxVWUJVWUGwC20s02 6x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r1q6r43MIIYrxkI7VAKI48JMIIF0x vE2Ix0cI8IcVAFwI0_JFI_Gr1lIxAIcVC0I7IYx2IY6xkF7I0E14v26F4j6r4UJwCI42IY 6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr0_Gr1lIxAIcVC2z280aV CY1x0267AKxVW8JVW8JrUvcSsGvfC2KfnxnUUI43ZEXa7IU058n7UUUUU== X-CM-SenderInfo: 5vklyvpphqwq5kxd4v5lfo033gof0z/ X-CFilter-Loop: Reflected X-Spam-Status: No, score=0.0 required=5.0 tests=BAYES_00,DATE_IN_FUTURE_06_12, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754701299611914928?= X-GMAIL-MSGID: =?utf-8?q?1754701299611914928?= Function blk_mq_plug_issue_direct tries to issue batch requests in plug list to driver directly. We will only issue plug request to driver if we are not from scheduler, so from_scheduler parameter of blk_mq_plug_issue_direct is always false, so as the blk_mq_commit_rqs which is only called in blk_mq_plug_issue_direct. Remove unncessary from_scheduler of blk_mq_plug_issue_direct and blk_mq_commit_rqs. Reviewed-by: Christoph Hellwig Signed-off-by: Kemeng Shi --- block/blk-mq.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/block/blk-mq.c b/block/blk-mq.c index ca2be137d6db..c6cc3feb3b84 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -2555,11 +2555,10 @@ void blk_mq_insert_requests(struct blk_mq_hw_ctx *hctx, struct blk_mq_ctx *ctx, spin_unlock(&ctx->lock); } -static void blk_mq_commit_rqs(struct blk_mq_hw_ctx *hctx, int *queued, - bool from_schedule) +static void blk_mq_commit_rqs(struct blk_mq_hw_ctx *hctx, int *queued) { if (hctx->queue->mq_ops->commit_rqs) { - trace_block_unplug(hctx->queue, *queued, !from_schedule); + trace_block_unplug(hctx->queue, *queued, true); hctx->queue->mq_ops->commit_rqs(hctx); } *queued = 0; @@ -2688,7 +2687,7 @@ static blk_status_t blk_mq_request_issue_directly(struct request *rq, bool last) return __blk_mq_try_issue_directly(rq->mq_hctx, rq, true, last); } -static void blk_mq_plug_issue_direct(struct blk_plug *plug, bool from_schedule) +static void blk_mq_plug_issue_direct(struct blk_plug *plug) { struct blk_mq_hw_ctx *hctx = NULL; struct request *rq; @@ -2701,7 +2700,7 @@ static void blk_mq_plug_issue_direct(struct blk_plug *plug, bool from_schedule) if (hctx != rq->mq_hctx) { if (hctx) - blk_mq_commit_rqs(hctx, &queued, from_schedule); + blk_mq_commit_rqs(hctx, &queued); hctx = rq->mq_hctx; } @@ -2713,7 +2712,7 @@ static void blk_mq_plug_issue_direct(struct blk_plug *plug, bool from_schedule) case BLK_STS_RESOURCE: case BLK_STS_DEV_RESOURCE: blk_mq_request_bypass_insert(rq, false, true); - blk_mq_commit_rqs(hctx, &queued, from_schedule); + blk_mq_commit_rqs(hctx, &queued); return; default: blk_mq_end_request(rq, ret); @@ -2727,7 +2726,7 @@ static void blk_mq_plug_issue_direct(struct blk_plug *plug, bool from_schedule) * there was more coming, but that turned out to be a lie. */ if (errors) - blk_mq_commit_rqs(hctx, &queued, from_schedule); + blk_mq_commit_rqs(hctx, &queued); } static void __blk_mq_flush_plug_list(struct request_queue *q, @@ -2798,7 +2797,7 @@ void blk_mq_flush_plug_list(struct blk_plug *plug, bool from_schedule) } blk_mq_run_dispatch_ops(q, - blk_mq_plug_issue_direct(plug, false)); + blk_mq_plug_issue_direct(plug)); if (rq_list_empty(plug->mq_list)) return; } From patchwork Wed Jan 11 13:01:52 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kemeng Shi X-Patchwork-Id: 41745 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp3131916wrt; Tue, 10 Jan 2023 21:05:31 -0800 (PST) X-Google-Smtp-Source: AMrXdXszKOj0rkEPlGxzQkUCOIYec/z7G2f5MaRBf5UpSjKswDPR9YpccQPsrHCTupZLzVMKkRXh X-Received: by 2002:a05:6a20:8c29:b0:a9:f48e:aea0 with SMTP id j41-20020a056a208c2900b000a9f48eaea0mr1400016pzh.9.1673413531666; Tue, 10 Jan 2023 21:05:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673413531; cv=none; d=google.com; s=arc-20160816; b=op1kxJNRFRdA+Y4uxDmqmpenKEFO9p8t5YLpKV76LlIh0ac2dvhr0oDJPZ2UxiDZ2z Zn7EJQaVwyWdP0ddZbQHFLRpg60KNcCy73iGmp3VkMdq7S5Rssib4lmj8wyT5PBynWk1 DuociYhMCbXs/hspBVN9q2MnOzTyXZ3jLHcwfIt1J8zyUsElwicPjKgp0Vzoh5+n4e72 IoT8phGaaqoolQe+dr6AxvEi4cL4tSir9Ky3UwiaDKfzBpUQWDpP0JcHpuBAhWfDuDbY ASZkCh40cETmejn0tSEeNSLrPjDazGwYTesoTcu4uT2G+XsV2+z7VCcQTwSrWagUkts9 Rvtw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=lke+rbR5v65F8p/nEvQgsdu7NVnYC7e4hLsV/07ghAA=; b=DNP6mVSEG6HLg5Q4vErBD6OH2UDGxSa4DWN/KIN+hbhbC0kT/nbnf7L3TU8XRf0c/s XSNnD8bLeyfAGkgrwsG1Gdjd8BQGc8mJFUiLOuvasmbEFF6BHrjyXtqn5Z1+sWCwMWTf ehIdFyaqhAz5xkkya+6VjVmam0pgIg+vkT0wlYkyLnTwC40faLR1PzGZ/XIz1Z9LTaNc BKMNO2S8j7pl6vaRzAVHm+lwE0hjj5lAVeI7bEaw8FQoBhd17RM/PmlEkCLB+oXhIJZC j4OiU6bLk33DY6JiZeQGaxEJcLKcEET3fmLkUrGKvcyx6YpC80PlqHWhncThQI9EBcQZ lz8w== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id x24-20020a63db58000000b0047888d9f3aesi13528068pgi.547.2023.01.10.21.05.19; Tue, 10 Jan 2023 21:05:31 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229581AbjAKFEV (ORCPT + 99 others); Wed, 11 Jan 2023 00:04:21 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48412 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234948AbjAKFDg (ORCPT ); Wed, 11 Jan 2023 00:03:36 -0500 Received: from dggsgout11.his.huawei.com (dggsgout11.his.huawei.com [45.249.212.51]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 49CE9DF2B; Tue, 10 Jan 2023 21:03:35 -0800 (PST) Received: from mail02.huawei.com (unknown [172.30.67.153]) by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4NsFv43zZSz4f3wQd; Wed, 11 Jan 2023 13:03:28 +0800 (CST) Received: from huaweicloud.com (unknown [10.175.124.27]) by APP1 (Coremail) with SMTP id cCh0CgDX9S8fQ75jGl2gBQ--.10280S9; Wed, 11 Jan 2023 13:03:30 +0800 (CST) From: Kemeng Shi To: hch@lst.de, axboe@kernel.dk, dwagner@suse.de, hare@suse.de, ming.lei@redhat.com, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org Cc: john.garry@huawei.com, jack@suse.cz Subject: [PATCH v3 07/14] blk-mq: make blk_mq_commit_rqs a general function for all commits Date: Wed, 11 Jan 2023 21:01:52 +0800 Message-Id: <20230111130159.3741753-8-shikemeng@huaweicloud.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20230111130159.3741753-1-shikemeng@huaweicloud.com> References: <20230111130159.3741753-1-shikemeng@huaweicloud.com> MIME-Version: 1.0 X-CM-TRANSID: cCh0CgDX9S8fQ75jGl2gBQ--.10280S9 X-Coremail-Antispam: 1UD129KBjvJXoWxWFyxZw4kWryfCF18AFyUAwb_yoW5ur4kpF 43Ja1Yy3yrJrsFvas5JanrZF13Gws5KrWUuryftw13XrWFgryxWw4ftryfJFWxtr4kAF13 ZrW5ur9xGF13GwUanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUBIb4IE77IF4wAFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k2 6cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M280x2IEY4vEnII2IxkI6r1a6r45M2 8IrcIa0xkI8VA2jI8067AKxVWUAVCq3wA2048vs2IY020Ec7CjxVAFwI0_Xr0E3s1l8cAv FVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28EF7xvwVC0I7IYx2IY67AKxVWDJVCq3w A2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8Jr0_Cr1UM28EF7xvwVC2z280aVAFwI0_GcCE 3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0DM2AIxVAIcxkEcVAq07x20xvEncxIr2 1l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjxv20xvE14v26r106r15McIj6I8E87Iv 67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xvr2IYc2Ij64vIr41l42xK82IYc2 Ij64vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4xG67AKxVWUJVWUGwC20s02 6x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r1q6r43MIIYrxkI7VAKI48JMIIF0x vE2Ix0cI8IcVAFwI0_JFI_Gr1lIxAIcVC0I7IYx2IY6xkF7I0E14v26F4j6r4UJwCI42IY 6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr0_Gr1lIxAIcVC2z280aV CY1x0267AKxVW8JVW8JrUvcSsGvfC2KfnxnUUI43ZEXa7IU058n7UUUUU== X-CM-SenderInfo: 5vklyvpphqwq5kxd4v5lfo033gof0z/ X-CFilter-Loop: Reflected X-Spam-Status: No, score=0.0 required=5.0 tests=BAYES_00,DATE_IN_FUTURE_06_12, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754701267326921338?= X-GMAIL-MSGID: =?utf-8?q?1754701267326921338?= 1. rename orignal blk_mq_commit_rqs to blk_mq_plug_commit_rqs as trace_block_unplug is only needed when we dispatch request from plug list. We need a commit_rqs wrapper for this case. Besides, this patch adds queued check and only commits request if any request was queued to keep commit behavior consistent and remove unnecessary commit. 2. add new blk_mq_commit_rqs for general commits. Current blk_mq_commit_rqs will not clear queued as queued clearing is not wanted generally. 3. document rule for unusual cases which need explicit commit_rqs. Suggested-by: Christoph Hellwig Signed-off-by: Kemeng Shi --- block/blk-mq.c | 38 ++++++++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/block/blk-mq.c b/block/blk-mq.c index c6cc3feb3b84..98f6003474f2 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -2007,6 +2007,29 @@ static void blk_mq_release_budgets(struct request_queue *q, } } +/* blk_mq_commit_rqs and blk_mq_plug_commit_rqs notify driver using + * bd->last that there is no more requests. (See comment in struct + * blk_mq_ops for commit_rqs for details) + * Attention, we should explicitly call this in unusual cases: + * 1) did not queue everything initially scheduled to queue + * 2) the last attempt to queue a request failed + */ +static void blk_mq_commit_rqs(struct blk_mq_hw_ctx *hctx, int queued) +{ + if (hctx->queue->mq_ops->commit_rqs && queued) { + hctx->queue->mq_ops->commit_rqs(hctx); + } +} + +static void blk_mq_plug_commit_rqs(struct blk_mq_hw_ctx *hctx, int *queued) +{ + if (hctx->queue->mq_ops->commit_rqs && *queued) { + trace_block_unplug(hctx->queue, *queued, true); + hctx->queue->mq_ops->commit_rqs(hctx); + } + *queued = 0; +} + /* * Returns true if we did some work AND can potentially do more. */ @@ -2555,15 +2578,6 @@ void blk_mq_insert_requests(struct blk_mq_hw_ctx *hctx, struct blk_mq_ctx *ctx, spin_unlock(&ctx->lock); } -static void blk_mq_commit_rqs(struct blk_mq_hw_ctx *hctx, int *queued) -{ - if (hctx->queue->mq_ops->commit_rqs) { - trace_block_unplug(hctx->queue, *queued, true); - hctx->queue->mq_ops->commit_rqs(hctx); - } - *queued = 0; -} - static void blk_mq_bio_to_request(struct request *rq, struct bio *bio, unsigned int nr_segs) { @@ -2700,7 +2714,7 @@ static void blk_mq_plug_issue_direct(struct blk_plug *plug) if (hctx != rq->mq_hctx) { if (hctx) - blk_mq_commit_rqs(hctx, &queued); + blk_mq_plug_commit_rqs(hctx, &queued); hctx = rq->mq_hctx; } @@ -2712,7 +2726,7 @@ static void blk_mq_plug_issue_direct(struct blk_plug *plug) case BLK_STS_RESOURCE: case BLK_STS_DEV_RESOURCE: blk_mq_request_bypass_insert(rq, false, true); - blk_mq_commit_rqs(hctx, &queued); + blk_mq_plug_commit_rqs(hctx, &queued); return; default: blk_mq_end_request(rq, ret); @@ -2726,7 +2740,7 @@ static void blk_mq_plug_issue_direct(struct blk_plug *plug) * there was more coming, but that turned out to be a lie. */ if (errors) - blk_mq_commit_rqs(hctx, &queued); + blk_mq_plug_commit_rqs(hctx, &queued); } static void __blk_mq_flush_plug_list(struct request_queue *q, From patchwork Wed Jan 11 13:01:53 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kemeng Shi X-Patchwork-Id: 41746 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp3131924wrt; Tue, 10 Jan 2023 21:05:36 -0800 (PST) X-Google-Smtp-Source: AMrXdXsavbRARtSetUXSbxqiMgncvBbMswEI0y3vNkZCabnTQdl1tYPyEqm+hwoCuAHr9tJ4MR8q X-Received: by 2002:a17:902:b608:b0:192:babc:20df with SMTP id b8-20020a170902b60800b00192babc20dfmr36659881pls.58.1673413535742; Tue, 10 Jan 2023 21:05:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673413535; cv=none; d=google.com; s=arc-20160816; b=pJlWgH76JkQFg6YFSJW0d8UMQifG5VUQ/HnYkJr1vIxJzlE4cGSiChQc+KCNoJbLg6 l6faH3o+sfMg6/uRZODYL0/9p+pSmdd8tRw8+r3vsdyK5j+MaEBiGdFVOSulm0OrFqmd jhG6bsCvxcaQ75LEkUpDRt588VohtplW/LAbmWSk8oIbniyTOTSmWduSuIAhMY1Pdc/D xZMmpxzGtA/+u3+InrQUt3jJ+SI810ikBtorvGq7BAfjfqmjXaRpyaP0dmO/tMF2rb6r r/A4Anuw+1lA8Br+ZMFsy7AibDkIqXlOls53wSjkaJr8dAHAk5/rD3Gbn9sARp4xuod+ zdmA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=KYi+U+xzEk4F73XdYTsu8pQ07+wrjgt4M3x44Oe6bHo=; b=gqc7QnF1kyCK227iHGn8uXX/2YEjf48J/u7YAsFdKs67DO5QGuobNKeXkaRTTuhEJA u+mksbjv0wY8lba9O/GC1uX6b0E8Io1CVDtitmzpjsaBAv4/ay1oSNhp/CT0ebxCdWTN YqSRSDVRAJF6JJOyMWXRh1tzO/Tm1k8I7yHBohKFAtKbgleSDfQiB5+GJJa491W0IbzY XufofI3tZnDkSQwlUtM1uX4CXbipkO91TIzaJv6erUaxjZCLs3hQKhYWQr+OVrVMODnN z/ieO2yhxNXhyRh39tRv/hSbXvJKkDbcxJ8UU9Xw6rLy5Di378L243AuMYIduVN3Rf/z NHLA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id b6-20020a170903228600b001897a8b5367si15053754plh.56.2023.01.10.21.05.23; Tue, 10 Jan 2023 21:05:35 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235817AbjAKFEG (ORCPT + 99 others); Wed, 11 Jan 2023 00:04:06 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48148 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234554AbjAKFDf (ORCPT ); Wed, 11 Jan 2023 00:03:35 -0500 Received: from dggsgout11.his.huawei.com (dggsgout11.his.huawei.com [45.249.212.51]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 78DCADE8D; Tue, 10 Jan 2023 21:03:34 -0800 (PST) Received: from mail02.huawei.com (unknown [172.30.67.153]) by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4NsFv45ykCz4f3v4X; Wed, 11 Jan 2023 13:03:28 +0800 (CST) Received: from huaweicloud.com (unknown [10.175.124.27]) by APP1 (Coremail) with SMTP id cCh0CgDX9S8fQ75jGl2gBQ--.10280S10; Wed, 11 Jan 2023 13:03:31 +0800 (CST) From: Kemeng Shi To: hch@lst.de, axboe@kernel.dk, dwagner@suse.de, hare@suse.de, ming.lei@redhat.com, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org Cc: john.garry@huawei.com, jack@suse.cz Subject: [PATCH v3 08/14] blk-mq: remove unncessary error count and commit in blk_mq_plug_issue_direct Date: Wed, 11 Jan 2023 21:01:53 +0800 Message-Id: <20230111130159.3741753-9-shikemeng@huaweicloud.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20230111130159.3741753-1-shikemeng@huaweicloud.com> References: <20230111130159.3741753-1-shikemeng@huaweicloud.com> MIME-Version: 1.0 X-CM-TRANSID: cCh0CgDX9S8fQ75jGl2gBQ--.10280S10 X-Coremail-Antispam: 1UD129KBjvJXoW7uFyfJryDGFyUGF18Jry5urg_yoW8WrykpF W3GanIkrs2qr48Za48JayxA3WUJrs5KryUArZ0kw1ag3yDGr4Sqw4rtryxWry0yrZ3Aa13 Zrn8W34DJF13Ww7anT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUBIb4IE77IF4wAFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k2 6cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M280x2IEY4vEnII2IxkI6r1a6r45M2 8IrcIa0xkI8VA2jI8067AKxVWUAVCq3wA2048vs2IY020Ec7CjxVAFwI0_Xr0E3s1l8cAv FVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28EF7xvwVC0I7IYx2IY67AKxVWDJVCq3w A2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8Jr0_Cr1UM28EF7xvwVC2z280aVAFwI0_GcCE 3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0DM2AIxVAIcxkEcVAq07x20xvEncxIr2 1l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjxv20xvE14v26r106r15McIj6I8E87Iv 67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xvr2IYc2Ij64vIr41l42xK82IYc2 Ij64vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4xG67AKxVWUJVWUGwC20s02 6x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r1q6r43MIIYrxkI7VAKI48JMIIF0x vE2Ix0cI8IcVAFwI0_JFI_Gr1lIxAIcVC0I7IYx2IY6xkF7I0E14v26F4j6r4UJwCI42IY 6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr0_Gr1lIxAIcVC2z280aV CY1x0267AKxVW8JVW8JrUvcSsGvfC2KfnxnUUI43ZEXa7IU058n7UUUUU== X-CM-SenderInfo: 5vklyvpphqwq5kxd4v5lfo033gof0z/ X-CFilter-Loop: Reflected X-Spam-Status: No, score=0.0 required=5.0 tests=BAYES_00,DATE_IN_FUTURE_06_12, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754701271565141594?= X-GMAIL-MSGID: =?utf-8?q?1754701271565141594?= We need only to explicitly commit in two error cases: -did not queue everything initially scheduled to queue -the last attempt to queue a request failed (see comment of blk_mq_commit_rqs for more details). Both cases can be checked with ret of last request which breaks list walk. Remove unnecessary error count and unnecessary commit triggered by error which is not covered by cases described above. Signed-off-by: Kemeng Shi Reviewed-by: Christoph Hellwig --- block/blk-mq.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/block/blk-mq.c b/block/blk-mq.c index 98f6003474f2..c6c84f44c7a6 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -2706,11 +2706,10 @@ static void blk_mq_plug_issue_direct(struct blk_plug *plug) struct blk_mq_hw_ctx *hctx = NULL; struct request *rq; int queued = 0; - int errors = 0; + blk_status_t ret; while ((rq = rq_list_pop(&plug->mq_list))) { bool last = rq_list_empty(plug->mq_list); - blk_status_t ret; if (hctx != rq->mq_hctx) { if (hctx) @@ -2726,20 +2725,15 @@ static void blk_mq_plug_issue_direct(struct blk_plug *plug) case BLK_STS_RESOURCE: case BLK_STS_DEV_RESOURCE: blk_mq_request_bypass_insert(rq, false, true); - blk_mq_plug_commit_rqs(hctx, &queued); - return; + goto out; default: blk_mq_end_request(rq, ret); - errors++; break; } } - /* - * If we didn't flush the entire list, we could have told the driver - * there was more coming, but that turned out to be a lie. - */ - if (errors) +out: + if (ret != BLK_STS_OK) blk_mq_plug_commit_rqs(hctx, &queued); } From patchwork Wed Jan 11 13:01:54 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kemeng Shi X-Patchwork-Id: 41752 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp3132256wrt; Tue, 10 Jan 2023 21:06:47 -0800 (PST) X-Google-Smtp-Source: AMrXdXuWQXiVTxtcNxdw8SvblN+kO7m9tg2rByVnyaUDUbMIWQ/kuEspUKefBy89NsNvyyVZ3ybZ X-Received: by 2002:a05:6a20:ba9d:b0:b6:1413:fff0 with SMTP id fb29-20020a056a20ba9d00b000b61413fff0mr4706472pzb.50.1673413606973; Tue, 10 Jan 2023 21:06:46 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673413606; cv=none; d=google.com; s=arc-20160816; b=y6ik1+T9NAYonNacvofu43h6lbGZ8Su1OiJumiZ0miz0I4iBwwNliXdFgrN/zLdslD I948aYNGATyhNPfpjotg9hCz0Uf1gUM/9y72EbpBlkOEdeBe5XgZYus7TuVDNOEy2CGW SDRXjxOpCDvmn8bgksNUuhqFZaTwx4jpYXQXHKwqN5JpBwV84B5vkChVddjdGwtu6ukh B5+ScNDs6fY6mN6UnB+Is+fA+gtSBayJJFaOvJZEbvxzwc8bviQGw9gbyxx4qGb4A3YW WD83lIb0ZPu/vEUTTF+M0oznXkjkMNk5VpR/0U66e2t/c2GYxV31kfxhsNijC6AZZq29 LkbA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=5lKKOzAfGgEzJecxdfnbHRSf68Ryps+dpoKkciUwHG0=; b=ETA6bI09Cojqr3PAz2WiUS3JPlaoTd2qAfszmKx9rlqSN2VWVlJgVrRjpsXIFKwlgy nWexunPDOiySKdV0WRWg48aFZwEWLWj7lvvhdYf6R535EB7jcZOMDAhKvEx3BqHBeGBe jqialjtprxZhjyE0YEa/RtBx5/Gniz4anWsvX9UzroWqqKnTAjEViClll8ImwcRWSArd Ob7PHi8WzYXcxfF5puBbb3muWxDivhY6mdi/0YJg7UkE6gPJcs/ouKob28jw6acxJIwC hbxUNCgADZafU5s6jNQPVu6Kbs8sVR9922zxEV0oXjOBE3EVaFE1NQgbFo+bEwLsdj8S sSrg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id b13-20020a631b0d000000b00479018c4634si13223654pgb.671.2023.01.10.21.06.34; Tue, 10 Jan 2023 21:06:46 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235765AbjAKFEg (ORCPT + 99 others); Wed, 11 Jan 2023 00:04:36 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48418 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235245AbjAKFDh (ORCPT ); Wed, 11 Jan 2023 00:03:37 -0500 Received: from dggsgout11.his.huawei.com (dggsgout11.his.huawei.com [45.249.212.51]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 163B9DF4B; Tue, 10 Jan 2023 21:03:36 -0800 (PST) Received: from mail02.huawei.com (unknown [172.30.67.153]) by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4NsFv52qnjz4f3v5L; Wed, 11 Jan 2023 13:03:29 +0800 (CST) Received: from huaweicloud.com (unknown [10.175.124.27]) by APP1 (Coremail) with SMTP id cCh0CgDX9S8fQ75jGl2gBQ--.10280S11; Wed, 11 Jan 2023 13:03:31 +0800 (CST) From: Kemeng Shi To: hch@lst.de, axboe@kernel.dk, dwagner@suse.de, hare@suse.de, ming.lei@redhat.com, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org Cc: john.garry@huawei.com, jack@suse.cz Subject: [PATCH v3 09/14] blk-mq: use blk_mq_commit_rqs helper in blk_mq_try_issue_list_directly Date: Wed, 11 Jan 2023 21:01:54 +0800 Message-Id: <20230111130159.3741753-10-shikemeng@huaweicloud.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20230111130159.3741753-1-shikemeng@huaweicloud.com> References: <20230111130159.3741753-1-shikemeng@huaweicloud.com> MIME-Version: 1.0 X-CM-TRANSID: cCh0CgDX9S8fQ75jGl2gBQ--.10280S11 X-Coremail-Antispam: 1UD129KBjvJXoW7uFyfJryDGFyUGF1UKr4fuFg_yoW8Aw1rpF W3Ganxtr4Sqr4xZFykAay7ZFy7Jrs8Kry7Xryakw1aqrWUCrW0gFsxtr1xXFyrtFWkAa13 XFyDWr98tF4UWwUanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUBIb4IE77IF4wAFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k2 6cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M280x2IEY4vEnII2IxkI6r1a6r45M2 8IrcIa0xkI8VA2jI8067AKxVWUAVCq3wA2048vs2IY020Ec7CjxVAFwI0_Xr0E3s1l8cAv FVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28EF7xvwVC0I7IYx2IY67AKxVWDJVCq3w A2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8Jr0_Cr1UM28EF7xvwVC2z280aVAFwI0_GcCE 3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0DM2AIxVAIcxkEcVAq07x20xvEncxIr2 1l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjxv20xvE14v26r106r15McIj6I8E87Iv 67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xvr2IYc2Ij64vIr41l42xK82IYc2 Ij64vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4xG67AKxVWUJVWUGwC20s02 6x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r1q6r43MIIYrxkI7VAKI48JMIIF0x vE2Ix0cI8IcVAFwI0_JFI_Gr1lIxAIcVC0I7IYx2IY6xkF7I0E14v26F4j6r4UJwCI42IY 6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr0_Gr1lIxAIcVC2z280aV CY1x0267AKxVW8JVW8JrUvcSsGvfC2KfnxnUUI43ZEXa7IU058n7UUUUU== X-CM-SenderInfo: 5vklyvpphqwq5kxd4v5lfo033gof0z/ X-CFilter-Loop: Reflected X-Spam-Status: No, score=0.0 required=5.0 tests=BAYES_00,DATE_IN_FUTURE_06_12, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754701346662887978?= X-GMAIL-MSGID: =?utf-8?q?1754701346662887978?= Call blk_mq_commit_rqs instead of access ->commit_rqs directly. As you can see in comment of blk_mq_commit_rqs, we only need explicitly call this in two cases: -did not queue everything initially scheduled to queue -the last attempt to queue a request failed Both cases can be checked with ret of last request which breaks list walk. Then we can remove unnecessary error count and unnecessary commit triggered by error besides cases described above. Signed-off-by: Kemeng Shi --- block/blk-mq.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/block/blk-mq.c b/block/blk-mq.c index c6c84f44c7a6..f45d81e20d9e 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -2819,17 +2819,15 @@ void blk_mq_try_issue_list_directly(struct blk_mq_hw_ctx *hctx, struct list_head *list) { int queued = 0; - int errors = 0; + blk_status_t ret; while (!list_empty(list)) { - blk_status_t ret; struct request *rq = list_first_entry(list, struct request, queuelist); list_del_init(&rq->queuelist); ret = blk_mq_request_issue_directly(rq, list_empty(list)); if (ret != BLK_STS_OK) { - errors++; if (ret == BLK_STS_RESOURCE || ret == BLK_STS_DEV_RESOURCE) { blk_mq_request_bypass_insert(rq, false, @@ -2841,13 +2839,8 @@ void blk_mq_try_issue_list_directly(struct blk_mq_hw_ctx *hctx, queued++; } - /* - * If we didn't flush the entire list, we could have told - * the driver there was more coming, but that turned out to - * be a lie. - */ - if (errors && hctx->queue->mq_ops->commit_rqs && queued) - hctx->queue->mq_ops->commit_rqs(hctx); + if (ret != BLK_STS_OK) + blk_mq_commit_rqs(hctx, queued); } static bool blk_mq_attempt_bio_merge(struct request_queue *q, From patchwork Wed Jan 11 13:01:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kemeng Shi X-Patchwork-Id: 41747 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp3131965wrt; Tue, 10 Jan 2023 21:05:43 -0800 (PST) X-Google-Smtp-Source: AMrXdXu/2P/0P+BEuPFtEXI9q9uRN+yfSzBtEuZzIk8Rjze4lFgQMg0kaynhhIvr1M524fabH8iC X-Received: by 2002:a17:90b:110a:b0:223:2001:4ee8 with SMTP id gi10-20020a17090b110a00b0022320014ee8mr73537228pjb.27.1673413543603; Tue, 10 Jan 2023 21:05:43 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673413543; cv=none; d=google.com; s=arc-20160816; b=OlPp2w3fHLhPh16GdHMUAhoN1ytwwtccx5TRG28iGJfnnT+UMNY7JqoXmlXSpgGB5e b30CPaOKWmhiy9i759ZVGN6IELeJPDRQPZghJX6UeCbqxaIL79OB3wJVLVc5dmff0seH 6Aqey0SJG2h6FQwAnfBxm/liaZmHGD0YwbeU1JQF4TNDmCCxRgKOEygJH67W1D6iMEFD pZCOOnNsgpgY8IvCh4h/MfLyZ4JHF/AbSCfUIKybfjG/oXzd2nCij6WLRDCOk8Kfu8LE QiNRWTMYXp/92XorozwUplUt/oiPUyQ2zlzrqB/Y5UrL40e4ymX58bfQpfMoSTrthP1L qdTg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=IH2uUCUSEje/S3iDkLwEDp+2NY0WtRVW30n5vCDCJmc=; b=bEZ+g3oaG2UJXXtF1PUF20i/Bamu3+UutxGwWPTVVAMHIaiOduDbWt1iR9VxgJL4am e6f/loVbDPP0dQQMQY/BzhsBVeh20ezlYt4UbLoBLIAYYNAj01wozzdhITgpv1V56ojJ 0EALRL3Bdw0ghad6cuS8VelaOY+hP+RXVI3pRvyFy1obhgUouH3SbgMukE7pfIZbl35i A4rBRLhfG1YZ/ofo8rz3t+dJisn1kwUgK2WlbTVKf4XTNADYY/IKpeDE0KvGEhBev+7d rJfmGU6icIg8eguJGwt94cr2JXSUCZgsB7Reovlmg6O9QxUV+JbIaRPy8Pu87vkV+i+n KTMA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id s16-20020a634510000000b00476d24ebb04si13851780pga.322.2023.01.10.21.05.30; Tue, 10 Jan 2023 21:05:43 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235865AbjAKFEH (ORCPT + 99 others); Wed, 11 Jan 2023 00:04:07 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48404 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234664AbjAKFDf (ORCPT ); Wed, 11 Jan 2023 00:03:35 -0500 Received: from dggsgout11.his.huawei.com (dggsgout11.his.huawei.com [45.249.212.51]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1A05FDF21; Tue, 10 Jan 2023 21:03:35 -0800 (PST) Received: from mail02.huawei.com (unknown [172.30.67.153]) by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4NsFv54X93z4f3ydK; Wed, 11 Jan 2023 13:03:29 +0800 (CST) Received: from huaweicloud.com (unknown [10.175.124.27]) by APP1 (Coremail) with SMTP id cCh0CgDX9S8fQ75jGl2gBQ--.10280S12; Wed, 11 Jan 2023 13:03:32 +0800 (CST) From: Kemeng Shi To: hch@lst.de, axboe@kernel.dk, dwagner@suse.de, hare@suse.de, ming.lei@redhat.com, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org Cc: john.garry@huawei.com, jack@suse.cz Subject: [PATCH v3 10/14] blk-mq: simplify flush check in blk_mq_dispatch_rq_list Date: Wed, 11 Jan 2023 21:01:55 +0800 Message-Id: <20230111130159.3741753-11-shikemeng@huaweicloud.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20230111130159.3741753-1-shikemeng@huaweicloud.com> References: <20230111130159.3741753-1-shikemeng@huaweicloud.com> MIME-Version: 1.0 X-CM-TRANSID: cCh0CgDX9S8fQ75jGl2gBQ--.10280S12 X-Coremail-Antispam: 1UD129KBjvJXoW7ZFW7tr1DXFW7tryrWr43Awb_yoW8Xr47pF ZxCa9Fkr4agw17try8ua97Ga4DAwsYkF15Wrs3Aw1agF45Cr4xKrWSqw47WFykArsYyw4Y qFWDWFWjvFyUXa7anT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUBIb4IE77IF4wAFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k2 6cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M280x2IEY4vEnII2IxkI6r1a6r45M2 8IrcIa0xkI8VA2jI8067AKxVWUAVCq3wA2048vs2IY020Ec7CjxVAFwI0_Xr0E3s1l8cAv FVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28EF7xvwVC0I7IYx2IY67AKxVWDJVCq3w A2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8Jr0_Cr1UM28EF7xvwVC2z280aVAFwI0_GcCE 3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0DM2AIxVAIcxkEcVAq07x20xvEncxIr2 1l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjxv20xvE14v26r106r15McIj6I8E87Iv 67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xvr2IYc2Ij64vIr41l42xK82IYc2 Ij64vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4xG67AKxVWUJVWUGwC20s02 6x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r1q6r43MIIYrxkI7VAKI48JMIIF0x vE2Ix0cI8IcVAFwI0_Gr0_Xr1lIxAIcVC0I7IYx2IY6xkF7I0E14v26F4j6r4UJwCI42IY 6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Gr0_Cr1lIxAIcVC2z280aV CY1x0267AKxVW8JVW8JrUvcSsGvfC2KfnxnUUI43ZEXa7IU058n7UUUUU== X-CM-SenderInfo: 5vklyvpphqwq5kxd4v5lfo033gof0z/ X-CFilter-Loop: Reflected X-Spam-Status: No, score=0.0 required=5.0 tests=BAYES_00,DATE_IN_FUTURE_06_12, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754701279961518770?= X-GMAIL-MSGID: =?utf-8?q?1754701279961518770?= 1. Remove check of needs_resource and ret == BLK_STS_DEV_RESOURCE. For busy error BLK_STS*_RESOURCE, request will always be added back to list, so need_resource will not be true and ret will not be == BLK_STS_DEV_RESOURCE if list is empty. We could remove these dead check. 2. Check ret of last request instead of errors If list is empty, we only need to explicitly commit_rqs if error happens at last request which is stored in ret. So check ret of last request instead of errors to remove unnecessary commit_rqs triggered by errors returned from previous request. Signed-off-by: Kemeng Shi --- block/blk-mq.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/block/blk-mq.c b/block/blk-mq.c index f45d81e20d9e..8fd25713751c 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -2114,9 +2114,9 @@ bool blk_mq_dispatch_rq_list(struct blk_mq_hw_ctx *hctx, struct list_head *list, /* If we didn't flush the entire list, we could have told the driver * there was more coming, but that turned out to be a lie. */ - if ((!list_empty(list) || errors || needs_resource || - ret == BLK_STS_DEV_RESOURCE) && q->mq_ops->commit_rqs && queued) - q->mq_ops->commit_rqs(hctx); + if ((!list_empty(list) || ret != BLK_STS_OK)) + blk_mq_commit_rqs(hctx, queued); + /* * Any items that need requeuing? Stuff them into hctx->dispatch, * that is where we will continue on next queue run. From patchwork Wed Jan 11 13:01:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kemeng Shi X-Patchwork-Id: 41751 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp3132148wrt; Tue, 10 Jan 2023 21:06:28 -0800 (PST) X-Google-Smtp-Source: AMrXdXs5HuT1+3i8SbVa5PRYL4Z00YCyUDjRf12EDVMIQnTJS63GELolalSaRMLdfPWSfNiGJgfS X-Received: by 2002:a05:6a20:6d17:b0:af:88f7:26ae with SMTP id fv23-20020a056a206d1700b000af88f726aemr72378341pzb.23.1673413588002; Tue, 10 Jan 2023 21:06:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673413587; cv=none; d=google.com; s=arc-20160816; b=ix2ddO1GsTskPmOZCcHUbQlLXnNEP+rEq/NW5qlCvbOg4VS/OrG/JVI8q0huVGqqwI P6wvCdwgAhbwwTGB2ueXKpf8UyIED4FI1jQT9w7D8RuaqOLofBPKpvJLczfaznlLAng4 ZxYYYuCvEOdsugaW7FGkuUQ6zIscDmMH3jlrb8W5XzBU+njcBXgHglgfmNPvhXdjpMYW IoDhWdYsCT1HPdgmwF6tm+gKwm14itUaV/nLyDwr+dS7JLCx1J2/cnac55AwLYo/8NBw jicOa9SVN/fC7WQxYfP9/BVxGjiT87/7nkqE79B04Xc1q7sSKu3PoAd0HICiEG0XSPni M0TA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=TCeOxFCN2JSneEhotBwvxj587E4yy0/z5Gc4lX1iAXQ=; b=Ydo6HUHwkVFWTrxuGQ9RDVYRcxhvFzxqOSyrX2VQdOU4zhqPp/Np6DkR8qnJfnqua4 LDu1eMom/zOKDqMd1GWWcCbjJlRgE1gfcBs05MsF+HeG1Ggfnu3JbwWn5R6LjgIfoXKJ s5aEwPpTQwtxSemWSlF1uZR/XqjtENT0TOVdDHA48vSzcSj0EacOqnt9L6W1dD4o0o3O BtFLht8fAE/O/N80pqjVWXyWVu2i94329EIUYjrr19ug9eY1dkG70BGlpW+0XeY/hAM2 AMZOCXqDlP8FT0TbOpbGTRz5zP6EEmTq9MYLBR7EkmFqKdjFHDCWuytIDL8PtYSraSjW s2Og== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id s16-20020a634510000000b00476d24ebb04si13851780pga.322.2023.01.10.21.06.14; Tue, 10 Jan 2023 21:06:27 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235890AbjAKFFO (ORCPT + 99 others); Wed, 11 Jan 2023 00:05:14 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48440 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235314AbjAKFDi (ORCPT ); Wed, 11 Jan 2023 00:03:38 -0500 Received: from dggsgout11.his.huawei.com (dggsgout11.his.huawei.com [45.249.212.51]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5F860DFB0; Tue, 10 Jan 2023 21:03:37 -0800 (PST) Received: from mail02.huawei.com (unknown [172.30.67.153]) by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4NsFv60DKkz4f42nx; Wed, 11 Jan 2023 13:03:30 +0800 (CST) Received: from huaweicloud.com (unknown [10.175.124.27]) by APP1 (Coremail) with SMTP id cCh0CgDX9S8fQ75jGl2gBQ--.10280S13; Wed, 11 Jan 2023 13:03:32 +0800 (CST) From: Kemeng Shi To: hch@lst.de, axboe@kernel.dk, dwagner@suse.de, hare@suse.de, ming.lei@redhat.com, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org Cc: john.garry@huawei.com, jack@suse.cz Subject: [PATCH v3 11/14] blk-mq: remove unnecessary error count and check in blk_mq_dispatch_rq_list Date: Wed, 11 Jan 2023 21:01:56 +0800 Message-Id: <20230111130159.3741753-12-shikemeng@huaweicloud.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20230111130159.3741753-1-shikemeng@huaweicloud.com> References: <20230111130159.3741753-1-shikemeng@huaweicloud.com> MIME-Version: 1.0 X-CM-TRANSID: cCh0CgDX9S8fQ75jGl2gBQ--.10280S13 X-Coremail-Antispam: 1UD129KBjvJXoW7Ar47WrW5WFW7Cr45Cr45Jrb_yoW8tw4rpF W5Gan0y390qr40qFy8Aa9xGwn8trs5AryDWF9xC3yavF17Grs7JF4rJrWUuFyfGrs0ka17 XF18WrWYyan7XrDanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUBSb4IE77IF4wAFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k2 6cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M280x2IEY4vEnII2IxkI6r1a6r45M2 8IrcIa0xkI8VA2jI8067AKxVWUAVCq3wA2048vs2IY020Ec7CjxVAFwI0_Xr0E3s1l8cAv FVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28EF7xvwVC0I7IYx2IY67AKxVWDJVCq3w A2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8Jr0_Cr1UM28EF7xvwVC2z280aVAFwI0_GcCE 3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0DM2AIxVAIcxkEcVAq07x20xvEncxIr2 1l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjxv20xvE14v26r106r15McIj6I8E87Iv 67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xvr2IYc2Ij64vIr41l42xK82IYc2 Ij64vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4xG67AKxVWUJVWUGwC20s02 6x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r1q6r43MIIYrxkI7VAKI48JMIIF0x vE2Ix0cI8IcVAFwI0_Gr0_Xr1lIxAIcVC0I7IYx2IY6xkF7I0E14v26r4UJVWxJr1lIxAI cVCF04k26cxKx2IYs7xG6r1j6r1xMIIF0xvEx4A2jsIE14v26r4j6F4UMIIF0xvEx4A2js IEc7CjxVAFwI0_Gr1j6F4UJbIYCTnIWIevJa73UjIFyTuYvjxUxD7aUUUUU X-CM-SenderInfo: 5vklyvpphqwq5kxd4v5lfo033gof0z/ X-CFilter-Loop: Reflected X-Spam-Status: No, score=0.0 required=5.0 tests=BAYES_00,DATE_IN_FUTURE_06_12, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754701326724336697?= X-GMAIL-MSGID: =?utf-8?q?1754701326724336697?= blk_mq_dispatch_rq_list will notify if hctx is busy in return bool. It will return true if we are not busy and can handle more and return false on the opposite. Inside blk_mq_dispatch_rq_list, errors is only used if list is empty and we will return true if list is empty and (errors + queued) != 0. There are three types of status returned from request: -busy error BLK_STS*_RESOURCE: the failed request will be added back to list and list will not be empty. -BLK_STS_OK: We count queued for BLK_STS_OK -rest error: We count errors for rest error If list is empty, there is no request gets busy error then (errors + queued) will be total requests in the list which is checked not empty at beginning of blk_mq_dispatch_rq_list. So (errors + queued) != 0 is always met if list is empty. Then the (errors + queued) != 0 check and errors number count is not needed. Signed-off-by: Kemeng Shi --- block/blk-mq.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/block/blk-mq.c b/block/blk-mq.c index 8fd25713751c..b2133af1c846 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -2039,7 +2039,7 @@ bool blk_mq_dispatch_rq_list(struct blk_mq_hw_ctx *hctx, struct list_head *list, enum prep_dispatch prep; struct request_queue *q = hctx->queue; struct request *rq, *nxt; - int errors, queued; + int queued; blk_status_t ret = BLK_STS_OK; LIST_HEAD(zone_list); bool needs_resource = false; @@ -2050,7 +2050,7 @@ bool blk_mq_dispatch_rq_list(struct blk_mq_hw_ctx *hctx, struct list_head *list, /* * Now process all the entries, sending them to the driver. */ - errors = queued = 0; + queued = 0; do { struct blk_mq_queue_data bd; @@ -2103,7 +2103,6 @@ bool blk_mq_dispatch_rq_list(struct blk_mq_hw_ctx *hctx, struct list_head *list, needs_resource = true; break; default: - errors++; blk_mq_end_request(rq, ret); } } while (!list_empty(list)); @@ -2181,10 +2180,10 @@ bool blk_mq_dispatch_rq_list(struct blk_mq_hw_ctx *hctx, struct list_head *list, blk_mq_update_dispatch_busy(hctx, true); return false; - } else - blk_mq_update_dispatch_busy(hctx, false); + } - return (queued + errors) != 0; + blk_mq_update_dispatch_busy(hctx, false); + return true; } /** From patchwork Wed Jan 11 13:01:57 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kemeng Shi X-Patchwork-Id: 41753 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp3132255wrt; Tue, 10 Jan 2023 21:06:47 -0800 (PST) X-Google-Smtp-Source: AMrXdXuez1YB0bCaHw/IiNP6bDqjr7aaqwHNdYjZuNHLbHaZzTR/KRoI99fg/3WZypi3ZHrhB4BF X-Received: by 2002:a17:90a:8a8c:b0:226:b627:6779 with SMTP id x12-20020a17090a8a8c00b00226b6276779mr1229769pjn.5.1673413606857; Tue, 10 Jan 2023 21:06:46 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673413606; cv=none; d=google.com; s=arc-20160816; b=MccG90uY9TkbKpOLRTedbz+4/ScS3g7A8Kux4UAbQaTgMn7ZbhYYatfPw1VU3kSda3 6Tyc6RouLe4ea2BR0tWk43aolUvbY0jKtWpenZZbO/7/LW4g2oyec7uGt3lw6uGa9xIG I1RM9ixJwac2/FrLLnd0qSBjj8HaGA0yaSiwQ1+C0eHMaEqCyH9lYIBHKhvsb0iW5w0T 59pbSxt2fbm2AzOrfIo2UJ9M3x4STrPxW0G+MDV072t6+Uco1RzW4mY5ug+Gj1MNFEtS TkBhFsa4Lroc3QDe9rBKow1OyCsyxCGj56XC5P0lOMn9EUNYwdEhJvwFCDlRIcRqQaFo YOjg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=yUtuV1GWvZscaVzaxq02nRHxGn+i3gWD9D72Ec+Q7QY=; b=ayTiXga4UER8i+rurCEQHykLnqq5Wzruy2yaZHZEunC1JKdirYO9ZHx24YEcXmFJnr ocDgXOdc+8mvBlQGNjFR+Aqj6hujztauvxqg6sgeuiZ79IpYB/fKWY/xDvAtBfliVFZK xkjPvNaZzMap0YL8Or/YfFMUnWmHXnRePQqWIpCLK3u7q3DOFOr1IRa6fanDsuHhuLRR DGEqa6GGlJ/5EsiCZMfklcSWfqvsLRL8ncfZzgfkZkndYqWPQ3GsLLXyH0Y0xPf5/tWs CMpffHDf3DHr0Oz0jMM3nYWv9muitzm6IzD/ncxjU7BHP+ITrnYHaTXhGJv4XAcRAYIe 53fA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id lr9-20020a17090b4b8900b002263a7c096csi14218058pjb.6.2023.01.10.21.06.33; Tue, 10 Jan 2023 21:06:46 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235827AbjAKFEs (ORCPT + 99 others); Wed, 11 Jan 2023 00:04:48 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48428 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235276AbjAKFDh (ORCPT ); Wed, 11 Jan 2023 00:03:37 -0500 Received: from dggsgout11.his.huawei.com (dggsgout11.his.huawei.com [45.249.212.51]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 809E1DF50; Tue, 10 Jan 2023 21:03:36 -0800 (PST) Received: from mail02.huawei.com (unknown [172.30.67.153]) by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4NsFv63x2Tz4f3jQP; Wed, 11 Jan 2023 13:03:30 +0800 (CST) Received: from huaweicloud.com (unknown [10.175.124.27]) by APP1 (Coremail) with SMTP id cCh0CgDX9S8fQ75jGl2gBQ--.10280S14; Wed, 11 Jan 2023 13:03:32 +0800 (CST) From: Kemeng Shi To: hch@lst.de, axboe@kernel.dk, dwagner@suse.de, hare@suse.de, ming.lei@redhat.com, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org Cc: john.garry@huawei.com, jack@suse.cz Subject: [PATCH v3 12/14] blk-mq: remove set of bd->last when get driver tag for next request fails Date: Wed, 11 Jan 2023 21:01:57 +0800 Message-Id: <20230111130159.3741753-13-shikemeng@huaweicloud.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20230111130159.3741753-1-shikemeng@huaweicloud.com> References: <20230111130159.3741753-1-shikemeng@huaweicloud.com> MIME-Version: 1.0 X-CM-TRANSID: cCh0CgDX9S8fQ75jGl2gBQ--.10280S14 X-Coremail-Antispam: 1UD129KBjvJXoW7ZryrKr17Cr1DAw1rCrWxWFg_yoW8Kr18pF W3Ja1akr45XF40gFW8AwsrWr45Jw4DArWayrsI934Sqrn0krs7KFy8J3y8ZFySvrWkCrsI gr1qgryDZr48XFDanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUBSb4IE77IF4wAFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k2 6cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M280x2IEY4vEnII2IxkI6r1a6r45M2 8IrcIa0xkI8VA2jI8067AKxVWUAVCq3wA2048vs2IY020Ec7CjxVAFwI0_Xr0E3s1l8cAv FVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28EF7xvwVC0I7IYx2IY67AKxVWDJVCq3w A2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8Jr0_Cr1UM28EF7xvwVC2z280aVAFwI0_GcCE 3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0DM2AIxVAIcxkEcVAq07x20xvEncxIr2 1l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjxv20xvE14v26r106r15McIj6I8E87Iv 67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xvr2IYc2Ij64vIr41l42xK82IYc2 Ij64vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4xG67AKxVWUJVWUGwC20s02 6x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r1q6r43MIIYrxkI7VAKI48JMIIF0x vE2Ix0cI8IcVAFwI0_Gr0_Xr1lIxAIcVC0I7IYx2IY6xkF7I0E14v26r4UJVWxJr1lIxAI cVCF04k26cxKx2IYs7xG6r1j6r1xMIIF0xvEx4A2jsIE14v26r4j6F4UMIIF0xvEx4A2js IEc7CjxVAFwI0_Gr1j6F4UJbIYCTnIWIevJa73UjIFyTuYvjxUxD7aUUUUU X-CM-SenderInfo: 5vklyvpphqwq5kxd4v5lfo033gof0z/ X-CFilter-Loop: Reflected X-Spam-Status: No, score=0.0 required=5.0 tests=BAYES_00,DATE_IN_FUTURE_06_12, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754701346129836118?= X-GMAIL-MSGID: =?utf-8?q?1754701346129836118?= Commit 113285b473824 ("blk-mq: ensure that bd->last is always set correctly") will set last if we failed to get driver tag for next request to avoid flush miss as we break the list walk and will not send the last request in the list which will be sent with last set normally. This code seems stale now becase the flush introduced is always redundant as: For case tag is really out, we will send a extra flush if we find list is not empty after list walk. For case some tag is freed before retry in blk_mq_prep_dispatch_rq for next, then we can get a tag for next request in retry and flush notified already is not necessary. Just remove these stale codes. Signed-off-by: Kemeng Shi --- block/blk-mq.c | 24 ++---------------------- 1 file changed, 2 insertions(+), 22 deletions(-) diff --git a/block/blk-mq.c b/block/blk-mq.c index b2133af1c846..1b66a5169be2 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -1923,16 +1923,6 @@ static void blk_mq_update_dispatch_busy(struct blk_mq_hw_ctx *hctx, bool busy) static void blk_mq_handle_dev_resource(struct request *rq, struct list_head *list) { - struct request *next = - list_first_entry_or_null(list, struct request, queuelist); - - /* - * If an I/O scheduler has been configured and we got a driver tag for - * the next request already, free it. - */ - if (next) - blk_mq_put_driver_tag(next); - list_add(&rq->queuelist, list); __blk_mq_requeue_request(rq); } @@ -2038,7 +2028,7 @@ bool blk_mq_dispatch_rq_list(struct blk_mq_hw_ctx *hctx, struct list_head *list, { enum prep_dispatch prep; struct request_queue *q = hctx->queue; - struct request *rq, *nxt; + struct request *rq; int queued; blk_status_t ret = BLK_STS_OK; LIST_HEAD(zone_list); @@ -2064,17 +2054,7 @@ bool blk_mq_dispatch_rq_list(struct blk_mq_hw_ctx *hctx, struct list_head *list, list_del_init(&rq->queuelist); bd.rq = rq; - - /* - * Flag last if we have no more requests, or if we have more - * but can't assign a driver tag to it. - */ - if (list_empty(list)) - bd.last = true; - else { - nxt = list_first_entry(list, struct request, queuelist); - bd.last = !blk_mq_get_driver_tag(nxt); - } + bd.last = list_empty(list); /* * once the request is queued to lld, no need to cover the From patchwork Wed Jan 11 13:01:58 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kemeng Shi X-Patchwork-Id: 41748 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp3131994wrt; Tue, 10 Jan 2023 21:05:48 -0800 (PST) X-Google-Smtp-Source: AMrXdXsqJ80Ge4fNak+6CMQjrjROJ7erMLJvTUIYbmmgIYgXpq00f/LJ1SAGd0pPIjYXpwMWV9xC X-Received: by 2002:a05:6a20:a581:b0:af:ea1d:ab23 with SMTP id bc1-20020a056a20a58100b000afea1dab23mr1458074pzb.55.1673413548486; Tue, 10 Jan 2023 21:05:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673413548; cv=none; d=google.com; s=arc-20160816; b=dELwfdgWA00leeelhpVag+JFsRyt2gGPwgMElKupWrUuEdQr3ueKXsOBh/u7c05ftv PJfiMXYQIOG1ClGRU4aw8EybPn8oYaYhhtRsNxmjh4+1QkZrhAvL5PZwVGcUjv0+Mcvg Zajn2cUKNNwfcCbWg7hqM6Qy/spQOGpj3RP7OFIL8R+Eur9pMLTDYTCSiiVm5w+5NP7u 250l+GnZGAwQuE/3UM9iDk6TuL3cL4Niv1OMHwetbZ6jgXd0P9wWmX8PGWpFY+JkNOuO qomLo1OgsNKAy+i6cbjzV+la7LMhEDFNybGSwShWq0EV1H6+y0scNS+K/Jc1oIqXOtFu DhTg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=k/Wc+zMvdFZsI1lCyhgCbBbZ3NiRxbHab2gB9vHF6X4=; b=P1Md000ZApnUkVJI8hkixE2bca9aL/7aswuZoSqnVDTzwm7/jX0p/UFHUY7kvoOJ5M Jx6pJ5d3KrijlmcTxKS2zwBLzFR2Udr+rUxTrM414vXsVlP7NgA9zfjXv9VlN6dxWMst nFWt1dV9nshN6cg3ZTqlvTmzep0EN3aBnRv3+m/9KoCJxSM/dxZxVVRfh2i1d+4jWgtT iolLellEtaEVobDZ69h/sOT83X1DXSJyCH3ynljSESUYW8nzsx3LOXIdSKCeT2TdxNsO xOFeRNg4qL2xLToOPYyuG9DUFA+gMGczUN35MB8rZd6Hdg6rj61BtmIT9N5tB5Q5i3O2 ksQw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id u12-20020a63600c000000b004b7bb7bfdbcsi31358pgb.561.2023.01.10.21.05.35; Tue, 10 Jan 2023 21:05:48 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235712AbjAKFE3 (ORCPT + 99 others); Wed, 11 Jan 2023 00:04:29 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48430 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235278AbjAKFDh (ORCPT ); Wed, 11 Jan 2023 00:03:37 -0500 Received: from dggsgout12.his.huawei.com (dggsgout12.his.huawei.com [45.249.212.56]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DD7B4DF84; Tue, 10 Jan 2023 21:03:36 -0800 (PST) Received: from mail02.huawei.com (unknown [172.30.67.153]) by dggsgout12.his.huawei.com (SkyGuard) with ESMTP id 4NsFv65ZL9z4f3v6y; Wed, 11 Jan 2023 13:03:30 +0800 (CST) Received: from huaweicloud.com (unknown [10.175.124.27]) by APP1 (Coremail) with SMTP id cCh0CgDX9S8fQ75jGl2gBQ--.10280S15; Wed, 11 Jan 2023 13:03:33 +0800 (CST) From: Kemeng Shi To: hch@lst.de, axboe@kernel.dk, dwagner@suse.de, hare@suse.de, ming.lei@redhat.com, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org Cc: john.garry@huawei.com, jack@suse.cz Subject: [PATCH v3 13/14] blk-mq: use switch/case to improve readability in blk_mq_try_issue_list_directly Date: Wed, 11 Jan 2023 21:01:58 +0800 Message-Id: <20230111130159.3741753-14-shikemeng@huaweicloud.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20230111130159.3741753-1-shikemeng@huaweicloud.com> References: <20230111130159.3741753-1-shikemeng@huaweicloud.com> MIME-Version: 1.0 X-CM-TRANSID: cCh0CgDX9S8fQ75jGl2gBQ--.10280S15 X-Coremail-Antispam: 1UD129KBjvdXoW7Xry5WF4kGFWxXF1DCry7trb_yoWkCwb_ur yI9rZ7GFs0kF13JFZYka12yFnrG34kJF1xuFW7tF95WF1IgFs8Gw4UJF1FqrZ7Way7CFyr Wry5ZrnYkr1xJjkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT 9fnUUIcSsGvfJTRUUUbSAYFVCjjxCrM7AC8VAFwI0_Wr0E3s1l1xkIjI8I6I8E6xAIw20E Y4v20xvaj40_Wr0E3s1l1IIY67AEw4v_Jr0_Jr4l87I20VAvwVAaII0Ic2I_JFv_Gryl82 xGYIkIc2x26280x7IE14v26r126s0DM28IrcIa0xkI8VCY1x0267AKxVW5JVCq3wA2ocxC 64kIII0Yj41l84x0c7CEw4AK67xGY2AK021l84ACjcxK6xIIjxv20xvE14v26w1j6s0DM2 8EF7xvwVC0I7IYx2IY6xkF7I0E14v26r4UJVWxJr1l84ACjcxK6I8E87Iv67AKxVW0oVCq 3wA2z4x0Y4vEx4A2jsIEc7CjxVAFwI0_GcCE3s1le2I262IYc4CY6c8Ij28IcVAaY2xG8w Aqx4xG64xvF2IEw4CE5I8CrVC2j2WlYx0E2Ix0cI8IcVAFwI0_JrI_JrylYx0Ex4A2jsIE 14v26r1j6r4UMcvjeVCFs4IE7xkEbVWUJVW8JwACjcxG0xvY0x0EwIxGrwCF04k20xvY0x 0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F40E14v26r1j6r18MI8I3I0E 7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_Jw0_GFylIxkGc2Ij64vIr41lIxAIcV C0I7IYx2IY67AKxVW8JVW5JwCI42IY6xIIjxv20xvEc7CjxVAFwI0_Gr1j6F4UJwCI42IY 6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Gr0_Cr1lIxAIcVC2z280aV CY1x0267AKxVW8Jr0_Cr1UYxBIdaVFxhVjvjDU0xZFpf9x07jcjjkUUUUU= X-CM-SenderInfo: 5vklyvpphqwq5kxd4v5lfo033gof0z/ X-CFilter-Loop: Reflected X-Spam-Status: No, score=0.0 required=5.0 tests=BAYES_00,DATE_IN_FUTURE_06_12, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754701284790921554?= X-GMAIL-MSGID: =?utf-8?q?1754701284790921554?= Use switch/case handle error as other function do to improve readability in blk_mq_try_issue_list_directly. Signed-off-by: Kemeng Shi --- block/blk-mq.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/block/blk-mq.c b/block/blk-mq.c index 1b66a5169be2..baa65a15abb5 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -2806,18 +2806,22 @@ void blk_mq_try_issue_list_directly(struct blk_mq_hw_ctx *hctx, list_del_init(&rq->queuelist); ret = blk_mq_request_issue_directly(rq, list_empty(list)); - if (ret != BLK_STS_OK) { - if (ret == BLK_STS_RESOURCE || - ret == BLK_STS_DEV_RESOURCE) { - blk_mq_request_bypass_insert(rq, false, - list_empty(list)); - break; - } - blk_mq_end_request(rq, ret); - } else + switch (ret) { + case BLK_STS_OK: queued++; + break; + case BLK_STS_RESOURCE: + case BLK_STS_DEV_RESOURCE: + blk_mq_request_bypass_insert(rq, false, + list_empty(list)); + goto out; + default: + blk_mq_end_request(rq, ret); + break; + } } +out: if (ret != BLK_STS_OK) blk_mq_commit_rqs(hctx, queued); } From patchwork Wed Jan 11 13:01:59 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kemeng Shi X-Patchwork-Id: 41750 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp3132121wrt; Tue, 10 Jan 2023 21:06:21 -0800 (PST) X-Google-Smtp-Source: AMrXdXtQkUzINfHkvA8ucsMlKnQR63ooxKyCKBpFpkooe/r57AHYycVJMneV2YrA3sheG62DEKnc X-Received: by 2002:a05:6a20:4f01:b0:b6:157c:da6e with SMTP id gi1-20020a056a204f0100b000b6157cda6emr4203737pzb.53.1673413581600; Tue, 10 Jan 2023 21:06:21 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673413581; cv=none; d=google.com; s=arc-20160816; b=sNYUEGPTJoBsyB+/ELIzw5H+Yx+QddumEdpsSNS+vHak/PzHZBquHtJWSjd6w4Ov7Y FN09iuPh89YwvX89OOD7Dn2I3zXK7XkIWOxU2aUeFWqKsFKe1ZFBL2Zbzybehdbn3Cts jMh3lJu2XaqSIooZrSR552YzVs870goaTdy0/g6LDxMTairqDuF+hdCaYpLOG4eJ77MQ jAYQlgQChBGyhXGk+CjMgNIkDGO/kRy/T1vQarcNBbp6iLH+AUU9HgXGJDQrdD+LVzRa zagn2g130/rr2SWxAl4btPR65v/Hgqrf+ZBkh08D21elIv8qNcnI6DextA0yMoFok4jm Ah5w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=mtZ8IHzxYVr/TgDzm17rfB6AU1hxzaMqe1fKBXV9BKA=; b=CdLPAeX+gQAV+FhbAhrOwMTfupYLUCoJcQOZAG6cjkNQe/xQ8Cey6PEb5kBdCV8H76 lQrcLYcGRXkP4DMJcZ/7tWQq3K8tAhCdcaV64cyAZyo9ObOwxWTDmESFh9fFZx95jTOW IKfI5VUIXEIQ7KDhrFh/XDCP+gb0t+CJsYEtjDd5Zd2gvr2nZeV7PjXibU3hc/ga+fDt C006kUYmIef1r7SoMkoUAzbEC1sZjmvWttDC8ia23dqX1Wnlktsu4/EFcFB7bfrRIDSH q54ctGmC+himt8BNCGcsiTdRsIJWGdmxaES3ca4r4VyMX09RszAZVdwEozgMo3BW8nwi VYvA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 35-20020a630b23000000b004781187a491si13385301pgl.73.2023.01.10.21.06.09; Tue, 10 Jan 2023 21:06:21 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235879AbjAKFFA (ORCPT + 99 others); Wed, 11 Jan 2023 00:05:00 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48324 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235399AbjAKFDj (ORCPT ); Wed, 11 Jan 2023 00:03:39 -0500 Received: from dggsgout12.his.huawei.com (dggsgout12.his.huawei.com [45.249.212.56]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8DB2BDFE4; Tue, 10 Jan 2023 21:03:38 -0800 (PST) Received: from mail02.huawei.com (unknown [172.30.67.153]) by dggsgout12.his.huawei.com (SkyGuard) with ESMTP id 4NsFv71FKVz4f3v71; Wed, 11 Jan 2023 13:03:31 +0800 (CST) Received: from huaweicloud.com (unknown [10.175.124.27]) by APP1 (Coremail) with SMTP id cCh0CgDX9S8fQ75jGl2gBQ--.10280S16; Wed, 11 Jan 2023 13:03:33 +0800 (CST) From: Kemeng Shi To: hch@lst.de, axboe@kernel.dk, dwagner@suse.de, hare@suse.de, ming.lei@redhat.com, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org Cc: john.garry@huawei.com, jack@suse.cz Subject: [PATCH v3 14/14] blk-mq: correct stale comment of .get_budget Date: Wed, 11 Jan 2023 21:01:59 +0800 Message-Id: <20230111130159.3741753-15-shikemeng@huaweicloud.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20230111130159.3741753-1-shikemeng@huaweicloud.com> References: <20230111130159.3741753-1-shikemeng@huaweicloud.com> MIME-Version: 1.0 X-CM-TRANSID: cCh0CgDX9S8fQ75jGl2gBQ--.10280S16 X-Coremail-Antispam: 1UD129KBjvJXoW7CryrWr47uF1kXw43Jr45trb_yoW8Ar1xpr ZxKrWYkr4jqryDXFyfAa17JanakanFqF9xJr1ftw1Fy3W3CrZ7Xr48K345Ca18AFZaka9x ZrsF9r90qws3u37anT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUBSb4IE77IF4wAFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k2 6cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M280x2IEY4vEnII2IxkI6r1a6r45M2 8IrcIa0xkI8VA2jI8067AKxVWUAVCq3wA2048vs2IY020Ec7CjxVAFwI0_Xr0E3s1l8cAv FVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28EF7xvwVC0I7IYx2IY67AKxVWDJVCq3w A2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8Jr0_Cr1UM28EF7xvwVC2z280aVAFwI0_GcCE 3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0DM2AIxVAIcxkEcVAq07x20xvEncxIr2 1l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjxv20xvE14v26r106r15McIj6I8E87Iv 67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xvr2IYc2Ij64vIr41l42xK82IYc2 Ij64vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4xG67AKxVWUJVWUGwC20s02 6x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r1q6r43MIIYrxkI7VAKI48JMIIF0x vE2Ix0cI8IcVAFwI0_Gr0_Xr1lIxAIcVC0I7IYx2IY6xkF7I0E14v26r4UJVWxJr1lIxAI cVCF04k26cxKx2IYs7xG6r1j6r1xMIIF0xvEx4A2jsIE14v26r4j6F4UMIIF0xvEx4A2js IEc7CjxVAFwI0_Gr1j6F4UJbIYCTnIWIevJa73UjIFyTuYvjxUxD7aUUUUU X-CM-SenderInfo: 5vklyvpphqwq5kxd4v5lfo033gof0z/ X-CFilter-Loop: Reflected X-Spam-Status: No, score=0.0 required=5.0 tests=BAYES_00,DATE_IN_FUTURE_06_12, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754701319510405045?= X-GMAIL-MSGID: =?utf-8?q?1754701319510405045?= Commit 88022d7201e96 ("blk-mq: don't handle failure in .get_budget") remove BLK_STS_RESOURCE return value and we only check if we can get the budget from .get_budget() now. Correct stale comment that ".get_budget() returns BLK_STS_NO_RESOURCE" to ".get_budget() fails to get the budget". Fixes: 88022d7201e9 ("blk-mq: don't handle failure in .get_budget") Signed-off-by: Kemeng Shi --- block/blk-mq-sched.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/block/blk-mq-sched.c b/block/blk-mq-sched.c index ae40cdb7a383..06b312c69114 100644 --- a/block/blk-mq-sched.c +++ b/block/blk-mq-sched.c @@ -81,7 +81,7 @@ static bool blk_mq_dispatch_hctx_list(struct list_head *rq_list) /* * Only SCSI implements .get_budget and .put_budget, and SCSI restarts * its queue by itself in its completion handler, so we don't need to - * restart queue if .get_budget() returns BLK_STS_NO_RESOURCE. + * restart queue if .get_budget() fails to get the budget. * * Returns -EAGAIN if hctx->dispatch was found non-empty and run_work has to * be run again. This is necessary to avoid starving flushes. @@ -209,7 +209,7 @@ static struct blk_mq_ctx *blk_mq_next_ctx(struct blk_mq_hw_ctx *hctx, /* * Only SCSI implements .get_budget and .put_budget, and SCSI restarts * its queue by itself in its completion handler, so we don't need to - * restart queue if .get_budget() returns BLK_STS_NO_RESOURCE. + * restart queue if .get_budget() fails to get the budget. * * Returns -EAGAIN if hctx->dispatch was found non-empty and run_work has to * be run again. This is necessary to avoid starving flushes.