From patchwork Wed Sep 19 22:45:23 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bart Van Assche X-Patchwork-Id: 10606641 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 561DA14DA for ; Wed, 19 Sep 2018 22:46:24 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 459A32CD35 for ; Wed, 19 Sep 2018 22:46:24 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 396FA2CDD0; Wed, 19 Sep 2018 22:46:24 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id AA7332CD35 for ; Wed, 19 Sep 2018 22:46:23 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725983AbeITE03 (ORCPT ); Thu, 20 Sep 2018 00:26:29 -0400 Received: from com-out001.mailprotect.be ([83.217.72.83]:34675 "EHLO com-out001.mailprotect.be" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731782AbeITE03 (ORCPT ); Thu, 20 Sep 2018 00:26:29 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mailprotect.be; s=mail; h=Content-Transfer-Encoding:MIME-Version:References :In-Reply-To:Message-Id:Date:Subject:Cc:To:From:reply-to:sender:bcc: content-type; bh=ZEQ1xs3Xc1718x+pyP6MbbgvloTM9bgj5hSeZzLxa7k=; b=Av83BqrNpovO 9CXDuZGUBchicxw293RyXUX3gTn8TikGQPwp7sJUDlWFkQd6TlnwJseRcD9dWt5uJhOcQs0ku1Zs0 aayyGEEbwiO/VnwcFRJv7dZA74/BBWuO0NhQuLeeV7ivYa4bf6v4bX4bwCb6TnTOBa8+gY5SqsUpV uF13ddip5PYO9pHERWZ8JqM+oFFGs3kkJiaHOkbnnoleRCXHFCvvFLGNuRldc1oDUWWlDCJLfBKnW Pa3OF7748xOTgAOOl16YoWuqMuTls9Fx38YzDHqEr790XggFDgkkCzKuksRBJL17IR5rFOk7OCFu0 h+RENKJUtZPlmIEmCh3f5A==; Received: from smtp-auth.mailprotect.be ([178.208.39.155]) by com-mpt-out001.mailprotect.be with esmtp (Exim 4.89) (envelope-from ) id 1g2lEa-000Bn7-2J; Thu, 20 Sep 2018 00:46:13 +0200 Received: from desktop-bart.svl.corp.google.com (unknown [104.133.8.89]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp-auth.mailprotect.be (Postfix) with ESMTPSA id 04D74C06CF; Thu, 20 Sep 2018 00:45:54 +0200 (CEST) From: Bart Van Assche To: Jens Axboe Cc: linux-block@vger.kernel.org, Christoph Hellwig , Bart Van Assche , Ming Lei , Jianchao Wang , Hannes Reinecke , Johannes Thumshirn Subject: [PATCH v9 1/8] blk-mq: Document the functions that iterate over requests Date: Wed, 19 Sep 2018 15:45:23 -0700 Message-Id: <20180919224530.222469-2-bvanassche@acm.org> X-Mailer: git-send-email 2.19.0.397.gdd90340f6a-goog In-Reply-To: <20180919224530.222469-1-bvanassche@acm.org> References: <20180919224530.222469-1-bvanassche@acm.org> MIME-Version: 1.0 X-Originating-IP: 178.208.39.155 X-SpamExperts-Domain: mailprotect.be X-SpamExperts-Username: 178.208.39.128/27 Authentication-Results: mailprotect.be; auth=pass smtp.auth=178.208.39.128/27@mailprotect.be X-SpamExperts-Outgoing-Class: ham X-SpamExperts-Outgoing-Evidence: Combined (0.05) X-Recommended-Action: accept X-Filter-ID: EX5BVjFpneJeBchSMxfU5pDTxnzxzjVmaY0gkYH5okh602E9L7XzfQH6nu9C/Fh9KJzpNe6xgvOx q3u0UDjvO1tLifGj39bI0bcPyaJsYTaOqZpfO3PVJjdazu3l6Zm3CrxbKqqxVb1b/D8J7mjn9ilV cTJ2PzGYt6C/dLANFNC9eBrzwetNxEiSKDRqnfKMchy245qaCGq3TeWvoSybAt5ZBZ2f8Z/psVOj OL3ZCmxiDKqBZt+RmZBAoK6NQJjatZsKsQQxQNar1gzy+f7dghxsyhtVAWyLP3sCt0cP4c90DckQ p81EoIRVnif+ZCSpuIT8+r21d2ysG4QOmSMH+PZ2mZ1vs3dwnhTGsdnCAlxd3FLLN5JZzRmnU7SU HT2Pg8CBO1Snvm6qXHQp7O9kdbQ+474EzD6sfFobF2lAMMCyNKvOeLJBg69UhVs/U6xGLnQKyOOd NV2reR3vzxDXNzDt3skp6X1z4vnXAvsYlMbwgn3cxqjQiWJvLJ1LCTkYmgjCa8Q0z411CtB1U74U b4SbE1l0jCSqwqiEbnL4lT6XNt7k/jXBfxoamvCeW5qopzvAXfuA7SfJzjMYMU+vzUVrS0dDJ9gE sqV0wk3wKYrFWT1ROcYC8FxG576lHCGHFcRKBISRf9a0jSltkT5XdqQBJ7TPMihJUfmPOEFZaWMM jrqI2oiAXuQ1HJi38ET1Xj3gjnaj+6UA0UPkADHoS6gJylT+GdeVzzo8fCPU9s2+535SEn7rjFiH ERuQKNS8cfLzgKjV3TvSCt4dHaL//xnjPwBm5a6SZT1RnRFVD4N93bZm2kj9f81o03hZyjVcmkqY ttGnmHCh3YkGrrS+ZrB5qPrmLnSSifG4ucd7W6Xjp4wBeJ1bBzmy0cHdoxBslkCwablXWKJdZmLa wOg0zuxHfQnEW59lGakD4hu0EVRQvy23SZXSfMZ7RzHGH1l2CmFPje6vvfYmo/29qbgmYRspaguu JmcWIjzVIXF3YTHJQ3+6q4AlHWfFiKC1INpQMsHcYox7c7ZsoYwS+KCiB0skiGeLIVL4Nk7MkwIs MbrweGoFjgVERfb2WRDymz+2tgZkcRkCnoMzps1w8ZlyWgD9hJfBmJfMRsiZuwnxy0yeAs6tSdE8 TNQC3wbhPzhsZyCgxZHINA6A5+7T9o6by3fyJMzeSPO4me587e7DP/mB4b82Bi5RHSD5admVNAUi ewe6zWtZQMrfF7bZB6+xNjEvuGslKTrRIXcXpFg5ivY= X-Report-Abuse-To: spam@com-mpt-mgt001.mailprotect.be Sender: linux-block-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Make it easier to understand the purpose of the functions that iterate over requests by documenting their purpose. Fix three minor spelling mistakes in comments in these functions. Signed-off-by: Bart Van Assche Cc: Christoph Hellwig Cc: Ming Lei Cc: Jianchao Wang Cc: Hannes Reinecke Cc: Johannes Thumshirn Reviewed-by: Johannes Thumshirn --- block/blk-mq-tag.c | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/block/blk-mq-tag.c b/block/blk-mq-tag.c index 94e1ed667b6e..cb5db0c3cc32 100644 --- a/block/blk-mq-tag.c +++ b/block/blk-mq-tag.c @@ -232,13 +232,19 @@ static bool bt_iter(struct sbitmap *bitmap, unsigned int bitnr, void *data) /* * We can hit rq == NULL here, because the tagging functions - * test and set the bit before assining ->rqs[]. + * test and set the bit before assigning ->rqs[]. */ if (rq && rq->q == hctx->queue) iter_data->fn(hctx, rq, iter_data->data, reserved); return true; } +/* + * Call function @fn(@hctx, rq, @data, @reserved) for each request queued on + * @hctx that has been assigned a driver tag. @reserved indicates whether @bt + * is the breserved_tags member or the bitmap_tags member of struct + * blk_mq_tags. + */ static void bt_for_each(struct blk_mq_hw_ctx *hctx, struct sbitmap_queue *bt, busy_iter_fn *fn, void *data, bool reserved) { @@ -280,6 +286,11 @@ static bool bt_tags_iter(struct sbitmap *bitmap, unsigned int bitnr, void *data) return true; } +/* + * Call function @fn(rq, @data, @reserved) for each request in @tags that has + * been started. @reserved indicates whether @bt is the breserved_tags member + * or the bitmap_tags member of struct blk_mq_tags. + */ static void bt_tags_for_each(struct blk_mq_tags *tags, struct sbitmap_queue *bt, busy_tag_iter_fn *fn, void *data, bool reserved) { @@ -294,6 +305,10 @@ static void bt_tags_for_each(struct blk_mq_tags *tags, struct sbitmap_queue *bt, sbitmap_for_each_set(&bt->sb, bt_tags_iter, &iter_data); } +/* + * Call @fn(rq, @priv, reserved) for each started request in @tags. 'reserved' + * indicates whether or not 'rq' is a reserved request. + */ static void blk_mq_all_tag_busy_iter(struct blk_mq_tags *tags, busy_tag_iter_fn *fn, void *priv) { @@ -302,6 +317,10 @@ static void blk_mq_all_tag_busy_iter(struct blk_mq_tags *tags, bt_tags_for_each(tags, &tags->bitmap_tags, fn, priv, false); } +/* + * Call @fn(rq, @priv, reserved) for each request in @tagset. 'reserved' + * indicates whether or not 'rq' is a reserved request. + */ void blk_mq_tagset_busy_iter(struct blk_mq_tag_set *tagset, busy_tag_iter_fn *fn, void *priv) { @@ -314,6 +333,11 @@ void blk_mq_tagset_busy_iter(struct blk_mq_tag_set *tagset, } EXPORT_SYMBOL(blk_mq_tagset_busy_iter); +/* + * Call @fn(rq, @priv, reserved) for each request associated with request + * queue @q or any queue it shares tags with and that has been assigned a + * driver tag. 'reserved' indicates whether or not 'rq' is a reserved request. + */ void blk_mq_queue_tag_busy_iter(struct request_queue *q, busy_iter_fn *fn, void *priv) { @@ -323,7 +347,7 @@ void blk_mq_queue_tag_busy_iter(struct request_queue *q, busy_iter_fn *fn, /* * __blk_mq_update_nr_hw_queues will update the nr_hw_queues and * queue_hw_ctx after freeze the queue. So we could use q_usage_counter - * to avoid race with it. __blk_mq_update_nr_hw_queues will users + * to avoid race with it. __blk_mq_update_nr_hw_queues will use * synchronize_rcu to ensure all of the users go out of the critical * section below and see zeroed q_usage_counter. */ @@ -337,7 +361,7 @@ void blk_mq_queue_tag_busy_iter(struct request_queue *q, busy_iter_fn *fn, struct blk_mq_tags *tags = hctx->tags; /* - * If not software queues are currently mapped to this + * If no software queues are currently mapped to this * hardware queue, there's nothing to check */ if (!blk_mq_hw_queue_mapped(hctx))