Re: [RFC PATCH v3 3/3] blk-cgroup: move async bio punt state to blkcg
Tao Cui <[email protected]>
| Newsgroups | org.kernel.vger.linux-block,dev.linux.lists.dm-devel,dev.linux.lists.gfs2,dev.linux.lists.nvdimm,dev.linux.lists.virtualization,org.kernel.vger.cgroups,org.kernel.vger.linux-bcache,org.kernel.vger.linux-doc,org.kernel.vger.linux-fsdevel,org.kernel.vger.linux-kernel,org.kernel.vger.linux-raid,org.kvack.linux-mm |
|---|---|
| Message-ID | <[email protected]> |
在 2026/8/18 15:06, Yu Kuai 写道: > blkcg_punt_bio_submit() currently queues punted bios on blkg->async_bios, > so it has to call bio_blkg() to find or create a queue-local blkg. Bios > now carry and pin the blkcg css, so punted bio lifetime no longer needs to > be anchored by a blkg. > > Keeping the punt state in blkg can instantiate a blkg even when no blkcg > policy is enabled, just to bounce submission from a shared kthread. Move > async_bio_lock, async_bios and async_bio_work to struct blkcg, and queue > punted bios on bio_blkcg() for non-root cgroups. Root or unassociated bios > are submitted directly. > > This preserves the priority-inversion avoidance while preventing > blkcg_punt_bio_submit() from creating blkgs that are not needed by any > policy. Reviewed-by: Tao Cui <[email protected]>