From patchwork Wed Jan 4 14:22: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: 38762 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp4994551wrt; Tue, 3 Jan 2023 22:27:15 -0800 (PST) X-Google-Smtp-Source: AMrXdXs0Q60Xa6vAect0sZGmDMo6XfdnhtaDE2tjwUnh+wGRN4Kv6N6p82govikoPtliLE6l4ff6 X-Received: by 2002:a05:6a20:b2a1:b0:9d:efbf:8175 with SMTP id ei33-20020a056a20b2a100b0009defbf8175mr65258720pzb.62.1672813635308; Tue, 03 Jan 2023 22:27:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672813635; cv=none; d=google.com; s=arc-20160816; b=b5vvFv0Ej38Un3p9wZs9BQRUlXAAE+U2dcjklzcvT/7WY8emLiTBnR753PLOkXUBVi 1D0wq3IknmxjI5p2Cy984VzZm+i1SR5L0wFgYFmgge8ykVLFBYQa6FiVPMk33c9wKooB E6lhEDpI7wkxXXsFiW8p2w61IHjFj1gNkSdCuFQmJJPeDm9i3EbHry4ZP+94o7sOTlIu L9iKN0VbN0cs3O5frPlHn5R4TYnK+LPp0PP0k1bPcuvKHiCo/7mB8mLpMsGlakmWGtir fEM0JvoAIgqoH8dpnIC1qe2nSv25IBLFYCDzkmTDgFenI6WBUE7AeJGQgPxMPqHuS7Y1 08WA== 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=mywlUAocW05qTyR4xajweWA1Ks32wmy821bsrThZIEg=; b=XIS0ZWu7Q5GWoaISOwhn+mYrRvliezMY1dBBA6yC8ZuXT17wUbqFuNHiKLZpCTXJ4P mWYfuuJ256G4Nv89dsTQ2NgUTfJKQ7rZ18cGJ40NShdNoB+Bi1VhKAFrgXFJClu2dzxN /4kx7pjAB/P3K/5+BqvhuQBIpRRnujRzwTK+9N/i/JKoVf/hZa0D5S5AisP/OATAFsCb MtDm1x5ooyE6GO6AqEgib9/OdLhMsZGeKCRGZABw0YtdMOlkDb99xUCkPowc5qmP8ODN f33exF/WBzICflITO2NAlEM6jRFMrJtYrYTTivJq16OoB5/i9iJcOuh9AIgtVazbtLS8 I3sg== 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 y62-20020a638a41000000b00463dbc5cec8si35405787pgd.658.2023.01.03.22.27.03; Tue, 03 Jan 2023 22:27:15 -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 S229658AbjADGZC (ORCPT + 99 others); Wed, 4 Jan 2023 01:25:02 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41920 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230487AbjADGYX (ORCPT ); Wed, 4 Jan 2023 01:24:23 -0500 Received: from dggsgout12.his.huawei.com (unknown [45.249.212.56]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3AF9217E09; Tue, 3 Jan 2023 22:24:21 -0800 (PST) Received: from mail02.huawei.com (unknown [172.30.67.153]) by dggsgout12.his.huawei.com (SkyGuard) with ESMTP id 4Nn01V1W12z4f3mSJ; Wed, 4 Jan 2023 14:24:14 +0800 (CST) Received: from huaweicloud.com (unknown [10.175.124.27]) by APP4 (Coremail) with SMTP id gCh0CgDnnbGOG7Vju3lKBA--.23788S3; Wed, 04 Jan 2023 14:24:16 +0800 (CST) From: Kemeng Shi To: axboe@kernel.dk, dwagner@suse.de, hare@suse.de, ming.lei@redhat.com, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org Cc: hch@lst.de, john.garry@huawei.com, jack@suse.cz Subject: [PATCH v2 01/13] blk-mq: avoid sleep in blk_mq_alloc_request_hctx Date: Wed, 4 Jan 2023 22:22:47 +0800 Message-Id: <20230104142259.2673013-2-shikemeng@huaweicloud.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20230104142259.2673013-1-shikemeng@huaweicloud.com> References: <20230104142259.2673013-1-shikemeng@huaweicloud.com> MIME-Version: 1.0 X-CM-TRANSID: gCh0CgDnnbGOG7Vju3lKBA--.23788S3 X-Coremail-Antispam: 1UD129KBjvJXoW7uF1rZw13Kw47GF13JFW8JFb_yoW8Cw4fpF W7ta1jyrn0934xCFyIy39xW3y7Cws7ur9rGF1aq34Fv3y7Kw10kF48Zr48WFyxAFs7Ar45 J34rt3WUXr9F93DanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUB0b4IE77IF4wAFF20E14v26ryj6rWUM7CY07I20VC2zVCF04k2 6cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M280x2IEY4vEnII2IxkI6r1a6r45M2 8IrcIa0xkI8VA2jI8067AKxVWUGwA2048vs2IY020Ec7CjxVAFwI0_JFI_Gr1l8cAvFVAK 0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28EF7xvwVC0I7IYx2IY67AKxVWDJVCq3wA2z4 x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8Jr0_Cr1UM28EF7xvwVC2z280aVAFwI0_GcCE3s1l 84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0DM2AIxVAIcxkEcVAq07x20xvEncxIr21l5I 8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjxv20xvE14v26r1j6r18McIj6I8E87Iv67AK xVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xvr2IYc2Ij64vIr41l42xK82IYc2Ij64 vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4xG67AKxVWUJVWUGwC20s026x8G jcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r1q6r43MIIYrxkI7VAKI48JMIIF0xvE2I x0cI8IcVAFwI0_Jr0_JF4lIxAIcVC0I7IYx2IY6xkF7I0E14v26r4j6F4UMIIF0xvE42xK 8VAvwI8IcIk0rVWUJVWUCwCI42IY6I8E87Iv67AKxVWUJVW8JwCI42IY6I8E87Iv6xkF7I 0E14v26r4j6r4UJbIYCTnIWIevJa73UjIFyTuYvjxUsWrWDUUUU 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?1754072230640040414?= X-GMAIL-MSGID: =?utf-8?q?1754072230640040414?= 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") 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 4e6b3ccd4989..42bb59fa275c 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -657,7 +657,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 4 14:22: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: 38754 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp4994051wrt; Tue, 3 Jan 2023 22:25:18 -0800 (PST) X-Google-Smtp-Source: AMrXdXuUfwqUa99gbduUagylm4cAMvcM3qD0yBmdrpeSTVTh0CfVbiuZhJ7bmnXLeJIyJ3TZO+a8 X-Received: by 2002:a17:902:ea02:b0:191:271f:477c with SMTP id s2-20020a170902ea0200b00191271f477cmr51459425plg.32.1672813518159; Tue, 03 Jan 2023 22:25:18 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672813518; cv=none; d=google.com; s=arc-20160816; b=tW4ug4eZ0LlqcNj0IHf2op058QP72PG9UqyAbC2Dn9vimPWAJmOd1maO7fbFPkrmNN WzL0ElWnpwEXWJS3X3QVSA2JTvZzE34Mo5HY1+f/dDOw3ToDjUK9Yjy08kUx2mWC4P8f kRZsCfGgRxI1/3T1lbOfyqwFLpmY11rhrlgav9TZLvHJm+HzYS1dSXkSfHvs6BsBPTuF acsFb8QEor2msJbYAsK9qWxPoWPCocDHM8u23pl8g9tAFaG4qG/x42DGHrjUOn9I2LOX 6M8Br/Jq5X1a90M2gnam9G1uh+XcPQAgkLD9hCWxvaNpcWu6o81rFHStM9IDnIBIxM+A A/DA== 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=fpscdibgIixg9vx+uymZXH5TpQJCK1SqzssCNV3lxTI=; b=OvNsZF+uhQ6UYmO+GEUZHhkvCM090bEKsUSE5CLevPwtYACBWf9Qv3x7FRIaMnu6RG NyiUYFvbePhOg3hrx03ZKM/6+bOAFHuqxMYI06bpb4fbfZC9Gha6F8VAutelkzOTpNA3 mMbZuiRhiANgea50BrlDtBIL7vSH0hPVHUCBAGaDRElvGfLSM4EDtzxH1DGW4McLHrmH /IXDvpLVRsTZdV0MtB3dQzwnJsyagIBywoDPna2Zhr2Izcl+ukTILaBj5CMlrm4YYIHx 8cVirTD45hbWJ3aLhqyUYpksh9NCT73MRe3MgVf3AETlYDiJOftm/w56PclVKF/gW7IE Tspw== 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 l6-20020a170903244600b00186a1c4e64dsi35801678pls.236.2023.01.03.22.25.05; Tue, 03 Jan 2023 22:25:18 -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 S233121AbjADGY1 (ORCPT + 99 others); Wed, 4 Jan 2023 01:24:27 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41878 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229457AbjADGYW (ORCPT ); Wed, 4 Jan 2023 01:24:22 -0500 Received: from dggsgout12.his.huawei.com (unknown [45.249.212.56]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4831317419; Tue, 3 Jan 2023 22:24:20 -0800 (PST) Received: from mail02.huawei.com (unknown [172.30.67.153]) by dggsgout12.his.huawei.com (SkyGuard) with ESMTP id 4Nn01V4ZRCz4f3mJL; Wed, 4 Jan 2023 14:24:14 +0800 (CST) Received: from huaweicloud.com (unknown [10.175.124.27]) by APP4 (Coremail) with SMTP id gCh0CgDnnbGOG7Vju3lKBA--.23788S4; Wed, 04 Jan 2023 14:24:17 +0800 (CST) From: Kemeng Shi To: axboe@kernel.dk, dwagner@suse.de, hare@suse.de, ming.lei@redhat.com, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org Cc: hch@lst.de, john.garry@huawei.com, jack@suse.cz Subject: [PATCH v2 02/13] blk-mq: remove stale comment for blk_mq_sched_mark_restart_hctx Date: Wed, 4 Jan 2023 22:22:48 +0800 Message-Id: <20230104142259.2673013-3-shikemeng@huaweicloud.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20230104142259.2673013-1-shikemeng@huaweicloud.com> References: <20230104142259.2673013-1-shikemeng@huaweicloud.com> MIME-Version: 1.0 X-CM-TRANSID: gCh0CgDnnbGOG7Vju3lKBA--.23788S4 X-Coremail-Antispam: 1UD129KBjvdXoW7Jw18Ary5CF1UZw45KFyDKFg_yoWDZrX_Ww 15Crn7GFWDGwn0vrWakF4UZF4Ik34kJa4UCay5tr9Fyw10qa9xGr4UKr15XrZ8W3ZxGFW3 Jwn5XrykA3Za9jkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT 9fnUUIcSsGvfJTRUUUbfxYFVCjjxCrM7AC8VAFwI0_Wr0E3s1l1xkIjI8I6I8E6xAIw20E Y4v20xvaj40_Wr0E3s1l1IIY67AEw4v_Jr0_Jr4l87I20VAvwVAaII0Ic2I_JFv_Gryl82 xGYIkIc2x26280x7IE14v26r15M28IrcIa0xkI8VCY1x0267AKxVW8JVW5JwA2ocxC64kI II0Yj41l84x0c7CEw4AK67xGY2AK021l84ACjcxK6xIIjxv20xvE14v26w1j6s0DM28EF7 xvwVC0I7IYx2IY6xkF7I0E14v26r4UJVWxJr1l84ACjcxK6I8E87Iv67AKxVW0oVCq3wA2 z4x0Y4vEx4A2jsIEc7CjxVAFwI0_GcCE3s1le2I262IYc4CY6c8Ij28IcVAaY2xG8wAqx4 xG64xvF2IEw4CE5I8CrVC2j2WlYx0E2Ix0cI8IcVAFwI0_Jr0_Jr4lYx0Ex4A2jsIE14v2 6r1j6r4UMcvjeVCFs4IE7xkEbVWUJVW8JwACjcxG0xvY0x0EwIxGrwCF04k20xvY0x0EwI xGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F40E14v26r1j6r18MI8I3I0E7480 Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_Jw0_GFylIxkGc2Ij64vIr41lIxAIcVC0I7 IYx2IY67AKxVWUJVWUCwCI42IY6xIIjxv20xvEc7CjxVAFwI0_Gr0_Cr1lIxAIcVCF04k2 6cxKx2IYs7xG6r1j6r1xMIIF0xvEx4A2jsIE14v26r1j6r4UMIIF0xvEx4A2jsIEc7CjxV AFwI0_Gr0_Gr1UYxBIdaVFxhVjvjDU0xZFpf9x07jguciUUUUU= 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?1754072107575483711?= X-GMAIL-MSGID: =?utf-8?q?1754072107575483711?= 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()") Signed-off-by: Kemeng Shi Reviewed-by: Christoph Hellwig --- 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 4 14:22: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: 38753 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp4993939wrt; Tue, 3 Jan 2023 22:24:50 -0800 (PST) X-Google-Smtp-Source: AMrXdXsxS9QYQLrvx8ca27Jj7KyEurY6ZC5TvG68CG2F9pFE+jnP14+6TZsrMBbAkcMJ7RWOTQcm X-Received: by 2002:a05:6a20:b813:b0:af:b16b:eeb5 with SMTP id fi19-20020a056a20b81300b000afb16beeb5mr50676653pzb.25.1672813490313; Tue, 03 Jan 2023 22:24:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672813490; cv=none; d=google.com; s=arc-20160816; b=kMyRfmy7AbL7mRPt9EKkKgXWHy89Le0jyAXf8c+ZTzdrXW7Jh6HVLIIK4llMUmZbfE X6lroG2+CRnsg/LwYGFrDbPzlP129F3vdpNfz+/ZCyROsZlvxAhcqyqDq2A49G5zVxxD UYNAKfugM0B4ZYeEe2T/sO/lMwtKQY58i+DeYCCWhuWfvKYBHJNzUBkpFx1tuiG8EwKZ h9zqmUFVCwG2A2O0V0SwKUCT9nEOEJfWbF61dAYEwwqbe3Q44pfHR2aGj7aglfvQoDBp KMrfRGU9MAmYA65SiZb8JTyiZvrChV+NnRcb6yhcCKpmHdXTJJRyMz0Gg1hnJ6Ra2ssD bdVg== 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=IwCjm6TuY1m/7l7iRQT54O2EFZjt4UArBiFMSR2mwuQ=; b=zvHYj6ySonGbMrNZX2rGXni1safgoKIkXzcNxwCVJYaNNzHUdh7yDIMgCSvxav0AWO CrEAObdibZIvB8qrEWG6+IwJlnQKGRWRTbcqM2NLJYtIGtmJcmlTKKNtedmeAO1+ahxg TnVfoKFtz1mkdYBD5nMEVvuaePIB8NKEmr4W4A8ckB8QZPR+oLV09iArPxBxaJfei6pb Qb1fQrwagiFL4lS7KaMW+quYpHyukJZhdo0Upr3rlIbujhGFfyZsMgXLYG51PNIWxu96 jdP5TX2ww1SPIQdbUfGTw2tLHoQv+D9WcDCgl69BrP54qpXG6QRxl0Dr+IG4PRDrr4Wn V/bA== 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 bm9-20020a656e89000000b004a3a3fe6099si7239823pgb.808.2023.01.03.22.24.36; Tue, 03 Jan 2023 22:24:50 -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 S231288AbjADGYY (ORCPT + 99 others); Wed, 4 Jan 2023 01:24:24 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41880 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229773AbjADGYW (ORCPT ); Wed, 4 Jan 2023 01:24:22 -0500 Received: from dggsgout12.his.huawei.com (unknown [45.249.212.56]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6C2FE17E01; Tue, 3 Jan 2023 22:24:20 -0800 (PST) Received: from mail02.huawei.com (unknown [172.30.67.153]) by dggsgout12.his.huawei.com (SkyGuard) with ESMTP id 4Nn01W0J3pz4f3mKr; Wed, 4 Jan 2023 14:24:15 +0800 (CST) Received: from huaweicloud.com (unknown [10.175.124.27]) by APP4 (Coremail) with SMTP id gCh0CgDnnbGOG7Vju3lKBA--.23788S5; Wed, 04 Jan 2023 14:24:17 +0800 (CST) From: Kemeng Shi To: axboe@kernel.dk, dwagner@suse.de, hare@suse.de, ming.lei@redhat.com, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org Cc: hch@lst.de, john.garry@huawei.com, jack@suse.cz Subject: [PATCH v2 03/13] blk-mq: wait on correct sbitmap_queue in blk_mq_mark_tag_wait Date: Wed, 4 Jan 2023 22:22:49 +0800 Message-Id: <20230104142259.2673013-4-shikemeng@huaweicloud.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20230104142259.2673013-1-shikemeng@huaweicloud.com> References: <20230104142259.2673013-1-shikemeng@huaweicloud.com> MIME-Version: 1.0 X-CM-TRANSID: gCh0CgDnnbGOG7Vju3lKBA--.23788S5 X-Coremail-Antispam: 1UD129KBjvJXoW7tF15AF1rKFW7tr4rCFyUWrg_yoW8Xr4DpF 43Ga1jkasaqryjvFWkJa9rC3ZY939xKr93Grs3Cw4Ygr4rGrs3Xr10gF4UXry0vrZ5Ca98 ArWDtryfZr1UXa7anT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUB0b4IE77IF4wAFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k2 6cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M280x2IEY4vEnII2IxkI6r1a6r45M2 8IrcIa0xkI8VA2jI8067AKxVWUWwA2048vs2IY020Ec7CjxVAFwI0_Xr0E3s1l8cAvFVAK 0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28EF7xvwVC0I7IYx2IY67AKxVWDJVCq3wA2z4 x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8Jr0_Cr1UM28EF7xvwVC2z280aVAFwI0_GcCE3s1l 84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0DM2AIxVAIcxkEcVAq07x20xvEncxIr21l5I 8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjxv20xvE14v26r1j6r18McIj6I8E87Iv67AK xVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xvr2IYc2Ij64vIr41l42xK82IYc2Ij64 vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4xG67AKxVWUJVWUGwC20s026x8G jcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r1q6r43MIIYrxkI7VAKI48JMIIF0xvE2I x0cI8IcVAFwI0_Jr0_JF4lIxAIcVC0I7IYx2IY6xkF7I0E14v26r4j6F4UMIIF0xvE42xK 8VAvwI8IcIk0rVWUJVWUCwCI42IY6I8E87Iv67AKxVWUJVW8JwCI42IY6I8E87Iv6xkF7I 0E14v26r4j6r4UJbIYCTnIWIevJa73UjIFyTuYvjxUIq2MUUUUU 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?1754072078690587282?= X-GMAIL-MSGID: =?utf-8?q?1754072078690587282?= 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 from which rq from to fix this. Fixes: f906a6a0f426 ("blk-mq: improve tag waiting setup for non-shared tags") Signed-off-by: Kemeng Shi Reviewed-by: Christoph Hellwig --- 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 42bb59fa275c..ec958aa044ba 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -1820,7 +1820,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; @@ -1843,6 +1843,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 4 14:22: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: 38758 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp4994118wrt; Tue, 3 Jan 2023 22:25:30 -0800 (PST) X-Google-Smtp-Source: AMrXdXtB05AkLivHFeaFKsRfvZjiMjEnzIHCeqAKRdAKfD417d4SkJT49f72vxkL5BMEw/EognsG X-Received: by 2002:a17:902:c386:b0:192:709b:9a6a with SMTP id g6-20020a170902c38600b00192709b9a6amr34411751plg.65.1672813530018; Tue, 03 Jan 2023 22:25:30 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672813530; cv=none; d=google.com; s=arc-20160816; b=ja1H3E2Ib9CEUP3BPtNKvs+PR0CHq77qkI7QpRJaBc5rzjB6fH9Vcqq5I/I6WMiMlB W546LjRzmHZ1eC0j+1pHzkzTjTON5w0uKsZUVCvpmTxSKJWvI5DskBBK4Vd06Uma0MnL iVJDFXF5xVI9myvt0lWD0PpOPEs/hhJqQSsl8cWVb/6ilYUGl9TI+IGGQmJ8stuZa+iA ASJUDaHKszMO4vLgGoAFE1ByQ4qZW56w4uVRdMbsVzaO+Ss3qnFeYNYuXvtQdvRnHRaa /AwlNsVyMyfFNXxLlyBF0PhimoITatuiXaV5V/ZAq3XpXgI6Pneu2x7R6J3wOXC3Or/S xSOw== 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=e7RA+oZvKKRBUQbjhx1ygCRjUEznHr0/Tacg4oiiLv4=; b=JyfRohJ0lqZ/j93R/mUbNbdwp5f47szlbnkc+Sf2GHP/uW0WQE8trmty0QinSCLoxz HdNRizQRiQaRFu5UH1JdnUTXA9CpygOiEgQ+kaserSM6QEBxbIZj6CDNqbCAVV+/Y3JY H/PvMB9t4ieOy351P/BixcwoeNjVaacaN30TcguoJpgZNeo5EOfBg216OZznh848h1Q6 Pmp1v313I6kd+UY+F7gtjwtLmX+BErShb3hBPZ3UzGHEkhDbv3EoEJn9UUpvNusg8DA4 fN10csvnh79vygEAGIIQlJRz/39LcpB0TrIVgPeO+5MvVKLjPmxzHlTrwm158Y6mxAZm Bh/Q== 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 s17-20020a170902c65100b001910b23667fsi32185020pls.213.2023.01.03.22.25.17; Tue, 03 Jan 2023 22:25:29 -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 S233151AbjADGYe (ORCPT + 99 others); Wed, 4 Jan 2023 01:24:34 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41906 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230060AbjADGYX (ORCPT ); Wed, 4 Jan 2023 01:24:23 -0500 Received: from dggsgout11.his.huawei.com (dggsgout11.his.huawei.com [45.249.212.51]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5D02513D67; Tue, 3 Jan 2023 22:24:21 -0800 (PST) Received: from mail02.huawei.com (unknown [172.30.67.153]) by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4Nn01W4Yx6z4f43ZG; Wed, 4 Jan 2023 14:24:15 +0800 (CST) Received: from huaweicloud.com (unknown [10.175.124.27]) by APP4 (Coremail) with SMTP id gCh0CgDnnbGOG7Vju3lKBA--.23788S6; Wed, 04 Jan 2023 14:24:18 +0800 (CST) From: Kemeng Shi To: axboe@kernel.dk, dwagner@suse.de, hare@suse.de, ming.lei@redhat.com, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org Cc: hch@lst.de, john.garry@huawei.com, jack@suse.cz Subject: [PATCH v2 04/13] blk-mq: Fix potential io hung for shared sbitmap per tagset Date: Wed, 4 Jan 2023 22:22:50 +0800 Message-Id: <20230104142259.2673013-5-shikemeng@huaweicloud.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20230104142259.2673013-1-shikemeng@huaweicloud.com> References: <20230104142259.2673013-1-shikemeng@huaweicloud.com> MIME-Version: 1.0 X-CM-TRANSID: gCh0CgDnnbGOG7Vju3lKBA--.23788S6 X-Coremail-Antispam: 1UD129KBjvJXoW7CFW7tFy5CFyfXr4Duw1ftFb_yoW8AF48pr WrtF1UKanaqr1qvFWxXa17GF10krs5Kwn3J3yfursIvw15Kr1xJFW0gay3J3W0vFZayrW7 ZayUKFyUXws5X37anT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUB2b4IE77IF4wAFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k2 6cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M280x2IEY4vEnII2IxkI6r1a6r45M2 8IrcIa0xkI8VA2jI8067AKxVWUAVCq3wA2048vs2IY020Ec7CjxVAFwI0_Xr0E3s1l8cAv FVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28EF7xvwVC0I7IYx2IY67AKxVWDJVCq3w A2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8Jr0_Cr1UM28EF7xvwVC2z280aVAFwI0_GcCE 3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0DM2AIxVAIcxkEcVAq07x20xvEncxIr2 1l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjxv20xvE14v26r1j6r18McIj6I8E87Iv 67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xvr2IYc2Ij64vIr41l42xK82IYc2 Ij64vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4xG67AKxVWUJVWUGwC20s02 6x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r1q6r43MIIYrxkI7VAKI48JMIIF0x vE2Ix0cI8IcVAFwI0_Jr0_JF4lIxAIcVC0I7IYx2IY6xkF7I0E14v26r4j6F4UMIIF0xvE 42xK8VAvwI8IcIk0rVWUJVWUCwCI42IY6I8E87Iv67AKxVWUJVW8JwCI42IY6I8E87Iv6x kF7I0E14v26r4j6r4UJbIYCTnIWIevJa73UjIFyTuYvjxUIL05UUUUU 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?1754072119976393377?= X-GMAIL-MSGID: =?utf-8?q?1754072119976393377?= 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 ec958aa044ba..9c3a9b5e5b0c 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -1825,7 +1825,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); /* @@ -2095,7 +2096,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 4 14:22: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: 38760 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp4994182wrt; Tue, 3 Jan 2023 22:25:51 -0800 (PST) X-Google-Smtp-Source: AMrXdXvE1S6er43MvoIW7KKdOOVpkCxKlKfwlh7xnRpVHb0qwivM0yYECfk566xMC98O75Q0Dygu X-Received: by 2002:a17:902:b588:b0:189:dfb0:d380 with SMTP id a8-20020a170902b58800b00189dfb0d380mr52431234pls.33.1672813551719; Tue, 03 Jan 2023 22:25:51 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672813551; cv=none; d=google.com; s=arc-20160816; b=IL9BuT5jLd2PFKO5XqbiYwwLFh2vMhs45cUg+jk2QDHWBAscYPoj6K4YjRYBO84Piu 1a4OxWZFse1bSKRZwM7e9sKJlM04vC3OE4o0B6tTJLY0jivZaUvblnvVWzZlwOGIlDQB 7tHFHS0Mkt6vFQfkz6LqGQ5Gu2oyuAqUbGVN5atRH79Pku//PQ+JYxOuTg436DaWXx5+ 2ZcG7m+s59pP2nXvjrCJgR1V3V/5AF0ol8dwrEY/+dIZjouL2uNoC7xBprZC09WkkMLW LOw1kxSHAxo23kgKAr4moDSX0XFiGbx/7OHk0kebrg/PIUzs5AAYsAlRUvTKtZJHRWfl ANow== 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=vG+p6Wr9gO8jRbgS3tHjZl0HMZcqzdEzM2TePRWKM94=; b=m9iGQkpCG6otDs8yOiv6z5KQdKanDB0itThwNHLKCsMcHT49sVNMXjM69Q297Uzxkx whqmC4F0H+yDIP0P49HNHKLxPazVnGCJ2j+/PT0T87NKDmlpJmjfctp0d4X98zOJ5ddZ imQ2XZrpbISyGTFw6a4qUwvhFAd5kb/q9LJ5i8U92e9MBbQr4p5kY1+nk72GoybT2t9a ckrr8FXnTismbMkymMm5XsyWwcb5PJ6lRafVOzUAS+FiU98nsC5qg7rVgLtyPnCWg5Rs 9mfZw1SX4NcyCIeGjf4dEOjPxnz1Ug8TBkjxeC3iSYSCBgDutSPopxS60gw6Xmh2Xqze tTmg== 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 f33-20020a635561000000b0046ef21af717si35223133pgm.683.2023.01.03.22.25.39; Tue, 03 Jan 2023 22:25:51 -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 S231176AbjADGYb (ORCPT + 99 others); Wed, 4 Jan 2023 01:24:31 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41912 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230019AbjADGYW (ORCPT ); Wed, 4 Jan 2023 01:24:22 -0500 Received: from dggsgout11.his.huawei.com (dggsgout11.his.huawei.com [45.249.212.51]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5D0AA17E1D; Tue, 3 Jan 2023 22:24:21 -0800 (PST) Received: from mail02.huawei.com (unknown [172.30.67.153]) by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4Nn01W6vjGz4f3mWD; Wed, 4 Jan 2023 14:24:15 +0800 (CST) Received: from huaweicloud.com (unknown [10.175.124.27]) by APP4 (Coremail) with SMTP id gCh0CgDnnbGOG7Vju3lKBA--.23788S7; Wed, 04 Jan 2023 14:24:18 +0800 (CST) From: Kemeng Shi To: axboe@kernel.dk, dwagner@suse.de, hare@suse.de, ming.lei@redhat.com, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org Cc: hch@lst.de, john.garry@huawei.com, jack@suse.cz Subject: [PATCH v2 05/13] blk-mq: remove unnecessary list_empty check in blk_mq_try_issue_list_directly Date: Wed, 4 Jan 2023 22:22:51 +0800 Message-Id: <20230104142259.2673013-6-shikemeng@huaweicloud.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20230104142259.2673013-1-shikemeng@huaweicloud.com> References: <20230104142259.2673013-1-shikemeng@huaweicloud.com> MIME-Version: 1.0 X-CM-TRANSID: gCh0CgDnnbGOG7Vju3lKBA--.23788S7 X-Coremail-Antispam: 1UD129KBjvdXoWrKr1xWry5Kw1Utw48Ww18uFg_yoWDJrX_uF y09wn7XayDGF17Ar4I93WIyFn8K34kGr1fXFyxtF98GFWfXFs8Was5KF4ruw4xCay3KasI 9r4rXF9Fyr10gjkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT 9fnUUIcSsGvfJTRUUUbSxYFVCjjxCrM7AC8VAFwI0_Wr0E3s1l1xkIjI8I6I8E6xAIw20E Y4v20xvaj40_Wr0E3s1l1IIY67AEw4v_Jr0_Jr4l87I20VAvwVAaII0Ic2I_JFv_Gryl82 xGYIkIc2x26280x7IE14v26r126s0DM28IrcIa0xkI8VCY1x0267AKxVW5JVCq3wA2ocxC 64kIII0Yj41l84x0c7CEw4AK67xGY2AK021l84ACjcxK6xIIjxv20xvE14v26w1j6s0DM2 8EF7xvwVC0I7IYx2IY6xkF7I0E14v26r4UJVWxJr1l84ACjcxK6I8E87Iv67AKxVW0oVCq 3wA2z4x0Y4vEx4A2jsIEc7CjxVAFwI0_GcCE3s1le2I262IYc4CY6c8Ij28IcVAaY2xG8w Aqx4xG64xvF2IEw4CE5I8CrVC2j2WlYx0E2Ix0cI8IcVAFwI0_Jr0_Jr4lYx0Ex4A2jsIE 14v26r1j6r4UMcvjeVCFs4IE7xkEbVWUJVW8JwACjcxG0xvY0x0EwIxGrwCF04k20xvY0x 0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F40E14v26r1j6r18MI8I3I0E 7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_Jw0_GFylIxkGc2Ij64vIr41lIxAIcV C0I7IYx2IY67AKxVWUCVW8JwCI42IY6xIIjxv20xvEc7CjxVAFwI0_Cr0_Gr1UMIIF0xvE 42xK8VAvwI8IcIk0rVWUJVWUCwCI42IY6I8E87Iv67AKxVWUJVW8JwCI42IY6I8E87Iv6x kF7I0E14v26r4j6r4UJbIYCTnIWIevJa73UjIFyTuYvjxUIL05UUUUU 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?1754072142986780678?= X-GMAIL-MSGID: =?utf-8?q?1754072142986780678?= 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. Signed-off-by: Kemeng Shi Reviewed-by: Christoph Hellwig --- 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 9c3a9b5e5b0c..d84ce1f758ce 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -2833,8 +2833,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 4 14:22: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: 38757 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp4994117wrt; Tue, 3 Jan 2023 22:25:30 -0800 (PST) X-Google-Smtp-Source: AMrXdXuO1nq/MEBfYBm6hn5Gc9TsUHC6KdInuR8YPUcBkCaOGlfH+m5pmHPwmWe+fLhbOZOsiijQ X-Received: by 2002:a05:6a00:7ca:b0:582:fba:319f with SMTP id n10-20020a056a0007ca00b005820fba319fmr15224757pfu.27.1672813529856; Tue, 03 Jan 2023 22:25:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672813529; cv=none; d=google.com; s=arc-20160816; b=HgpOrX4KcDgIvZxtF7cwa8yxjvZu+6KQr9IjV3jzdAAi7tD2PCt9a6t4Ehp5apRgBT cW4fnLiVZxMZeRDQLvTcwU24uHyEGplMOKvHCiOc+pbh73Btc2FzGysV2Xp4WMtxxexS 41Z2JsBqYtOHxIy/ShCeq/XPmdwpaDLi8J9cP28GTYm6qPL3esARTG4FB5OPHFSd8tMc YnkAKVFxF3sKcw32PABaz0muc3zRseT39xxTQDVbI5+r50ArW6UE4pGpLmYV1sr7hlkk 1OtEU+CW881/Vpmoqh2/ETFaoxtVvmABLf0MULHpbHdM7UE9LPGoBUQMxNhuA3IHdCf7 Ayjg== 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=3v+wiKzRcLZEdCY6Fe+KNMwrCLOX1eh8ArvE4KYYfxM=; b=PAaKL/y8denH0zU21c/TME+PzL2rku8z/PTRWi5K0kHFX6B3jho+GjHrzM3hRImJHg Ec2O2HRnKXjDh0YlryHXs73a2Z+yBoHWnYXaL5gO9LRWsZgX6GN0cNbGNl0UeKxGB+i4 wLyMvI1N69H/3S+GlQYEi2Rf11Trgn610a/mZ8Yk7fbtLls5JMlk8BhSry7qv7LysX99 vSzvpVYHXHueUR38/WjbmrlqOmfr7Aoes54rae7y6jy/8Af+cDcBAXv0RDzw8oo8pn/b v/tuBAcqMgCI5u7YNy15lImF21YNdJIUFfBjGIy/eIHO8gW2vQH6Y9M8qJI32aK3kjUk TLrA== 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 k124-20020a628482000000b00557e99763d3si33953274pfd.93.2023.01.03.22.25.16; Tue, 03 Jan 2023 22:25:29 -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 S229469AbjADGYv (ORCPT + 99 others); Wed, 4 Jan 2023 01:24:51 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41922 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231128AbjADGYX (ORCPT ); Wed, 4 Jan 2023 01:24:23 -0500 Received: from dggsgout11.his.huawei.com (dggsgout11.his.huawei.com [45.249.212.51]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AC81C17E3E; Tue, 3 Jan 2023 22:24:21 -0800 (PST) Received: from mail02.huawei.com (unknown [172.30.67.153]) by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4Nn01X2dNwz4f3pPX; Wed, 4 Jan 2023 14:24:16 +0800 (CST) Received: from huaweicloud.com (unknown [10.175.124.27]) by APP4 (Coremail) with SMTP id gCh0CgDnnbGOG7Vju3lKBA--.23788S8; Wed, 04 Jan 2023 14:24:18 +0800 (CST) From: Kemeng Shi To: axboe@kernel.dk, dwagner@suse.de, hare@suse.de, ming.lei@redhat.com, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org Cc: hch@lst.de, john.garry@huawei.com, jack@suse.cz Subject: [PATCH v2 06/13] blk-mq: remove unncessary error count and flush in blk_mq_plug_issue_direct Date: Wed, 4 Jan 2023 22:22:52 +0800 Message-Id: <20230104142259.2673013-7-shikemeng@huaweicloud.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20230104142259.2673013-1-shikemeng@huaweicloud.com> References: <20230104142259.2673013-1-shikemeng@huaweicloud.com> MIME-Version: 1.0 X-CM-TRANSID: gCh0CgDnnbGOG7Vju3lKBA--.23788S8 X-Coremail-Antispam: 1UD129KBjvJXoW7AF13uFW7Xr43tF1DCr4kZwb_yoW8Kw4xpF W5GanFkrn5XrW8ZrW8Aa9rA34j9rWrtFW3Wrs0yw13XrZ8GrWY9ry5trWSgryIkrs3Aw43 Wrs0g3s8Xr15XrJanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUBIb4IE77IF4wAFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k2 6cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M280x2IEY4vEnII2IxkI6r1a6r45M2 8IrcIa0xkI8VA2jI8067AKxVWUAVCq3wA2048vs2IY020Ec7CjxVAFwI0_Xr0E3s1l8cAv FVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28EF7xvwVC0I7IYx2IY67AKxVWDJVCq3w A2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8Jr0_Cr1UM28EF7xvwVC2z280aVAFwI0_GcCE 3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0DM2AIxVAIcxkEcVAq07x20xvEncxIr2 1l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjxv20xvE14v26r1j6r18McIj6I8E87Iv 67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xvr2IYc2Ij64vIr41l42xK82IYc2 Ij64vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4xG67AKxVWUJVWUGwC20s02 6x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r1q6r43MIIYrxkI7VAKI48JMIIF0x vE2Ix0cI8IcVAFwI0_JFI_Gr1lIxAIcVC0I7IYx2IY6xkF7I0E14v26F4j6r4UJwCI42IY 6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr0_Gr1lIxAIcVC2z280aV CY1x0267AKxVW8JVW8JrUvcSsGvfC2KfnxnUUI43ZEXa7IU0TqcUUUUUU== 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?1754072120079533988?= X-GMAIL-MSGID: =?utf-8?q?1754072120079533988?= blk_mq_plug_issue_direct try to send a list of requests which belong to different hctxs. Normally, we will send flush when hctx changes as there maybe no more request for the same hctx. Besides we will send flush along with last request in the list by set last parameter of blk_mq_request_issue_directly. Extra flush is needed for two cases: 1. We stop sending at middle of list, then normal flush sent after last request of current hctx is miss. 2. Error happens at sending last request and normal flush may be lost. In blk_mq_plug_issue_direct, we only break the list walk if we get BLK_STS_RESOURCE or BLK_STS_DEV_RESOURCE error. We will send extra flush for this case already. We count error number and send extra flush if error number is non-zero after sending all requests in list. This could cover case 2 described above, but there are two things to improve: 1. If last request is sent successfully, error of request at middle of list will trigger an unnecessary flush. 2. We only need error of last request instead of error number and error of last request can be simply retrieved from ret. Cover case 2 above by simply check ret of last request and remove unnecessary error count and flush to improve blk_mq_plug_issue_direct. Signed-off-by: Kemeng Shi --- block/blk-mq.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/block/blk-mq.c b/block/blk-mq.c index d84ce1f758ce..ba917b6b5cc1 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -2687,11 +2687,10 @@ static void blk_mq_plug_issue_direct(struct blk_plug *plug, bool from_schedule) 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) @@ -2711,7 +2710,6 @@ static void blk_mq_plug_issue_direct(struct blk_plug *plug, bool from_schedule) return; default: blk_mq_end_request(rq, ret); - errors++; break; } } @@ -2720,7 +2718,7 @@ static void blk_mq_plug_issue_direct(struct blk_plug *plug, bool from_schedule) * 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) + if (ret != BLK_STS_OK) blk_mq_commit_rqs(hctx, &queued, from_schedule); } From patchwork Wed Jan 4 14:22: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: 38755 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp4994083wrt; Tue, 3 Jan 2023 22:25:23 -0800 (PST) X-Google-Smtp-Source: AMrXdXvvL6DK+B6QWbpxw7DO97DjnF5tPmQ2mt2EcrMbCX8YnCG6L9yHMY/CYvDx126MoxxGlmmF X-Received: by 2002:a05:6a20:3ca5:b0:af:ae01:54df with SMTP id b37-20020a056a203ca500b000afae0154dfmr79238724pzj.11.1672813522866; Tue, 03 Jan 2023 22:25:22 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672813522; cv=none; d=google.com; s=arc-20160816; b=PWoKcOIPdUPYQ2645E1UAh4LeNQTmET3HNViRVJrWWwB/63CZVkElFHO13dso1uswl jOxdnjZ2yTDJhlpAV+qFBRZKG75cOP23RvqoXRJeCOtg+5nl0THupAuryFdIgvrRlqHf D9usUaD4w+J5U5rF+dT1MBSwz20E3mE1gWI27ticTQ6c994uMPO/EgsuMSILWi0mIIDb mbkn8DPAR8bS/CmrJuuKx77dvFmcZKeaY8yTx2lwWIekp8BQrGdGlkdL4PV4J8BPo6k6 aBO4/0q3OsdRTrwuh/PjPOTWwhiPRI/aQG9ak/LhGTTshcXNX98hSCoaR1FsyI/1N7aa lHWg== 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=Kq52XUI5T1+3s2opAU/75HnpJfNqidRGmzDvWO5DE8Q=; b=f1+Yf7ClscL3vuQiJNJF4Z0WGOlTBhJc6LbbWJG6tDx0hkNBRf+nf0mLw5tl98SigZ GYMmIIKLc3DbebD5Qk/yOeb9nvaHEjVXhpzB96WdBB0ptkN6G77wv26gg34GX76G9fPS fbyVcsXhsWRdJpl3SMSIykpoeQJOgsmuJVCwvK77fGaeqw/IK0otSzk9GyUYFmhDDCfM wigpkflxIhepYvEdpwk5ygLXATTi+nXztb9kc5sHJEn/5HLWRLmUkPwrZJap3u8x2u18 U37rDd21Rr5HQ3oOmxWiKcX5JuUzQmyWSFkz0oPw9pHzeZY0dUlheJQjHwtFeik8Cj9E IKgw== 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 ca22-20020a056a00419600b005820e7d2f9fsi12895912pfb.377.2023.01.03.22.25.10; Tue, 03 Jan 2023 22:25:22 -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 S233284AbjADGYs (ORCPT + 99 others); Wed, 4 Jan 2023 01:24:48 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41916 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230416AbjADGYX (ORCPT ); Wed, 4 Jan 2023 01:24:23 -0500 Received: from dggsgout12.his.huawei.com (unknown [45.249.212.56]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E544518396; Tue, 3 Jan 2023 22:24:21 -0800 (PST) Received: from mail02.huawei.com (unknown [172.30.67.153]) by dggsgout12.his.huawei.com (SkyGuard) with ESMTP id 4Nn01X4pWNz4f3mKw; Wed, 4 Jan 2023 14:24:16 +0800 (CST) Received: from huaweicloud.com (unknown [10.175.124.27]) by APP4 (Coremail) with SMTP id gCh0CgDnnbGOG7Vju3lKBA--.23788S9; Wed, 04 Jan 2023 14:24:19 +0800 (CST) From: Kemeng Shi To: axboe@kernel.dk, dwagner@suse.de, hare@suse.de, ming.lei@redhat.com, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org Cc: hch@lst.de, john.garry@huawei.com, jack@suse.cz Subject: [PATCH v2 07/13] blk-mq: remove error count and unncessary flush in blk_mq_try_issue_list_directly Date: Wed, 4 Jan 2023 22:22:53 +0800 Message-Id: <20230104142259.2673013-8-shikemeng@huaweicloud.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20230104142259.2673013-1-shikemeng@huaweicloud.com> References: <20230104142259.2673013-1-shikemeng@huaweicloud.com> MIME-Version: 1.0 X-CM-TRANSID: gCh0CgDnnbGOG7Vju3lKBA--.23788S9 X-Coremail-Antispam: 1UD129KBjvJXoW7tryrKF4UZw1xZF1UZF4fKrg_yoW8Zw4kpF W3Ga1qkr4avr4xurW8Ca9rG3W2vrZxGrW7KFW3Cw1aqr45KrWI9rsxXrW7Xas2krs3Ar43 WFWUWryYyayUXrDanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUBIb4IE77IF4wAFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k2 6cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M280x2IEY4vEnII2IxkI6r1a6r45M2 8IrcIa0xkI8VA2jI8067AKxVWUAVCq3wA2048vs2IY020Ec7CjxVAFwI0_Xr0E3s1l8cAv FVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28EF7xvwVC0I7IYx2IY67AKxVWDJVCq3w A2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8Jr0_Cr1UM28EF7xvwVC2z280aVAFwI0_GcCE 3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0DM2AIxVAIcxkEcVAq07x20xvEncxIr2 1l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjxv20xvE14v26r1j6r18McIj6I8E87Iv 67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xvr2IYc2Ij64vIr41l42xK82IYc2 Ij64vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4xG67AKxVWUJVWUGwC20s02 6x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r1q6r43MIIYrxkI7VAKI48JMIIF0x vE2Ix0cI8IcVAFwI0_JFI_Gr1lIxAIcVC0I7IYx2IY6xkF7I0E14v26F4j6r4UJwCI42IY 6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr0_Gr1lIxAIcVC2z280aV CY1x0267AKxVW8JVW8JrUvcSsGvfC2KfnxnUUI43ZEXa7IU0TqcUUUUUU== 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?1754072112558000257?= X-GMAIL-MSGID: =?utf-8?q?1754072112558000257?= blk_mq_try_issue_list_directly try to send a list requests belong to the same hctx to driver. Normally, we will send flush along with last request in the list by set last parameter in blk_mq_request_issue_directly. Extra flush is needed for two cases: 1. We stop sending at middle of list and normal flush along with last request will not be sent. 2. Error happens at sending last request and normal flush may be lost. We will only break list walk if we get BLK_STS_RESOURCE or BLK_STS_DEV_RESOURCE which will be stored in ret. So for case 1, we can simply check ret and send a extra flush if ret is not BLK_STS_OK. For case 2, the error of last request in the list is also stored in ret, we can simply check ret and send a extra flush if ret is not BLK_STS_OK too. Then error count is not needed and error in middle of list will not trigger unnecessary extra flush anymore. Signed-off-by: Kemeng Shi --- block/blk-mq.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/block/blk-mq.c b/block/blk-mq.c index ba917b6b5cc1..a9e88037550b 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -2804,17 +2804,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, @@ -2831,7 +2829,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 (errors && hctx->queue->mq_ops->commit_rqs && queued) + if (ret != BLK_STS_OK && hctx->queue->mq_ops->commit_rqs && queued) hctx->queue->mq_ops->commit_rqs(hctx); } From patchwork Wed Jan 4 14:22: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: 38756 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp4994116wrt; Tue, 3 Jan 2023 22:25:30 -0800 (PST) X-Google-Smtp-Source: AMrXdXvd8NkjjuroRwzzw/Oaw6z6i9E+wEhKjY9bVeFt/78AIeNZYzheUNjQ7NKTVU59tPSrUaxP X-Received: by 2002:a17:903:44a:b0:185:441e:4d0e with SMTP id iw10-20020a170903044a00b00185441e4d0emr50272733plb.62.1672813529789; Tue, 03 Jan 2023 22:25:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672813529; cv=none; d=google.com; s=arc-20160816; b=cPgKkQAL8CdmPKNuj8wWJ7tGti2U8xMkk4Rf4xsCXbQDrW14bsbhWh608jHf0KC1CU Q6z1U85JSo+Shn94/nW2XdTIgoZm1l64ISR36b30/xOamNNmCxza9rLiB8weJzOFedXO H1D2nqwroTvr7aFjpIF7HFrrvovZ9MPtd4WvCuHwf7jrNWvpj0KAcMCtpB3OKx9gWvfO ktR7muxsB2DAbHiet3VR9BeOqJ5+U5L5qLf0aLvpfjw2mJXwEqBf9549YE/uW0mWdmnf 84CHW6S1PpcLPM4lKvDF86oln8MlVVaMQJdu+1NeWqE0tqcEoQaKJJ9HFmYoXc98hJjg J88w== 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=VIcJVFXHIoTlvx4eM8X0YwbBvWhLudoqo1S+DSzloxI=; b=VqaEG1l5CrNlq1JOK0IBuOxv9HF9NdNpolrfMgYU2/lZGqoUGDyYNM3+iIZ4to44VN joJL6Uk5L93Py+g0S5UOOwH3YsyuP6Th7+Okfc1aM/jv0/b8p2qDq5jBrV7gVu/qzTtT 8dAGbXpyTXDIR2yf4AAHKEPryF+Kz+C7/hEis/h+PHmOSoccCvFxalrJei4Juz0KB424 C1ja989IqRKNhhwENnhQ2gAzEZFNsfpUUcGnyC6oY4DNP7VluUCGXJcSPAZl54XQp7k1 4soUQNFPwMkft8I04uApuyWVXJM2j/KePzinTrdJmuRca5G8DmgJM6fYMVsS5O6A7j2a 8R4g== 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 l11-20020a170902f68b00b00188630db249si24824462plg.177.2023.01.03.22.25.16; Tue, 03 Jan 2023 22:25:29 -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 S233209AbjADGYm (ORCPT + 99 others); Wed, 4 Jan 2023 01:24:42 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41918 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230483AbjADGYX (ORCPT ); Wed, 4 Jan 2023 01:24:23 -0500 Received: from dggsgout11.his.huawei.com (dggsgout11.his.huawei.com [45.249.212.51]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 56335183A0; Tue, 3 Jan 2023 22:24:22 -0800 (PST) Received: from mail02.huawei.com (unknown [172.30.67.153]) by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4Nn01Y1SSWz4f3pPl; Wed, 4 Jan 2023 14:24:17 +0800 (CST) Received: from huaweicloud.com (unknown [10.175.124.27]) by APP4 (Coremail) with SMTP id gCh0CgDnnbGOG7Vju3lKBA--.23788S10; Wed, 04 Jan 2023 14:24:19 +0800 (CST) From: Kemeng Shi To: axboe@kernel.dk, dwagner@suse.de, hare@suse.de, ming.lei@redhat.com, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org Cc: hch@lst.de, john.garry@huawei.com, jack@suse.cz Subject: [PATCH v2 08/13] blk-mq: simplify flush check in blk_mq_dispatch_rq_list Date: Wed, 4 Jan 2023 22:22:54 +0800 Message-Id: <20230104142259.2673013-9-shikemeng@huaweicloud.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20230104142259.2673013-1-shikemeng@huaweicloud.com> References: <20230104142259.2673013-1-shikemeng@huaweicloud.com> MIME-Version: 1.0 X-CM-TRANSID: gCh0CgDnnbGOG7Vju3lKBA--.23788S10 X-Coremail-Antispam: 1UD129KBjvJXoW7CFyxAr1fCF4kuw48XrWkZwb_yoW8JFWkpF W3Gayqkryaqr12yr18Ca9xGasrAws5AF1UuFZxCw1aqF45Cr4xKrZaga15Wa4kCrsayF4Y vayUWrWY9FW5Xa7anT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUBIb4IE77IF4wAFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k2 6cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M280x2IEY4vEnII2IxkI6r1a6r45M2 8IrcIa0xkI8VA2jI8067AKxVWUAVCq3wA2048vs2IY020Ec7CjxVAFwI0_Xr0E3s1l8cAv FVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28EF7xvwVC0I7IYx2IY67AKxVWDJVCq3w A2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8Jr0_Cr1UM28EF7xvwVC2z280aVAFwI0_GcCE 3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0DM2AIxVAIcxkEcVAq07x20xvEncxIr2 1l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjxv20xvE14v26r1j6r18McIj6I8E87Iv 67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xvr2IYc2Ij64vIr41l42xK82IYc2 Ij64vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4xG67AKxVWUJVWUGwC20s02 6x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r1q6r43MIIYrxkI7VAKI48JMIIF0x vE2Ix0cI8IcVAFwI0_JFI_Gr1lIxAIcVC0I7IYx2IY6xkF7I0E14v26F4j6r4UJwCI42IY 6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr0_Gr1lIxAIcVC2z280aV CY1x0267AKxVW8JVW8JrUvcSsGvfC2KfnxnUUI43ZEXa7IU0TqcUUUUUU== 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?1754072120038018362?= X-GMAIL-MSGID: =?utf-8?q?1754072120038018362?= 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. If list is empty, we only need to send extra flush if error happens at last request in the list which is stored in ret. So send a extra flush if ret is not BLK_STS_OK instead of errors is non-zero to avoid unnecessary flush for error at middle request in list. Signed-off-by: Kemeng Shi --- block/blk-mq.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/block/blk-mq.c b/block/blk-mq.c index a9e88037550b..c543c14fdb47 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -2085,8 +2085,8 @@ 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) + if ((!list_empty(list) || ret != BLK_STS_OK) && + q->mq_ops->commit_rqs && queued) q->mq_ops->commit_rqs(hctx); /* * Any items that need requeuing? Stuff them into hctx->dispatch, From patchwork Wed Jan 4 14:22: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: 38759 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp4994154wrt; Tue, 3 Jan 2023 22:25:41 -0800 (PST) X-Google-Smtp-Source: AMrXdXt9R6N0URQSNLhz6UX06pQHw7gpbT4m2dsMkBi55sb3uxNiEw8pVikEaGVv3gBPZX79L+3+ X-Received: by 2002:a05:6a20:9591:b0:af:e891:f4cb with SMTP id iu17-20020a056a20959100b000afe891f4cbmr60109104pzb.27.1672813541745; Tue, 03 Jan 2023 22:25:41 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672813541; cv=none; d=google.com; s=arc-20160816; b=IT7Ofxpn7oo+Xqm+6zOkqngsmplqp9HBPn40VfiIuOQ9CWQvvk/nw6bbZiplir41bA xmkt+ChWN6KVe6PvmCepIDQ6nFPtKh7/Wx1CGRujTzeC+WooSO+HWLbAs4Fq5lJhFyXZ rYlxbKpvGRwbr21XUvOBHGPf8poxg+ZNT/hALH8PD3UXq8ijvu06Q8aF9BDSCRI6Rv84 OGFRxSY+JFCGs88tJqMvHuI6QWMtw9djbqgZZUEO3851AZses2j5+AKsfh1968Pz2AD6 KZGWnSWbanD6l5XP4erHdo0gw4d0W5TjzxoRZGgnhwm9KLAWUSo8u29+PezABB783ox1 9vHQ== 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=KrECqHrpI11ZX1PwaX06PcpGirFtV/JCPu91tHplq88=; b=qYOy8t2Lc/CtMjvSg+KHr06qzGVN6lm7VKRmJ+ce4RKnMEeHoJw7Zs5fOtmNvQYndv LtGoCKgZ46e6gahRkPM6ISDvNRFjazhQo74zSyV1LTbiNXl3vcMympDvtJ2Uu6CqP/Ho lm2w1nUrmy1mAebFdyPNj27zBMIwrJfc4asg7aCtatFZush6HwppV4jGIyohe3CkU5Wc q0F17xUkVNJUg1Zw1J4X5fuxBsiISRzPyopWmqBqLvXT5aDmUEj5OIa3pycSzoK4GV0M EJrM2KeHQmCK5iLApu8g9Rvg6FX/R1XqTC5SW/2xMHRLHc7seb9/JTPkvtnqP3IojcPt o+uA== 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 v5-20020a63f845000000b00477c891f5a8si34316086pgj.83.2023.01.03.22.25.29; Tue, 03 Jan 2023 22:25:41 -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 S233332AbjADGY4 (ORCPT + 99 others); Wed, 4 Jan 2023 01:24:56 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41936 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231280AbjADGYY (ORCPT ); Wed, 4 Jan 2023 01:24:24 -0500 Received: from dggsgout11.his.huawei.com (dggsgout11.his.huawei.com [45.249.212.51]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 39AE417419; Tue, 3 Jan 2023 22:24:22 -0800 (PST) Received: from mail02.huawei.com (unknown [172.30.67.153]) by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4Nn01Y4G52z4f3pPn; Wed, 4 Jan 2023 14:24:17 +0800 (CST) Received: from huaweicloud.com (unknown [10.175.124.27]) by APP4 (Coremail) with SMTP id gCh0CgDnnbGOG7Vju3lKBA--.23788S11; Wed, 04 Jan 2023 14:24:20 +0800 (CST) From: Kemeng Shi To: axboe@kernel.dk, dwagner@suse.de, hare@suse.de, ming.lei@redhat.com, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org Cc: hch@lst.de, john.garry@huawei.com, jack@suse.cz Subject: [PATCH v2 09/13] blk-mq: remove unnecessary error count and check in blk_mq_dispatch_rq_list Date: Wed, 4 Jan 2023 22:22:55 +0800 Message-Id: <20230104142259.2673013-10-shikemeng@huaweicloud.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20230104142259.2673013-1-shikemeng@huaweicloud.com> References: <20230104142259.2673013-1-shikemeng@huaweicloud.com> MIME-Version: 1.0 X-CM-TRANSID: gCh0CgDnnbGOG7Vju3lKBA--.23788S11 X-Coremail-Antispam: 1UD129KBjvJXoW7Ar47WrW7uF4kWFyrGw15Jwb_yoW8uw1xpF 45Gan0y3yrXF40qFy8Aa9xGwn5trs5Aw1DGF9xC3yavFsrKrs7JF4rJrWUua1fKrs09ay7 XF1UWrWYyws7XrDanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUBIb4IE77IF4wAFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k2 6cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M280x2IEY4vEnII2IxkI6r1a6r45M2 8IrcIa0xkI8VA2jI8067AKxVWUAVCq3wA2048vs2IY020Ec7CjxVAFwI0_Xr0E3s1l8cAv FVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28EF7xvwVC0I7IYx2IY67AKxVWDJVCq3w A2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8Jr0_Cr1UM28EF7xvwVC2z280aVAFwI0_GcCE 3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0DM2AIxVAIcxkEcVAq07x20xvEncxIr2 1l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjxv20xvE14v26r1j6r18McIj6I8E87Iv 67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xvr2IYc2Ij64vIr41l42xK82IYc2 Ij64vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4xG67AKxVWUJVWUGwC20s02 6x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r1q6r43MIIYrxkI7VAKI48JMIIF0x vE2Ix0cI8IcVAFwI0_JFI_Gr1lIxAIcVC0I7IYx2IY6xkF7I0E14v26F4j6r4UJwCI42IY 6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr0_Gr1lIxAIcVC2z280aV CY1x0267AKxVW8JVW8JrUvcSsGvfC2KfnxnUUI43ZEXa7IU0TqcUUUUUU== 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?1754072132307341398?= X-GMAIL-MSGID: =?utf-8?q?1754072132307341398?= 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, we will return true if list is empty and (errors + queued) != 0. For busy error BLK_STS*_RESOURCE, the failed request will be added back to list and list will not be empty. We count queued for BLK_STS_OK and errors for rest error except busy error. So if list is empty, (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 all requests are handled. 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 c543c14fdb47..c1d4d899f059 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -2010,7 +2010,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; @@ -2021,7 +2021,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; @@ -2074,7 +2074,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)); @@ -2152,10 +2151,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 4 14:22: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: 38764 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp4994939wrt; Tue, 3 Jan 2023 22:28:50 -0800 (PST) X-Google-Smtp-Source: AMrXdXssh/OsI2lpWgseoWPOpfUgq2j3oNfkQkbB8bcnQeRUKH4jvg+mf17tH5qBlkLFYmQruoRI X-Received: by 2002:a05:6a21:1507:b0:9d:efbe:529a with SMTP id nq7-20020a056a21150700b0009defbe529amr55483371pzb.10.1672813730501; Tue, 03 Jan 2023 22:28:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672813730; cv=none; d=google.com; s=arc-20160816; b=gmP+dAZMciTqwNvudxAvPCAW9D0yoRFy7Y3GahGTaePNtSxOk/4+0MgGFc6KHNQQbX qDE1JZpDyRI4lljp1/d9Jg8NcCaNaryIUKtpyR6HsDqYYDjwXqjvucbb+SL2MKMSSF0v CPM/rRUabJw1fh8TzAhA/kvjWKHkq2+bn07AnjBfq2hHsUIOzNEJgb6wJLtax9mZyVsf +g+e9QhgthqDvqXaGprEL+AAWJ7mlC5hF2fvInqp8YmTOGkJO4lZt8Kwl1+lNV7nZFPW 0h3y/uohIEZFQXjjpDRH1TNL8n88b1gnODPw1Vcac163ImBkIHEiC7ICcW7q0RH/Nc3B K4uA== 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=tZVaZCKMjT+fGgZZdxhk9y8g821y+uQJvNaaB4pkjWU=; b=ro0HEAPemitgel0xDLmvFWBDoGpGlnw/QeerLGsXFOooVJ6MFtMpbdPQvmgQWqu+Kx URYNLkx90xh/KUCxtuGDgfXbRWITzI4eD0gN1kAZF7Q6oMoaHrdYjdZ6L/5HLLR4ce6F fv08lyOyCc/ABn7f4BmegrlZWH3eO1CoRkNE6bs7vpVP/L/548G7S0O3SxzMmjCEw0E4 Apl4fdvTXYyvCALwv56fDmYz+MGqhwiVtJKGyos13RNKZJtf/jRDSjVVr5qfH7Cyd98E KeY8WvgYkFadTe3hFla8ZRNfgqbEfcX/Ot/ag1zZ6mn7JBCrsDkJi78/uDTH5QcBcr8J PoMw== 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 y126-20020a633284000000b0046ecbfda052si32468928pgy.389.2023.01.03.22.28.37; Tue, 03 Jan 2023 22:28:50 -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 S233424AbjADGZK (ORCPT + 99 others); Wed, 4 Jan 2023 01:25:10 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41946 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232799AbjADGYY (ORCPT ); Wed, 4 Jan 2023 01:24:24 -0500 Received: from dggsgout11.his.huawei.com (dggsgout11.his.huawei.com [45.249.212.51]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E168117E01; Tue, 3 Jan 2023 22:24:23 -0800 (PST) Received: from mail02.huawei.com (unknown [172.30.67.153]) by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4Nn01Z03kwz4f3pPK; Wed, 4 Jan 2023 14:24:18 +0800 (CST) Received: from huaweicloud.com (unknown [10.175.124.27]) by APP4 (Coremail) with SMTP id gCh0CgDnnbGOG7Vju3lKBA--.23788S12; Wed, 04 Jan 2023 14:24:20 +0800 (CST) From: Kemeng Shi To: axboe@kernel.dk, dwagner@suse.de, hare@suse.de, ming.lei@redhat.com, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org Cc: hch@lst.de, john.garry@huawei.com, jack@suse.cz Subject: [PATCH v2 10/13] blk-mq: remove set of bd->last when get driver tag for next request fails Date: Wed, 4 Jan 2023 22:22:56 +0800 Message-Id: <20230104142259.2673013-11-shikemeng@huaweicloud.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20230104142259.2673013-1-shikemeng@huaweicloud.com> References: <20230104142259.2673013-1-shikemeng@huaweicloud.com> MIME-Version: 1.0 X-CM-TRANSID: gCh0CgDnnbGOG7Vju3lKBA--.23788S12 X-Coremail-Antispam: 1UD129KBjvJXoW7ZryrKr17Cr1DAw1rCrWxWFg_yoW8Kr18pF WfJayakr45XF40qFW8AwsrWF45Jw4DAryayrsxC34Sqrn8Crs2gFyUJ3yUZa4SvrWkCrsI gr4qgr1DZr48XFDanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUBIb4IE77IF4wAFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k2 6cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M280x2IEY4vEnII2IxkI6r1a6r45M2 8IrcIa0xkI8VA2jI8067AKxVWUAVCq3wA2048vs2IY020Ec7CjxVAFwI0_Xr0E3s1l8cAv FVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28EF7xvwVC0I7IYx2IY67AKxVWDJVCq3w A2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8Jr0_Cr1UM28EF7xvwVC2z280aVAFwI0_GcCE 3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0DM2AIxVAIcxkEcVAq07x20xvEncxIr2 1l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjxv20xvE14v26r1j6r18McIj6I8E87Iv 67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xvr2IYc2Ij64vIr41l42xK82IYc2 Ij64vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4xG67AKxVWUJVWUGwC20s02 6x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r1q6r43MIIYrxkI7VAKI48JMIIF0x vE2Ix0cI8IcVAFwI0_Gr0_Xr1lIxAIcVC0I7IYx2IY6xkF7I0E14v26F4j6r4UJwCI42IY 6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Gr0_Cr1lIxAIcVC2z280aV CY1x0267AKxVW8JVW8JrUvcSsGvfC2KfnxnUUI43ZEXa7IU0TqcUUUUUU== 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?1754072330559200390?= X-GMAIL-MSGID: =?utf-8?q?1754072330559200390?= 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 c1d4d899f059..882c03a3f0aa 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -1917,16 +1917,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); } @@ -2009,7 +1999,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); @@ -2035,17 +2025,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 4 14:22: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: 38761 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp4994388wrt; Tue, 3 Jan 2023 22:26:33 -0800 (PST) X-Google-Smtp-Source: AMrXdXvDRKUDoOKkHwHyyarark+8uHItdCtzT2XZ5lfyZJZNLvrejwB+RmHM3sPHmwSOV7Mg3Ho4 X-Received: by 2002:a05:6a20:42a6:b0:ad:ade2:4b57 with SMTP id o38-20020a056a2042a600b000adade24b57mr70925745pzj.42.1672813593366; Tue, 03 Jan 2023 22:26:33 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672813593; cv=none; d=google.com; s=arc-20160816; b=t1Roxa6R4geKGg3sQMtJBGTteYQM2FhXGM4WCciGTMKKMgXLKr1c43RWWWMzitIiIQ afnJnD8mGZ1wijkh3tD8niHOt/PHDZDvSgkoV15FFb/4tucFG/aEWg/G+N7C8UnGP325 lY32SD+CKlwAdlD/C3mV9RQDnmBFC6QFdCsVc7/UQR7kxID0/2BYxLC4hvOTTIKIpfRP owBbFfstg2UjLReSBZ2xWNH2sGZ846It+r1G3VEKsmq8RwqAcoiMvsD6mA75zE62x43V O6uVm/2vthhwjYRczi1uI7Dmv16RZ2xW0QlWlVKRYlpdNNQkEAq3DebFlNpJtsV7Ci6v b77w== 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=TyEWXjL3yhjj6C7XnaJnxxQwJyFIUX1pXhlRU/FGddw=; b=PrTBX5zuGR7Vtj0ZcVeOBWJD3U1VYW4iqbm4SKNhgtw8ieKDbDW9PIiW6qdE6Q4XSC wIwMoIYSCcrHBvv5ePPEDjMuJeDW3zMd03KYq34iQKmjoX/sfakMB7FpO0aXNC7T65D2 Xeoeb/n+EoyxTpdzyVZi5dkI9OZ6HsjqfzWVp1KQXQM982oUAzqcYlO/TTFJKTNv459p bvCJzsaGGyF9yJs6AlBjmcv39zlG94p+vPCQqtJC2yXVwC66AJ9fNNUBJZl7FlC7NLEy CsjLjRy9jMYA6DcejGdVqDOe9i56RZ+bt0OotcSE/q7zIfS5wjyA2IJngkXxxT2pUgA0 VL8A== 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 cb5-20020a056a00430500b00582f53a514fsi767692pfb.347.2023.01.03.22.26.21; Tue, 03 Jan 2023 22:26:33 -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 S233406AbjADGZG (ORCPT + 99 others); Wed, 4 Jan 2023 01:25:06 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41942 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232081AbjADGYY (ORCPT ); Wed, 4 Jan 2023 01:24:24 -0500 Received: from dggsgout12.his.huawei.com (unknown [45.249.212.56]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8C10013D67; Tue, 3 Jan 2023 22:24:23 -0800 (PST) Received: from mail02.huawei.com (unknown [172.30.67.153]) by dggsgout12.his.huawei.com (SkyGuard) with ESMTP id 4Nn01Z27lZz4f3nG8; Wed, 4 Jan 2023 14:24:18 +0800 (CST) Received: from huaweicloud.com (unknown [10.175.124.27]) by APP4 (Coremail) with SMTP id gCh0CgDnnbGOG7Vju3lKBA--.23788S13; Wed, 04 Jan 2023 14:24:20 +0800 (CST) From: Kemeng Shi To: axboe@kernel.dk, dwagner@suse.de, hare@suse.de, ming.lei@redhat.com, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org Cc: hch@lst.de, john.garry@huawei.com, jack@suse.cz Subject: [PATCH v2 11/13] blk-mq: remove unncessary from_schedule parameter in blk_mq_plug_issue_direct Date: Wed, 4 Jan 2023 22:22:57 +0800 Message-Id: <20230104142259.2673013-12-shikemeng@huaweicloud.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20230104142259.2673013-1-shikemeng@huaweicloud.com> References: <20230104142259.2673013-1-shikemeng@huaweicloud.com> MIME-Version: 1.0 X-CM-TRANSID: gCh0CgDnnbGOG7Vju3lKBA--.23788S13 X-Coremail-Antispam: 1UD129KBjvJXoWxuryUZr1xJw17tr13XFy8uFg_yoW5AryfpF WUJa12yrWrXrZ7X3ykAanrZry3Krs3Kryagr1ft34fXrWrKw1fJw45try3ArWIyrs5Cr43 ur45W3sxJr15GwUanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUBSb4IE77IF4wAFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k2 6cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M280x2IEY4vEnII2IxkI6r1a6r45M2 8IrcIa0xkI8VA2jI8067AKxVWUAVCq3wA2048vs2IY020Ec7CjxVAFwI0_Xr0E3s1l8cAv FVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28EF7xvwVC0I7IYx2IY67AKxVWDJVCq3w A2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8Jr0_Cr1UM28EF7xvwVC2z280aVAFwI0_GcCE 3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0DM2AIxVAIcxkEcVAq07x20xvEncxIr2 1l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjxv20xvE14v26r1j6r18McIj6I8E87Iv 67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xvr2IYc2Ij64vIr41l42xK82IYc2 Ij64vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4xG67AKxVWUJVWUGwC20s02 6x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r1q6r43MIIYrxkI7VAKI48JMIIF0x vE2Ix0cI8IcVAFwI0_Gr0_Xr1lIxAIcVC0I7IYx2IY6xkF7I0E14v26r4UJVWxJr1lIxAI cVCF04k26cxKx2IYs7xG6r1j6r1xMIIF0xvEx4A2jsIE14v26r4j6F4UMIIF0xvEx4A2js IEc7CjxVAFwI0_Gr1j6F4UJbIYCTnIWIevJa73UjIFyTuYvjxUIL05UUUUU 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?1754072186483489987?= X-GMAIL-MSGID: =?utf-8?q?1754072186483489987?= 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. Signed-off-by: Kemeng Shi Reviewed-by: Christoph Hellwig --- 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 882c03a3f0aa..696bd4a82b14 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -2528,11 +2528,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; @@ -2661,7 +2660,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; @@ -2673,7 +2672,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; } @@ -2685,7 +2684,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); @@ -2698,7 +2697,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 (ret != BLK_STS_OK) - 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, @@ -2769,7 +2768,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 4 14:22: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: 38765 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp4994965wrt; Tue, 3 Jan 2023 22:28:57 -0800 (PST) X-Google-Smtp-Source: AMrXdXvXWGXsSh2kNMJXKID2KJk98fc8gZyRXuj/8oSyk7b842ibopCe+zX4c3WR83x2Yd9N6n1T X-Received: by 2002:a05:6a20:8347:b0:b0:4f70:b2b2 with SMTP id z7-20020a056a20834700b000b04f70b2b2mr43020030pzc.46.1672813737117; Tue, 03 Jan 2023 22:28:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672813737; cv=none; d=google.com; s=arc-20160816; b=pshqUV9KFVOnQGNFuRCd94PDXTs0p6pOvpTo8Jw8nFmVl4uFQOf4/WoBio2q0qpXk7 o7CDe3krotEhVsTl7AqhPdxic76cEm3imnAaAKq2txAzE0Vtuju4DUA11c0KmwSBIGeC ivqllOzWQMmF0+ifnq9rKcizVIBdD3j6JlvmwPWGbp9kbZ7pz0ZdU/8KjI2oSqgpMxOb IbrGhkMEKJhAdZrNfN8Sq8by/YI7LIT8Q/7zAOnK5zUdMVIK5RNat7FV41exEfBK9b2m xW1wuDqy9vAAQZbMLuHWWBz5ef+hKmMafdubMt0XQFZjI+S47RnyVz0ynYcS9hx62m17 RL3w== 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=/jJoijxsSz24wN3Lx3f3070tFu0RfpbAPu97rNM3r9I=; b=FYNKqJytl2dtb/v5QczcLS4u7cWcZi0Vt2zIV8wAK5XhP4+iGtloHa25Pz4w9K1+ma IcCaVJ9S4iKLDKVYQzWFnsYah4Bto/Ia/Kf03PSi8HsuBpbqYhe0D9aVZCBaT3IXqsne vT5KjjTwLrZMturXAAcxW8ZLNrMZDlfcL2FYlDjcNcQXfbt9aEBvLTdN20GRyOXvumCG Qk4du+DgLl+XNyrPlpRjxvgdr02q5B4NQC9KZXkn3HinG/+1YcYJRwd6NZ3ji3DPo8Og yWvExg+BtffBrCpu0kpD8yMavVuSQVVE5DRk+0Bng/wmfJWikx457c8G8CK8ZSp+0G6i /iVQ== 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 a21-20020a63e855000000b0046ece301e82si34464023pgk.756.2023.01.03.22.28.44; Tue, 03 Jan 2023 22:28:57 -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 S233436AbjADGZO (ORCPT + 99 others); Wed, 4 Jan 2023 01:25:14 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41944 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232644AbjADGYY (ORCPT ); Wed, 4 Jan 2023 01:24:24 -0500 Received: from dggsgout11.his.huawei.com (dggsgout11.his.huawei.com [45.249.212.51]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F10DC17E09; Tue, 3 Jan 2023 22:24:23 -0800 (PST) Received: from mail02.huawei.com (unknown [172.30.67.153]) by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4Nn01Z6kMnz4f3vfX; Wed, 4 Jan 2023 14:24:18 +0800 (CST) Received: from huaweicloud.com (unknown [10.175.124.27]) by APP4 (Coremail) with SMTP id gCh0CgDnnbGOG7Vju3lKBA--.23788S14; Wed, 04 Jan 2023 14:24:21 +0800 (CST) From: Kemeng Shi To: axboe@kernel.dk, dwagner@suse.de, hare@suse.de, ming.lei@redhat.com, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org Cc: hch@lst.de, john.garry@huawei.com, jack@suse.cz Subject: [PATCH v2 12/13] blk-mq: use switch/case to improve readability in blk_mq_try_issue_list_directly Date: Wed, 4 Jan 2023 22:22:58 +0800 Message-Id: <20230104142259.2673013-13-shikemeng@huaweicloud.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20230104142259.2673013-1-shikemeng@huaweicloud.com> References: <20230104142259.2673013-1-shikemeng@huaweicloud.com> MIME-Version: 1.0 X-CM-TRANSID: gCh0CgDnnbGOG7Vju3lKBA--.23788S14 X-Coremail-Antispam: 1UD129KBjvdXoW7Xry5WF4fuw45tw43Gr1fCrg_yoWktFX_uF yI9rZ7GFZ8K3W3GFWFkay2yFn7G3ykXF1xuFWxtFy5WF1IgFs8Ga1UJF1YqrZrGay7CFyr uryrZrnYkr1xXjkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT 9fnUUIcSsGvfJTRUUUbSAYFVCjjxCrM7AC8VAFwI0_Wr0E3s1l1xkIjI8I6I8E6xAIw20E Y4v20xvaj40_Wr0E3s1l1IIY67AEw4v_Jr0_Jr4l87I20VAvwVAaII0Ic2I_JFv_Gryl82 xGYIkIc2x26280x7IE14v26r126s0DM28IrcIa0xkI8VCY1x0267AKxVW5JVCq3wA2ocxC 64kIII0Yj41l84x0c7CEw4AK67xGY2AK021l84ACjcxK6xIIjxv20xvE14v26w1j6s0DM2 8EF7xvwVC0I7IYx2IY6xkF7I0E14v26r4UJVWxJr1l84ACjcxK6I8E87Iv67AKxVW0oVCq 3wA2z4x0Y4vEx4A2jsIEc7CjxVAFwI0_GcCE3s1le2I262IYc4CY6c8Ij28IcVAaY2xG8w Aqx4xG64xvF2IEw4CE5I8CrVC2j2WlYx0E2Ix0cI8IcVAFwI0_Jr0_Jr4lYx0Ex4A2jsIE 14v26r1j6r4UMcvjeVCFs4IE7xkEbVWUJVW8JwACjcxG0xvY0x0EwIxGrwCF04k20xvY0x 0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F40E14v26r1j6r18MI8I3I0E 7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_Jw0_GFylIxkGc2Ij64vIr41lIxAIcV C0I7IYx2IY67AKxVW8JVW5JwCI42IY6xIIjxv20xvEc7CjxVAFwI0_Gr1j6F4UJwCI42IY 6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Gr0_Cr1lIxAIcVC2z280aV CY1x0267AKxVW8Jr0_Cr1UYxBIdaVFxhVjvjDU0xZFpf9x07jstxDUUUUU= 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?1754072337113599527?= X-GMAIL-MSGID: =?utf-8?q?1754072337113599527?= 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 | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/block/blk-mq.c b/block/blk-mq.c index 696bd4a82b14..64fa78d25d8e 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -2790,16 +2790,21 @@ 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)); + if (hctx->queue->mq_ops->commit_rqs && queued) + hctx->queue->mq_ops->commit_rqs(hctx); + return; + default: + blk_mq_end_request(rq, ret); + break; + } } /* From patchwork Wed Jan 4 14:22: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: 38763 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp4994906wrt; Tue, 3 Jan 2023 22:28:42 -0800 (PST) X-Google-Smtp-Source: AMrXdXvYAmIUOcRPTtUpNbIQE7lQ7WsdpTP7sPaOKZHme+EitrMsXf5yruisemaGI+rDUP72fU0C X-Received: by 2002:a17:902:b18b:b0:192:6198:a51b with SMTP id s11-20020a170902b18b00b001926198a51bmr42556099plr.20.1672813722266; Tue, 03 Jan 2023 22:28:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672813722; cv=none; d=google.com; s=arc-20160816; b=l0OjtFUbiQ3rhVCi6J93nfxwHnTbgDvy1Xei3qMAE3EcFun3SGpahL5298i4Xoi+VQ DWmPpsh0HwFAuiYqNvZ3PNV9u+pNE9ZcJnzXFY4PbksHLSfTE3CMG4YH4KW0xSmBvd9r zdfJWcZpDoA+rsDWwLoDIHLALrl67ZCl12hSxBC2ffhLfqgqlZMuNbK4Gvgpe/WTI0Oa b/CL2w0rKJXduhv1SdPvT5lOoZ6tMqcVYvTiS4BQ34OB9+WNrIh6Rq7SWNbIG0uvGHQj mNbDx03ff76zq5D1mCBsvcmEK6uRSDNIUZYCfMRumUPUDYQds1T8eNpZc+nBJpyVlizp fxfQ== 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=HOZh92mV0xiPRWneLvgcJqFhtbwfu34yMSKl2XAMevn0O309ZuyB356bYXwF1Xf0Eq ry9fRyxM4Ffbqjkb8dSdyHcSD3PmoF18IirN56QY+C2NSOTX8fGozjsuyqgf0F7heBS2 xcjSs+eLLCjGtNrKoSbFbUsvb5rWJQb5ONdNCWs5jOryN4OvWRgLks9IWssFINz8c2B6 AmE8TxYom2lEQf1TBb5/5EGTEq1/FY+EK7EER59EODt+luvOsu6enorHhjW7MdasFvl+ QygXecCFsr5u4lJ1uO0kbdLakK4WLaiF/8BEmsb3veT31pHqzJlVKl3W7z7Yi3eLvAqc 6hmg== 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 q12-20020a170902f78c00b00188fead22f3si18430271pln.104.2023.01.03.22.28.29; Tue, 03 Jan 2023 22:28:42 -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 S233290AbjADGZT (ORCPT + 99 others); Wed, 4 Jan 2023 01:25:19 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41954 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229773AbjADGYZ (ORCPT ); Wed, 4 Jan 2023 01:24:25 -0500 Received: from dggsgout12.his.huawei.com (unknown [45.249.212.56]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E019917419; Tue, 3 Jan 2023 22:24:24 -0800 (PST) Received: from mail02.huawei.com (unknown [172.30.67.153]) by dggsgout12.his.huawei.com (SkyGuard) with ESMTP id 4Nn01b119Cz4f3nGH; Wed, 4 Jan 2023 14:24:19 +0800 (CST) Received: from huaweicloud.com (unknown [10.175.124.27]) by APP4 (Coremail) with SMTP id gCh0CgDnnbGOG7Vju3lKBA--.23788S15; Wed, 04 Jan 2023 14:24:21 +0800 (CST) From: Kemeng Shi To: axboe@kernel.dk, dwagner@suse.de, hare@suse.de, ming.lei@redhat.com, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org Cc: hch@lst.de, john.garry@huawei.com, jack@suse.cz Subject: [PATCH v2 13/13] blk-mq: correct stale comment of .get_budget Date: Wed, 4 Jan 2023 22:22:59 +0800 Message-Id: <20230104142259.2673013-14-shikemeng@huaweicloud.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20230104142259.2673013-1-shikemeng@huaweicloud.com> References: <20230104142259.2673013-1-shikemeng@huaweicloud.com> MIME-Version: 1.0 X-CM-TRANSID: gCh0CgDnnbGOG7Vju3lKBA--.23788S15 X-Coremail-Antispam: 1UD129KBjvJXoW7CryrWr47uF1kXw43Jr45trb_yoW8Ar1xpr ZxKrWYkr4jqryDXFyfAa17JanakanFqF9xJr1ftw1Fy3W3CrZ7Xr48K345Ca18AFZaka9x ZrsF9r90qws3u37anT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUBSb4IE77IF4wAFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k2 6cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M280x2IEY4vEnII2IxkI6r1a6r45M2 8IrcIa0xkI8VA2jI8067AKxVWUAVCq3wA2048vs2IY020Ec7CjxVAFwI0_Xr0E3s1l8cAv FVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28EF7xvwVC0I7IYx2IY67AKxVWDJVCq3w A2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8Jr0_Cr1UM28EF7xvwVC2z280aVAFwI0_GcCE 3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0DM2AIxVAIcxkEcVAq07x20xvEncxIr2 1l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjxv20xvE14v26r1j6r18McIj6I8E87Iv 67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xvr2IYc2Ij64vIr41l42xK82IYc2 Ij64vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4xG67AKxVWUJVWUGwC20s02 6x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r1q6r43MIIYrxkI7VAKI48JMIIF0x vE2Ix0cI8IcVAFwI0_Gr0_Xr1lIxAIcVC0I7IYx2IY6xkF7I0E14v26r4UJVWxJr1lIxAI cVCF04k26cxKx2IYs7xG6r1j6r1xMIIF0xvEx4A2jsIE14v26r4j6F4UMIIF0xvEx4A2js IEc7CjxVAFwI0_Gr1j6F4UJbIYCTnIWIevJa73UjIFyTuYvjxUIL05UUUUU 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?1754072321696118249?= X-GMAIL-MSGID: =?utf-8?q?1754072321696118249?= 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.