aboutsummaryrefslogtreecommitdiffstats
path: root/block/blk-cgroup.h
diff options
context:
space:
mode:
authorVivek Goyal <vgoyal@redhat.com>2010-04-26 13:27:56 -0400
committerJens Axboe <jens.axboe@oracle.com>2010-04-26 13:27:56 -0400
commitafc24d49c1e5dbeef745c1c1246f5ae6ebd97c71 (patch)
treec936676ed21d032bf1d27f9ff1451f6242c8b3b6 /block/blk-cgroup.h
parente5ff082e8a68d9a6874990597497c7e6a96ad752 (diff)
blk-cgroup: config options re-arrangement
This patch fixes few usability and configurability issues. o All the cgroup based controller options are configurable from "Genral Setup/Control Group Support/" menu. blkio is the only exception. Hence make this option visible in above menu and make it configurable from there to bring it inline with rest of the cgroup based controllers. o Get rid of CONFIG_DEBUG_CFQ_IOSCHED. This option currently does two things. - Enable printing of cgroup paths in blktrace - Enables CONFIG_DEBUG_BLK_CGROUP, which in turn displays additional stat files in cgroup. If we are using group scheduling, blktrace data is of not really much use if cgroup information is not present. To get this data, currently one has to also enable CONFIG_DEBUG_CFQ_IOSCHED, which in turn brings the overhead of all the additional debug stat files which is not desired. Hence, this patch moves printing of cgroup paths under CONFIG_CFQ_GROUP_IOSCHED. This allows us to get rid of CONFIG_DEBUG_CFQ_IOSCHED completely. Now all the debug stat files are controlled only by CONFIG_DEBUG_BLK_CGROUP which can be enabled through config menu. Signed-off-by: Vivek Goyal <vgoyal@redhat.com> Acked-by: Divyesh Shah <dpshah@google.com> Reviewed-by: Gui Jianfeng <guijianfeng@cn.fujitsu.com> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'block/blk-cgroup.h')
-rw-r--r--block/blk-cgroup.h14
1 files changed, 7 insertions, 7 deletions
diff --git a/block/blk-cgroup.h b/block/blk-cgroup.h
index a491a6d56ecf..2b866ec1dcea 100644
--- a/block/blk-cgroup.h
+++ b/block/blk-cgroup.h
@@ -108,10 +108,8 @@ struct blkio_group {
108 void *key; 108 void *key;
109 struct hlist_node blkcg_node; 109 struct hlist_node blkcg_node;
110 unsigned short blkcg_id; 110 unsigned short blkcg_id;
111#ifdef CONFIG_DEBUG_BLK_CGROUP
112 /* Store cgroup path */ 111 /* Store cgroup path */
113 char path[128]; 112 char path[128];
114#endif
115 /* The device MKDEV(major, minor), this group has been created for */ 113 /* The device MKDEV(major, minor), this group has been created for */
116 dev_t dev; 114 dev_t dev;
117 115
@@ -147,6 +145,11 @@ struct blkio_policy_type {
147extern void blkio_policy_register(struct blkio_policy_type *); 145extern void blkio_policy_register(struct blkio_policy_type *);
148extern void blkio_policy_unregister(struct blkio_policy_type *); 146extern void blkio_policy_unregister(struct blkio_policy_type *);
149 147
148static inline char *blkg_path(struct blkio_group *blkg)
149{
150 return blkg->path;
151}
152
150#else 153#else
151 154
152struct blkio_group { 155struct blkio_group {
@@ -158,6 +161,8 @@ struct blkio_policy_type {
158static inline void blkio_policy_register(struct blkio_policy_type *blkiop) { } 161static inline void blkio_policy_register(struct blkio_policy_type *blkiop) { }
159static inline void blkio_policy_unregister(struct blkio_policy_type *blkiop) { } 162static inline void blkio_policy_unregister(struct blkio_policy_type *blkiop) { }
160 163
164static inline char *blkg_path(struct blkio_group *blkg) { return NULL; }
165
161#endif 166#endif
162 167
163#define BLKIO_WEIGHT_MIN 100 168#define BLKIO_WEIGHT_MIN 100
@@ -165,10 +170,6 @@ static inline void blkio_policy_unregister(struct blkio_policy_type *blkiop) { }
165#define BLKIO_WEIGHT_DEFAULT 500 170#define BLKIO_WEIGHT_DEFAULT 500
166 171
167#ifdef CONFIG_DEBUG_BLK_CGROUP 172#ifdef CONFIG_DEBUG_BLK_CGROUP
168static inline char *blkg_path(struct blkio_group *blkg)
169{
170 return blkg->path;
171}
172void blkiocg_update_avg_queue_size_stats(struct blkio_group *blkg); 173void blkiocg_update_avg_queue_size_stats(struct blkio_group *blkg);
173void blkiocg_update_dequeue_stats(struct blkio_group *blkg, 174void blkiocg_update_dequeue_stats(struct blkio_group *blkg,
174 unsigned long dequeue); 175 unsigned long dequeue);
@@ -197,7 +198,6 @@ BLKG_FLAG_FNS(idling)
197BLKG_FLAG_FNS(empty) 198BLKG_FLAG_FNS(empty)
198#undef BLKG_FLAG_FNS 199#undef BLKG_FLAG_FNS
199#else 200#else
200static inline char *blkg_path(struct blkio_group *blkg) { return NULL; }
201static inline void blkiocg_update_avg_queue_size_stats( 201static inline void blkiocg_update_avg_queue_size_stats(
202 struct blkio_group *blkg) {} 202 struct blkio_group *blkg) {}
203static inline void blkiocg_update_dequeue_stats(struct blkio_group *blkg, 203static inline void blkiocg_update_dequeue_stats(struct blkio_group *blkg,