summaryrefslogtreecommitdiff
path: root/block/blk-cgroup.h
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2012-03-08 10:54:00 -0800
committerJens Axboe <axboe@kernel.dk>2012-03-20 12:45:37 +0100
commitedf1b879e308d37b5b7c414476ab39f79650a253 (patch)
treefec2895e806eb357ba9e9ed960f8c247042d5383 /block/blk-cgroup.h
parentc4c76a05382c7d05e0b911daa58a827399e9ba1a (diff)
downloadlwn-edf1b879e308d37b5b7c414476ab39f79650a253.tar.gz
lwn-edf1b879e308d37b5b7c414476ab39f79650a253.zip
blkcg: remove blkio_group->stats_lock
With recent plug merge updates, all non-percpu stat updates happen under queue_lock making stats_lock unnecessary to synchronize stat updates. The only synchronization necessary is stat reading, which can be done using u64_stats_sync instead. This patch removes blkio_group->stats_lock and adds blkio_group_stats->syncp for reader synchronization. Signed-off-by: Tejun Heo <tj@kernel.org> Cc: Vivek Goyal <vgoyal@redhat.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block/blk-cgroup.h')
-rw-r--r--block/blk-cgroup.h3
1 files changed, 1 insertions, 2 deletions
diff --git a/block/blk-cgroup.h b/block/blk-cgroup.h
index 8bdcf504f94b..9df5ab04b6d6 100644
--- a/block/blk-cgroup.h
+++ b/block/blk-cgroup.h
@@ -119,6 +119,7 @@ struct blkio_cgroup {
};
struct blkio_group_stats {
+ struct u64_stats_sync syncp;
/* total disk time and nr sectors dispatched by this group */
uint64_t time;
uint64_t stat_arr[BLKIO_STAT_ARR_NR][BLKIO_STAT_TOTAL];
@@ -200,8 +201,6 @@ struct blkio_group {
/* reference count */
int refcnt;
- /* Need to serialize the stats in the case of reset/update */
- spinlock_t stats_lock;
struct blkg_policy_data *pd[BLKIO_NR_POLICIES];
/* List of blkg waiting for per cpu stats memory to be allocated */