All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mike Snitzer <snitzer@redhat.com>
To: Hou Tao <houtao1@huawei.com>
Cc: tj@kernel.org, dm-devel@redhat.com, agk@redhat.com
Subject: Re: dm: fix congested_fn for request-based device
Date: Tue, 3 Mar 2020 11:15:35 -0500	[thread overview]
Message-ID: <20200303161535.GA8578@redhat.com> (raw)
In-Reply-To: <20200303084501.8912-1-houtao1@huawei.com>

On Tue, Mar 03 2020 at  3:45am -0500,
Hou Tao <houtao1@huawei.com> wrote:

> We neither assign congested_fn for requested-based blk-mq device
> nor implement it correctly. So fix both.
> 
> Fixes: 4aa9c692e052 ("bdi: separate out congested state into a separate struct")
> Signed-off-by: Hou Tao <houtao1@huawei.com>
> ---
>  drivers/md/dm.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/md/dm.c b/drivers/md/dm.c
> index b89f07ee2eff..80b95e21db43 100644
> --- a/drivers/md/dm.c
> +++ b/drivers/md/dm.c
> @@ -1784,11 +1784,13 @@ static int dm_any_congested(void *congested_data, int bdi_bits)
>  
>  	if (!test_bit(DMF_BLOCK_IO_FOR_SUSPEND, &md->flags)) {
>  		if (dm_request_based(md)) {
> +			struct backing_dev_info *bdi =
> +				md->queue->backing_dev_info;
>  			/*
>  			 * With request-based DM we only need to check the
>  			 * top-level queue for congestion.
>  			 */
> -			r = md->queue->backing_dev_info->wb.state & bdi_bits;
> +			r = bdi->wb.congested->state & bdi_bits;
>  		} else {
>  			map = dm_get_live_table_fast(md);
>  			if (map)

The above change does indeed fix missing conversion that should've
occurred in commit 4aa9c692e052.

> @@ -2265,6 +2267,7 @@ int dm_setup_md_queue(struct mapped_device *md, struct dm_table *t)
>  			DMERR("Cannot initialize queue for request-based dm-mq mapped device");
>  			return r;
>  		}
> +		dm_init_normal_md_queue(md);
>  		break;
>  	case DM_TYPE_BIO_BASED:
>  	case DM_TYPE_DAX_BIO_BASED:

I've renamed dm_init_normal_md_queue to dm_init_congested_fn and removed
it's incorrect comment.

Here is the final fix I just staged:
https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git/commit/?h=dm-5.6&id=974f51e8633f0f3f33e8f86bbb5ae66758aa63c7

Thanks,
Mike

  reply	other threads:[~2020-03-03 16:15 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-03  8:45 [PATCH] dm: fix congested_fn for request-based device Hou Tao
2020-03-03 16:15 ` Mike Snitzer [this message]
2020-03-04  0:54   ` Hou Tao

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=20200303161535.GA8578@redhat.com \
    --to=snitzer@redhat.com \
    --cc=agk@redhat.com \
    --cc=dm-devel@redhat.com \
    --cc=houtao1@huawei.com \
    --cc=tj@kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.