From: Christoph Hellwig <hch@lst.de>
To: Leah Rumancik <leah.rumancik@gmail.com>
Cc: stable@vger.kernel.org, axboe@kernel.dk,
Christoph Hellwig <hch@lst.de>,
bvanassche@acm.org, linux-block@vger.kernel.org
Subject: Re: read regression for dm-snapshot with loopback
Date: Fri, 4 Oct 2024 07:58:54 +0200 [thread overview]
Message-ID: <20241004055854.GA14489@lst.de> (raw)
In-Reply-To: <CACzhbgTFesCa-tpyCqunUoTw-1P2EJ83zDzrcB4fbMi6nNNwng@mail.gmail.com>
Hi Leah,
On Thu, Oct 03, 2024 at 02:13:52PM -0700, Leah Rumancik wrote:
> Hello,
>
> I have been investigating a read performance regression of dm-snapshot
> on top of loopback in which the read time for a dd command increased
> from 2min to 40min. I bisected the issue to dc5fc361d89 ("block:
> attempt direct issue of plug list"). I blktraced before and after this
> commit and the main difference I saw was that before this commit, when
> the performance was good, there were a lot of IO unplugs on the loop
> dev. After this commit, I saw 0 IO unplugs.
/me makes a not that it might make sense to enhance the tracing to show
which of the trace_block_unplug call sites did a particular unplug because
that might be helpful here, but I suspect the ones you saw the ones
from blk_mq_dispatch_plug_list, which now gets bypassed.
I'm not really sure how that changed things, except that I know in
old kernels we had issues with reordering I/O in this path, and
maybe your workload hit that? Did the issue order change in the
blktrace?
> On the mainline, I was also able to bisect to a commit which fixed
> this issue: 667ea36378cf ("loop: don't set QUEUE_FLAG_NOMERGES"). I
> also blktraced before and after this commit, and unsurprisingly, the
> main difference was that commit resulted in IO merges whereas
> previously there were none being.
With QUEUE_FLAG_NOMERGES even very basic merging is enabled, so that
would fix any smaller amount of reordering. It is in fact a bit
stupid that this ever got set by default on the loop driver.
> 6.6.y and 6.1.y and were both experiencing the performance issue. I
> tried porting 667ea36378 to these branches; it applied cleanly and
> resolved the issue for both. So perhaps we should consider it for the
> stable trees, but it'd be great if someone from the block layer could
> chime in with a better idea of what's going on here.
I'm totally fine with backporting the patch.
next prev parent reply other threads:[~2024-10-04 5:58 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-03 21:13 read regression for dm-snapshot with loopback Leah Rumancik
2024-10-04 5:58 ` Christoph Hellwig [this message]
2024-10-05 0:41 ` Leah Rumancik
2024-10-05 1:22 ` Stable backport request (was Re: read regression for dm-snapshot with loopback) Jens Axboe
2024-10-06 0:22 ` Sasha Levin
2024-10-06 0:36 ` 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=20241004055854.GA14489@lst.de \
--to=hch@lst.de \
--cc=axboe@kernel.dk \
--cc=bvanassche@acm.org \
--cc=leah.rumancik@gmail.com \
--cc=linux-block@vger.kernel.org \
--cc=stable@vger.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.