All of lore.kernel.org
 help / color / mirror / Atom feed
From: "yu kuai" <yukuai@fygo.io>
To: "Yu Kuai" <yukuai@kernel.org>, <nilay@linux.ibm.com>,
	 <tom.leiming@gmail.com>, <bvanassche@acm.org>, <tj@kernel.org>,
	 <josef@toxicpanda.com>, <axboe@kernel.dk>
Cc: <akpm@linux-foundation.org>, <chrisl@kernel.org>,
	<kasong@tencent.com>,  <shikemeng@huaweicloud.com>,
	<nphamcs@gmail.com>, <bhe@redhat.com>,  <baohua@kernel.org>,
	<youngjun.park@lge.com>, <cgroups@vger.kernel.org>,
	 <linux-block@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	 <linux-mm@kvack.org>, <yukuai@fygo.io>
Subject: Re: [PATCH 0/8] blk-cgroup: remove queue_lock nesting from blkcg paths
Date: Wed, 24 Jun 2026 14:57:59 +0800	[thread overview]
Message-ID: <1c739fcc-5132-4cb2-bf34-cec94de26509@fygo.io> (raw)
In-Reply-To: <cover.1780621988.git.yukuai@fygo.io>

Friendly ping ...

This set can still be applied cleanly for block-7.2 branch.

在 2026/6/8 11:42, Yu Kuai 写道:
> From: Yu Kuai <yukuai@fygo.io>
>
> Hi,
>
> This series is the follow-up blk-cgroup locking cleanup on top of the
> earlier blkg-list protection fixes, and prepares blk-cgroup to stop using
> q->queue_lock as the global blkg lifetime/iteration lock.
>
> The current queue_lock based protection is hard to maintain because
> queue_lock is used from hardirq and softirq completion paths, while some
> blkcg cgroup file paths also need to iterate blkgs, print policy data, or
> create blkgs from RCU-protected contexts.  This series first tightens the
> blkcg-side lifetime rules:
>
> - blkcg_print_stat() iterates blkgs under blkcg->lock with IRQs disabled.
> - policy data freeing is delayed past an RCU grace period.
> - blkcg_print_blkgs(), blkg lookup/create, bio association, page-IO
>    association, blkg destruction, and BFQ initialization stop nesting
>    queue_lock under RCU or blkcg->lock.
>
> Using blkcg->lock and RCU for blkcg-owned lists/data keeps the lock order
> local to blk-cgroup and avoids extending queue_lock into cgroup file
> iteration paths.  It also makes the subsequent conversion to q->blkcg_mutex
> possible without carrying forward queue_lock's interrupt-context
> constraints.
>
> Yu Kuai (8):
>    blk-cgroup: protect iterating blkgs with blkcg->lock in
>      blkcg_print_stat()
>    blk-cgroup: delay freeing policy data after rcu grace period
>    blk-cgroup: don't nest queue_lock under rcu in blkcg_print_blkgs()
>    blk-cgroup: don't nest queue_lock under rcu in blkg_lookup_create()
>    blk-cgroup: don't nest queue_lock under rcu in bio_associate_blkg()
>    blk-cgroup: don't nest queue_lock under blkcg->lock in
>      blkcg_destroy_blkgs()
>    mm/page_io: don't nest queue_lock under rcu in
>      bio_associate_blkg_from_page()
>    block, bfq: don't grab queue_lock to initialize bfq
>
>   block/bfq-cgroup.c        |  17 ++++-
>   block/bfq-iosched.c       |   5 --
>   block/blk-cgroup-rwstat.c |  15 ++--
>   block/blk-cgroup.c        | 151 ++++++++++++++++++++++----------------
>   block/blk-cgroup.h        |   8 +-
>   block/blk-iocost.c        |  22 ++++--
>   block/blk-iolatency.c     |  10 ++-
>   block/blk-throttle.c      |  13 +++-
>   mm/page_io.c              |   7 +-
>   9 files changed, 158 insertions(+), 90 deletions(-)
>
>
> base-commit: b23df513de562739af61fa61ba80ef5e8059a636

-- 
Thanks,
Kuai


  parent reply	other threads:[~2026-06-24  6:58 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-08  3:42 [PATCH 0/8] blk-cgroup: remove queue_lock nesting from blkcg paths Yu Kuai
2026-06-08  3:42 ` [PATCH 1/8] blk-cgroup: protect iterating blkgs with blkcg->lock in blkcg_print_stat() Yu Kuai
2026-06-08  3:42 ` [PATCH 2/8] blk-cgroup: delay freeing policy data after rcu grace period Yu Kuai
2026-06-08  3:42 ` [PATCH 3/8] blk-cgroup: don't nest queue_lock under rcu in blkcg_print_blkgs() Yu Kuai
2026-06-08  3:42 ` [PATCH 4/8] blk-cgroup: don't nest queue_lock under rcu in blkg_lookup_create() Yu Kuai
2026-06-08  3:42 ` [PATCH 5/8] blk-cgroup: don't nest queue_lock under rcu in bio_associate_blkg() Yu Kuai
2026-06-08  3:42 ` [PATCH 6/8] blk-cgroup: don't nest queue_lock under blkcg->lock in blkcg_destroy_blkgs() Yu Kuai
2026-06-08  3:42 ` [PATCH 7/8] mm/page_io: don't nest queue_lock under rcu in bio_associate_blkg_from_page() Yu Kuai
2026-06-08  3:42 ` [PATCH 8/8] block, bfq: don't grab queue_lock to initialize bfq Yu Kuai
2026-06-24  6:57 ` yu kuai [this message]
2026-06-24 12:43   ` [PATCH 0/8] blk-cgroup: remove queue_lock nesting from blkcg paths Jens Axboe
2026-06-24 12:53 ` 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=1c739fcc-5132-4cb2-bf34-cec94de26509@fygo.io \
    --to=yukuai@fygo.io \
    --cc=akpm@linux-foundation.org \
    --cc=axboe@kernel.dk \
    --cc=baohua@kernel.org \
    --cc=bhe@redhat.com \
    --cc=bvanassche@acm.org \
    --cc=cgroups@vger.kernel.org \
    --cc=chrisl@kernel.org \
    --cc=josef@toxicpanda.com \
    --cc=kasong@tencent.com \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=nilay@linux.ibm.com \
    --cc=nphamcs@gmail.com \
    --cc=shikemeng@huaweicloud.com \
    --cc=tj@kernel.org \
    --cc=tom.leiming@gmail.com \
    --cc=youngjun.park@lge.com \
    --cc=yukuai@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.