From: Mike Snitzer <snitzer@redhat.com>
To: Ming Lei <ming.lei@redhat.com>
Cc: Jens Axboe <axboe@kernel.dk>,
linux-block@vger.kernel.org,
Jeffle Xu <jefflexu@linux.alibaba.com>,
dm-devel@redhat.com
Subject: Re: [PATCH V3 13/13] dm: support IO polling for bio-based dm device
Date: Thu, 25 Mar 2021 14:45:19 -0400 [thread overview]
Message-ID: <20210325184519.GB17820@redhat.com> (raw)
In-Reply-To: <20210324121927.362525-14-ming.lei@redhat.com>
On Wed, Mar 24 2021 at 8:19am -0400,
Ming Lei <ming.lei@redhat.com> wrote:
> From: Jeffle Xu <jefflexu@linux.alibaba.com>
>
> IO polling is enabled when all underlying target devices are capable
> of IO polling. The sanity check supports the stacked device model, in
> which one dm device may be build upon another dm device. In this case,
> the mapped device will check if the underlying dm target device
> supports IO polling.
>
> Signed-off-by: Jeffle Xu <jefflexu@linux.alibaba.com>
> Signed-off-by: Ming Lei <ming.lei@redhat.com>
> ---
> drivers/md/dm-table.c | 24 ++++++++++++++++++++++++
> drivers/md/dm.c | 14 ++++++++++++++
> include/linux/device-mapper.h | 1 +
> 3 files changed, 39 insertions(+)
>
...
> diff --git a/drivers/md/dm.c b/drivers/md/dm.c
> index 50b693d776d6..fe6893b078dc 100644
> --- a/drivers/md/dm.c
> +++ b/drivers/md/dm.c
> @@ -1720,6 +1720,19 @@ static blk_qc_t dm_submit_bio(struct bio *bio)
> return ret;
> }
>
> +static bool dm_bio_poll_capable(struct gendisk *disk)
> +{
> + int ret, srcu_idx;
> + struct mapped_device *md = disk->private_data;
> + struct dm_table *t;
> +
> + t = dm_get_live_table(md, &srcu_idx);
> + ret = dm_table_supports_poll(t);
> + dm_put_live_table(md, srcu_idx);
> +
> + return ret;
> +}
> +
I know this code will only get called by blk-core if bio-based but there
isn't anything about this method's implementation that is inherently
bio-based only.
So please rename from dm_bio_poll_capable to dm_poll_capable
Other than that:
Reviewed-by: Mike Snitzer <snitzer@redhat.com>
> /*-----------------------------------------------------------------
> * An IDR is used to keep track of allocated minor numbers.
> *---------------------------------------------------------------*/
> @@ -3132,6 +3145,7 @@ static const struct pr_ops dm_pr_ops = {
> };
>
> static const struct block_device_operations dm_blk_dops = {
> + .poll_capable = dm_bio_poll_capable,
> .submit_bio = dm_submit_bio,
> .open = dm_blk_open,
> .release = dm_blk_close,
prev parent reply other threads:[~2021-03-25 18:46 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-24 12:19 [PATCH V3 00/13] block: support bio based io polling Ming Lei
2021-03-24 12:19 ` [PATCH V3 01/13] block: add helper of blk_queue_poll Ming Lei
2021-03-24 13:19 ` Hannes Reinecke
2021-03-24 17:54 ` Christoph Hellwig
2021-03-25 1:56 ` JeffleXu
2021-03-24 12:19 ` [PATCH V3 02/13] block: add one helper to free io_context Ming Lei
2021-03-24 13:21 ` Hannes Reinecke
2021-03-24 12:19 ` [PATCH V3 03/13] block: add helper of blk_create_io_context Ming Lei
2021-03-24 13:22 ` Hannes Reinecke
2021-03-24 15:52 ` Keith Busch
2021-03-24 18:17 ` Christoph Hellwig
2021-03-25 0:30 ` Ming Lei
2021-03-24 12:19 ` [PATCH V3 04/13] block: create io poll context for submission and poll task Ming Lei
2021-03-24 13:26 ` Hannes Reinecke
2021-03-25 2:34 ` JeffleXu
2021-03-25 2:51 ` Ming Lei
2021-03-25 3:01 ` JeffleXu
2021-03-24 12:19 ` [PATCH V3 05/13] block: add req flag of REQ_POLL_CTX Ming Lei
2021-03-24 15:32 ` Hannes Reinecke
2021-03-25 0:32 ` Ming Lei
2021-03-25 6:55 ` JeffleXu
2021-03-24 12:19 ` [PATCH V3 06/13] block: add new field into 'struct bvec_iter' Ming Lei
2021-03-24 15:33 ` Hannes Reinecke
2021-03-24 12:19 ` [PATCH V3 07/13] block/mq: extract one helper function polling hw queue Ming Lei
2021-03-25 6:50 ` Hannes Reinecke
2021-03-24 12:19 ` [PATCH V3 08/13] block: prepare for supporting bio_list via other link Ming Lei
2021-03-26 15:02 ` Hannes Reinecke
2021-03-24 12:19 ` [PATCH V3 09/13] block: use per-task poll context to implement bio based io polling Ming Lei
2021-03-25 6:34 ` JeffleXu
2021-03-25 8:05 ` Ming Lei
2021-03-25 9:18 ` JeffleXu
2021-03-25 9:56 ` Ming Lei
2021-03-24 12:19 ` [PATCH V3 10/13] blk-mq: limit hw queues to be polled in each blk_poll() Ming Lei
2021-03-24 12:19 ` [PATCH V3 11/13] block: add queue_to_disk() to get gendisk from request_queue Ming Lei
2021-03-24 12:19 ` [PATCH V3 12/13] block: add poll_capable method to support bio-based IO polling Ming Lei
2021-03-24 12:19 ` [PATCH V3 13/13] dm: support IO polling for bio-based dm device Ming Lei
2021-03-25 18:45 ` Mike Snitzer [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210325184519.GB17820@redhat.com \
--to=snitzer@redhat.com \
--cc=axboe@kernel.dk \
--cc=dm-devel@redhat.com \
--cc=jefflexu@linux.alibaba.com \
--cc=linux-block@vger.kernel.org \
--cc=ming.lei@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).