From: Guenter Roeck <linux@roeck-us.net>
To: Laibin Qiu <qiulaibin@huawei.com>
Cc: axboe@kernel.dk, ming.lei@redhat.com, john.garry@huawei.com,
martin.petersen@oracle.com, hare@suse.de,
akpm@linux-foundation.org, bvanassche@acm.org,
andriy.shevchenko@linux.intel.com, linux-block@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH -next V5] blk-mq: fix tag_get wait task can't be awakened
Date: Wed, 26 Jan 2022 17:32:38 -0800 [thread overview]
Message-ID: <20220127013238.GA1478141@roeck-us.net> (raw)
In-Reply-To: <20220113025536.1479653-1-qiulaibin@huawei.com>
Hi,
On Thu, Jan 13, 2022 at 10:55:36AM +0800, Laibin Qiu wrote:
> In case of shared tags, there might be more than one hctx which
> allocates from the same tags, and each hctx is limited to allocate at
> most:
> hctx_max_depth = max((bt->sb.depth + users - 1) / users, 4U);
>
> tag idle detection is lazy, and may be delayed for 30sec, so there
> could be just one real active hctx(queue) but all others are actually
> idle and still accounted as active because of the lazy idle detection.
> Then if wake_batch is > hctx_max_depth, driver tag allocation may wait
> forever on this real active hctx.
>
> Fix this by recalculating wake_batch when inc or dec active_queues.
>
> Fixes: 0d2602ca30e41 ("blk-mq: improve support for shared tags maps")
> Suggested-by: Ming Lei <ming.lei@redhat.com>
> Suggested-by: John Garry <john.garry@huawei.com>
> Signed-off-by: Laibin Qiu <qiulaibin@huawei.com>
I understand this problem has been reported already, but still:
This patch causes a hang in several of my qemu emulations when
trying to boot from usb. Reverting it fixes the problem. Bisect log
is attached.
Boot logs are available at
https://kerneltests.org/builders/qemu-arm-aspeed-master/builds/230/steps/qemubuildcommand/logs/stdio
but don't really show much: the affected tests simply hang until they
are aborted.
Guenter
---
bisect log:
# bad: [0280e3c58f92b2fe0e8fbbdf8d386449168de4a8] Merge tag 'nfs-for-5.17-1' of git://git.linux-nfs.org/projects/anna/linux-nfs
# good: [64f29d8856a9e0d1fcdc5344f76e70c364b941cb] Merge tag 'ceph-for-5.17-rc1' of git://github.com/ceph/ceph-client
git bisect start 'HEAD' '64f29d8856a9'
# bad: [b087788c20aa959f83df989b31fdcc4182b2d067] Merge tag 'ata-5.17-rc1-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/libata
git bisect bad b087788c20aa959f83df989b31fdcc4182b2d067
# bad: [0854dc81e108c90cccda6d1fc54bc270f16a3cc9] Merge tag 'docs-5.17-2' of git://git.lwn.net/linux
git bisect bad 0854dc81e108c90cccda6d1fc54bc270f16a3cc9
# good: [75242f31db6cabf602a5eb84c13b579099d72a65] Merge tag 'rtc-5.17' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux
git bisect good 75242f31db6cabf602a5eb84c13b579099d72a65
# good: [f3a78227eef20c0ba13bbf9401f0a340bca3ad16] Merge tag 'io_uring-5.17-2022-01-21' of git://git.kernel.dk/linux-block
git bisect good f3a78227eef20c0ba13bbf9401f0a340bca3ad16
# bad: [3c7c25038b6c7d66a6816028219914379be6a5cc] Merge tag 'block-5.17-2022-01-21' of git://git.kernel.dk/linux-block
git bisect bad 3c7c25038b6c7d66a6816028219914379be6a5cc
# bad: [e6a2e5116e07ce5acc8698785c29e9e47f010fd5] block: Remove unnecessary variable assignment
git bisect bad e6a2e5116e07ce5acc8698785c29e9e47f010fd5
# bad: [413ec8057bc3d368574abd05dd27e747063b2f59] loop: remove redundant initialization of pointer node
git bisect bad 413ec8057bc3d368574abd05dd27e747063b2f59
# bad: [180dccb0dba4f5e84a4a70c1be1d34cbb6528b32] blk-mq: fix tag_get wait task can't be awakened
git bisect bad 180dccb0dba4f5e84a4a70c1be1d34cbb6528b32
# first bad commit: [180dccb0dba4f5e84a4a70c1be1d34cbb6528b32] blk-mq: fix tag_get wait task can't be awakened
next prev parent reply other threads:[~2022-01-27 1:32 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-13 2:55 [PATCH -next V5] blk-mq: fix tag_get wait task can't be awakened Laibin Qiu
2022-01-13 10:51 ` Andy Shevchenko
2022-01-13 19:52 ` Jens Axboe
2022-01-27 1:32 ` Guenter Roeck [this message]
2022-01-27 17:28 ` Jens Axboe
2022-01-27 18:04 ` Guenter Roeck
2022-01-27 18:06 ` Jens Axboe
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=20220127013238.GA1478141@roeck-us.net \
--to=linux@roeck-us.net \
--cc=akpm@linux-foundation.org \
--cc=andriy.shevchenko@linux.intel.com \
--cc=axboe@kernel.dk \
--cc=bvanassche@acm.org \
--cc=hare@suse.de \
--cc=john.garry@huawei.com \
--cc=linux-block@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=ming.lei@redhat.com \
--cc=qiulaibin@huawei.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 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.