gfs2.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH v1 0/3] blk-cgroup: store blkcg in bio before blkcg_mutex conversion
@ 2026-08-04  6:53 Yu Kuai
  2026-08-04  6:53 ` [RFC PATCH v1 1/3] blk-cgroup: add helpers for bio cgroup state Yu Kuai
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Yu Kuai @ 2026-08-04  6:53 UTC (permalink / raw)
  To: Jens Axboe
  Cc: Tejun Heo, Johannes Weiner, Michal Koutný, Jonathan Corbet,
	Yu Kuai, Josef Bacik, Coly Li, Kent Overstreet, Alasdair Kergon,
	Mike Snitzer, Mikulas Patocka, Benjamin Marzinski, Song Liu,
	Dan Williams, Vishal Verma, Dave Jiang, Alison Schofield,
	Pankaj Gupta, Andreas Gruenbacher, Matthew Wilcox, Jan Kara,
	Andrew Morton, Chris Li, Kairui Song, Christoph Hellwig,
	Nilay Shroff, Tao Cui, cgroups, linux-doc, linux-kernel,
	linux-block, linux-bcache, dm-devel, linux-raid, nvdimm,
	virtualization, gfs2, linux-fsdevel, linux-mm

From: Yu Kuai <yukuai@fygo.io>

This RFC is a preparatory series for the blkcg_mutex conversion proposed in
the blkcg_mutex RFC v2 series [1].  That series moves queue-local blkg
topology synchronization from q->queue_lock to q->blkcg_mutex.  A direct
conversion is awkward while bios store queue-local blkg references, because
bio allocation, bio_set_dev(), remap and clone paths can run in contexts
where creating a missing blkg must not sleep or is unnecessary.

This set makes the bio association queue-independent by storing the blkcg
in the bio instead of a blkg.  A blkg is looked up from the bio's blkcg and
current bdev only when blkcg policy or accounting code needs it.  The first
successful policy lookup pins the blkg with a bio-owned reference tracked by
BIO_BLKG_REF; the reference is dropped when the bio cgroup association is
cleared or when bio_set_dev() changes the lookup key.

Patch 1 adds accessors for the current bio cgroup state and factors out the
release path.  Patch 2 switches the stored bio association from blkg to blkcg,
adds lookup/create helpers for policy users, and converts the blkcg policies
and cloned-bio users.  Patch 3 moves async bio punt state from blkg to blkcg
so punted bios do not instantiate a queue-local blkg when no policy needs one.

This is v1 of this preparatory set; there is no previous version.

Related series:
  [1] RFC v2 blk-cgroup: protect blkgs with blkcg_mutex
      https://lore.kernel.org/r/20260724123037.3004560-1-yukuai@kernel.org

Yu Kuai (3):
  blk-cgroup: add helpers for bio cgroup state
  blk-cgroup: store blkcg in bio instead of blkg
  blk-cgroup: move async bio punt state to blkcg

 Documentation/admin-guide/cgroup-v2.rst |   2 +-
 block/bfq-cgroup.c                      |  14 +-
 block/bfq-iosched.c                     |  18 +-
 block/bio.c                             |  22 +--
 block/blk-cgroup-fc-appid.c             |  10 +-
 block/blk-cgroup.c                      | 251 +++++++++++++++---------
 block/blk-cgroup.h                      |  40 +++-
 block/blk-crypto-fallback.c             |   2 +-
 block/blk-iocost.c                      |  12 +-
 block/blk-iolatency.c                   |  11 +-
 block/blk-ioprio.c                      |   2 +-
 block/blk-throttle.c                    |   2 +-
 block/blk-throttle.h                    |   2 +-
 drivers/md/bcache/request.c             |   2 +-
 drivers/md/dm.c                         |   2 +-
 drivers/md/md.c                         |   2 +-
 drivers/nvdimm/nd_virtio.c              |   2 +-
 fs/gfs2/lops.c                          |   3 +-
 include/linux/bio.h                     |  20 +-
 include/linux/blk_types.h               |   9 +-
 include/linux/writeback.h               |   2 +-
 mm/page_io.c                            |  10 +-
 22 files changed, 268 insertions(+), 172 deletions(-)

base-commit: f2690679ecf3a3151688ebef766dd2512ff95854
-- 
2.51.0

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2026-08-05  0:59 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-04  6:53 [RFC PATCH v1 0/3] blk-cgroup: store blkcg in bio before blkcg_mutex conversion Yu Kuai
2026-08-04  6:53 ` [RFC PATCH v1 1/3] blk-cgroup: add helpers for bio cgroup state Yu Kuai
2026-08-04 10:52   ` Jan Kara
2026-08-04 13:25     ` Christoph Hellwig
2026-08-04 15:07       ` yu kuai
2026-08-04  6:53 ` [RFC PATCH v1 2/3] blk-cgroup: store blkcg in bio instead of blkg Yu Kuai
2026-08-04  9:19   ` Tao Cui
2026-08-04 13:32     ` Christoph Hellwig
2026-08-04 15:30       ` yu kuai
2026-08-04 15:47         ` Christoph Hellwig
2026-08-05  0:58         ` Tao Cui
2026-08-04  6:53 ` [RFC PATCH v1 3/3] blk-cgroup: move async bio punt state to blkcg Yu Kuai

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).