Re: [RFC PATCH v2 1/8] block: associate blkg in submit_bio instead of bio_set_dev

Christoph Hellwig <[email protected]> Tue, 28 Jul 2026 06:23:13 +0200
Newsgroups org.kernel.vger.cgroups,org.kernel.vger.linux-block
Message-ID <[email protected]>
On Mon, Jul 27, 2026 at 04:16:29PM +0800, yu kuai wrote:
> > open-coded blkg_put().
> 
> Turns out bio will be submitted by kworker for some drivers and for
> blkcg_punt_bio_submit(). Is it possible to record blkcg during bio initialization,
> as blkcg must exist, and then covert it to blkg during submission? I can use union
> for blkcg and blkg to avoid new field in struct bio.

Mixing the two up sounds like a receipt for a lot of problems
unfortunately.  I wonder if we could switch to only store the blkcg in
the bio and look up the blkg as needed.  This assumes we can get away
with a relatively small numbers of lookups for typical setups.  I'm not
really sure how much the different users are combined - if not much this
might actually be a big net benefit, if on the other hand we'd have to
do a lot of separate lookups it might not work very well.

This could be combined with a way to do more efficient blkg lookups
using e.g. a rhashtable.