From: Tejun Heo <tj@kernel.org>
To: axboe@kernel.dk
Cc: shli@kernel.org, linux-kernel@vger.kernel.org,
kernel-team@fb.com, lizefan@huawei.com, hannes@cmpxchg.org,
cgroups@vger.kernel.org, guro@fb.com, Tejun Heo <tj@kernel.org>
Subject: [PATCH 1/7] blkcg: relocate __blkg_release_rcu()
Date: Sun, 12 Nov 2017 14:26:07 -0800 [thread overview]
Message-ID: <20171112222613.3613362-2-tj@kernel.org> (raw)
In-Reply-To: <20171112222613.3613362-1-tj@kernel.org>
Move __blkg_release_rcu() above blkg_alloc(). This is a pure code
reorganization to prepare for the switch to percpu_ref.
Signed-off-by: Tejun Heo <tj@kernel.org>
---
block/blk-cgroup.c | 46 +++++++++++++++++++++++-----------------------
1 file changed, 23 insertions(+), 23 deletions(-)
diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c
index d3f56ba..6482be5 100644
--- a/block/blk-cgroup.c
+++ b/block/blk-cgroup.c
@@ -81,6 +81,29 @@ static void blkg_free(struct blkcg_gq *blkg)
kfree(blkg);
}
+/*
+ * A group is RCU protected, but having an rcu lock does not mean that one
+ * can access all the fields of blkg and assume these are valid. For
+ * example, don't try to follow throtl_data and request queue links.
+ *
+ * Having a reference to blkg under an rcu allows accesses to only values
+ * local to groups like group stats and group rate limits.
+ */
+void __blkg_release_rcu(struct rcu_head *rcu_head)
+{
+ struct blkcg_gq *blkg = container_of(rcu_head, struct blkcg_gq, rcu_head);
+
+ /* release the blkcg and parent blkg refs this blkg has been holding */
+ css_put(&blkg->blkcg->css);
+ if (blkg->parent)
+ blkg_put(blkg->parent);
+
+ wb_congested_put(blkg->wb_congested);
+
+ blkg_free(blkg);
+}
+EXPORT_SYMBOL_GPL(__blkg_release_rcu);
+
/**
* blkg_alloc - allocate a blkg
* @blkcg: block cgroup the new blkg is associated with
@@ -378,29 +401,6 @@ static void blkg_destroy_all(struct request_queue *q)
}
/*
- * A group is RCU protected, but having an rcu lock does not mean that one
- * can access all the fields of blkg and assume these are valid. For
- * example, don't try to follow throtl_data and request queue links.
- *
- * Having a reference to blkg under an rcu allows accesses to only values
- * local to groups like group stats and group rate limits.
- */
-void __blkg_release_rcu(struct rcu_head *rcu_head)
-{
- struct blkcg_gq *blkg = container_of(rcu_head, struct blkcg_gq, rcu_head);
-
- /* release the blkcg and parent blkg refs this blkg has been holding */
- css_put(&blkg->blkcg->css);
- if (blkg->parent)
- blkg_put(blkg->parent);
-
- wb_congested_put(blkg->wb_congested);
-
- blkg_free(blkg);
-}
-EXPORT_SYMBOL_GPL(__blkg_release_rcu);
-
-/*
* The next function used by blk_queue_for_each_rl(). It's a bit tricky
* because the root blkg uses @q->root_rl instead of its own rl.
*/
--
2.9.5
next prev parent reply other threads:[~2017-11-12 22:26 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-12 22:26 [PATCHSET] blkcg: basic accounting and throttling fixes Tejun Heo
2017-11-12 22:26 ` Tejun Heo
2017-11-12 22:26 ` Tejun Heo [this message]
[not found] ` <20171112222613.3613362-2-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-11-14 23:12 ` [PATCH 1/7] blkcg: relocate __blkg_release_rcu() Shaohua Li
2017-11-14 23:12 ` Shaohua Li
2017-11-12 22:26 ` [PATCH 2/7] blkcg: use percpu_ref for blkcg_gq->refcnt Tejun Heo
[not found] ` <20171112222613.3613362-3-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-11-14 23:12 ` Shaohua Li
2017-11-14 23:12 ` Shaohua Li
2017-11-12 22:26 ` [PATCH 3/7] blkcg: associate a request with its blkcg_gq instead of request_list Tejun Heo
2017-11-13 20:15 ` [PATCH v2 " Tejun Heo
2017-11-13 20:15 ` Tejun Heo
[not found] ` <20171113201523.GM983427-4dN5La/x3IkLX0oZNxdnEQ2O0Ztt9esIQQ4Iyu8u01E@public.gmane.org>
2017-11-14 23:17 ` Shaohua Li
2017-11-14 23:17 ` Shaohua Li
2017-11-15 17:11 ` Tejun Heo
2017-11-12 22:26 ` [PATCH 4/7] blkcg: refactor blkcg_gq lookup and creation in blkcg_bio_issue_check() Tejun Heo
[not found] ` <20171112222613.3613362-5-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-11-14 23:18 ` Shaohua Li
2017-11-14 23:18 ` Shaohua Li
[not found] ` <20171112222613.3613362-1-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-11-12 22:26 ` [PATCH 5/7] blkcg: associate blk-mq requests with the matching blkcg_gqs Tejun Heo
2017-11-12 22:26 ` Tejun Heo
2017-11-12 22:26 ` [PATCH 6/7] blkcg: account requests instead of bios for request based request_queues Tejun Heo
[not found] ` <20171112222613.3613362-7-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-11-14 23:23 ` Shaohua Li
2017-11-14 23:23 ` Shaohua Li
[not found] ` <20171114232355.vjxlzfbqbqj5ihq4-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-11-15 17:18 ` [PATCH v2 " Tejun Heo
2017-11-15 17:18 ` Tejun Heo
2017-11-15 17:19 ` [PATCH " Jens Axboe
2017-11-15 17:19 ` Jens Axboe
[not found] ` <9a2ddc6a-d618-a896-290c-254ffeb5e9d6-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org>
2017-11-15 17:22 ` [PATCH v3 " Tejun Heo
2017-11-15 17:22 ` Tejun Heo
2017-11-12 22:26 ` [PATCH 7/7] blk-throtl: don't throttle the same IO multiple times Tejun Heo
[not found] ` <20171112222613.3613362-8-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-11-13 4:07 ` Shaohua Li
2017-11-13 4:07 ` Shaohua Li
[not found] ` <20171113040716.kaheegc4qub42n6z-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-11-13 11:13 ` Tejun Heo
2017-11-13 11:13 ` Tejun Heo
[not found] ` <20171113111348.GF983427-4dN5La/x3IkLX0oZNxdnEQ2O0Ztt9esIQQ4Iyu8u01E@public.gmane.org>
2017-11-13 15:57 ` Tejun Heo
2017-11-13 15:57 ` Tejun Heo
[not found] ` <20171113155745.GI983427-4dN5La/x3IkLX0oZNxdnEQ2O0Ztt9esIQQ4Iyu8u01E@public.gmane.org>
2017-11-13 19:54 ` Shaohua Li
2017-11-13 19:54 ` Shaohua Li
[not found] ` <20171113195413.b5lzqem2pt2bg4oe-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-11-13 19:58 ` Tejun Heo
2017-11-13 19:58 ` Tejun Heo
2017-11-13 19:58 ` Shaohua Li
2017-11-13 19:58 ` Shaohua Li
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=20171112222613.3613362-2-tj@kernel.org \
--to=tj@kernel.org \
--cc=axboe@kernel.dk \
--cc=cgroups@vger.kernel.org \
--cc=guro@fb.com \
--cc=hannes@cmpxchg.org \
--cc=kernel-team@fb.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lizefan@huawei.com \
--cc=shli@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.