From: Christoph Hellwig <hch@infradead.org>
To: Jan Kara <jack@suse.cz>
Cc: Logan Gunthorpe <logang@deltatee.com>,
Guoqing Jiang <guoqing.jiang@linux.dev>,
Donald Buczek <buczek@molgen.mpg.de>, Song Liu <song@kernel.org>,
Jens Axboe <axboe@kernel.dk>,
Paolo Valente <paolo.valente@linaro.org>,
linux-raid <linux-raid@vger.kernel.org>,
Tejun Heo <tj@kernel.org>, Christoph Hellwig <hch@infradead.org>,
linux-block@vger.kernel.org
Subject: Re: [Update PATCH V3] md: don't unregister sync_thread with reconfig_mutex held
Date: Mon, 30 May 2022 23:11:47 -0700 [thread overview]
Message-ID: <YpWxo7rCmarXMdVa@infradead.org> (raw)
In-Reply-To: <20220526115336.2whsfdcuqwfzk5fk@quack3.lan>
On Thu, May 26, 2022 at 01:53:36PM +0200, Jan Kara wrote:
> So I've debugged this. The crash happens on the very first bio submitted to
> the md0 device. The problem is that this bio gets remapped to loop0 - this
> happens through bio_alloc_clone() -> __bio_clone() which ends up calling
> bio_clone_blkg_association(). Now the resulting bio is inconsistent - it's
> dst_bio->bi_bdev is pointing to loop0 while dst_bio->bi_blkg is pointing to
> blkcg_gq associated with md0 request queue. And this breaks BFQ because
> when this bio is inserted to loop0 request queue, BFQ looks at
> bio->bi_blkg->q (it is a bit more complex than that but this is the gist
> of the problem), expects its data there but BFQ is not initialized for md0
> request_queue.
>
> Now I think this is a bug in __bio_clone() but the inconsistency in the bio
> is very much what we asked bio_clone_blkg_association() to do so maybe I'm
> missing something and bios that are associated with one bdev but pointing
> to blkg of another bdev are fine and controllers are supposed to handle
> that (although I'm not sure how should they do that). So I'm asking here
> before I just go and delete bio_clone_blkg_association() from
> __bio_clone()...
This behavior probably goes back to my commit here:
ommit d92c370a16cbe0276954c761b874bd024a7e4fac
Author: Christoph Hellwig <hch@lst.de>
Date: Sat Jun 27 09:31:48 2020 +0200
block: really clone the block cgroup in bio_clone_blkg_association
and it seems everyone else was fine with that behavior so far.
next prev parent reply other threads:[~2022-05-31 6:12 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <141b4110-767e-7670-21d5-6a5f636d1207@linux.dev>
[not found] ` <CAPhsuW6U3g-Xikbw4mAJOH1-kN42rYHLiq_ocv==436azhm33g@mail.gmail.com>
[not found] ` <b4244eab-d9e2-20a0-ebce-1a96e8fadb91@deltatee.com>
[not found] ` <836b2a93-65be-8d6c-8610-18373b88f86d@molgen.mpg.de>
[not found] ` <5b0584a3-c128-cb53-7c8a-63744c60c667@linux.dev>
[not found] ` <4edc9468-d195-6937-f550-211bccbd6756@molgen.mpg.de>
[not found] ` <954f9c33-7801-b6d2-65e3-9e5237905886@linux.dev>
[not found] ` <82a08e9c-e3f4-4eb6-cb06-58b96c0f01a8@deltatee.com>
[not found] ` <775d6734-2b08-21a8-a093-f750d31ce6ce@linux.dev>
[not found] ` <ae6d294a-e9ec-a81d-6085-a9341ed8a470@deltatee.com>
2022-05-26 11:53 ` [Update PATCH V3] md: don't unregister sync_thread with reconfig_mutex held Jan Kara
2022-05-31 6:11 ` Christoph Hellwig [this message]
2022-05-31 7:43 ` Jan Kara
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=YpWxo7rCmarXMdVa@infradead.org \
--to=hch@infradead.org \
--cc=axboe@kernel.dk \
--cc=buczek@molgen.mpg.de \
--cc=guoqing.jiang@linux.dev \
--cc=jack@suse.cz \
--cc=linux-block@vger.kernel.org \
--cc=linux-raid@vger.kernel.org \
--cc=logang@deltatee.com \
--cc=paolo.valente@linaro.org \
--cc=song@kernel.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox