linux-block.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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,


      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).