summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2019-06-06 06:26:24 -0400
committerJens Axboe <axboe@kernel.dk>2019-06-20 12:32:35 -0400
commit8060c47ba853f147c46bf1e6f6d93d1726fcb57a (patch)
treeccab63ea63d2b21044874e93f2e0595c62774ade
parentd6258980daf207f986676e59e6ea295204cdc84e (diff)
block: rename CONFIG_DEBUG_BLK_CGROUP to CONFIG_BFQ_CGROUP_DEBUG
This option is entirely bfq specific, give it an appropinquate name. Also make it depend on CONFIG_BFQ_GROUP_IOSCHED in Kconfig, as all the functionality already does so anyway. Acked-by: Tejun Heo <tj@kernel.org> Acked-by: Paolo Valente <paolo.valente@linaro.org> Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Jens Axboe <axboe@kernel.dk>
-rw-r--r--Documentation/block/bfq-iosched.txt12
-rw-r--r--Documentation/cgroup-v1/blkio-controller.txt12
-rw-r--r--block/Kconfig.iosched7
-rw-r--r--block/bfq-cgroup.c27
-rw-r--r--block/bfq-iosched.c8
-rw-r--r--block/bfq-iosched.h4
-rw-r--r--init/Kconfig8
7 files changed, 38 insertions, 40 deletions
diff --git a/Documentation/block/bfq-iosched.txt b/Documentation/block/bfq-iosched.txt
index 1a0f2ac02eb6..f02163fabf80 100644
--- a/Documentation/block/bfq-iosched.txt
+++ b/Documentation/block/bfq-iosched.txt
@@ -38,13 +38,13 @@ stack). To give an idea of the limits with BFQ, on slow or average
38CPUs, here are, first, the limits of BFQ for three different CPUs, on, 38CPUs, here are, first, the limits of BFQ for three different CPUs, on,
39respectively, an average laptop, an old desktop, and a cheap embedded 39respectively, an average laptop, an old desktop, and a cheap embedded
40system, in case full hierarchical support is enabled (i.e., 40system, in case full hierarchical support is enabled (i.e.,
41CONFIG_BFQ_GROUP_IOSCHED is set), but CONFIG_DEBUG_BLK_CGROUP is not 41CONFIG_BFQ_GROUP_IOSCHED is set), but CONFIG_BFQ_CGROUP_DEBUG is not
42set (Section 4-2): 42set (Section 4-2):
43- Intel i7-4850HQ: 400 KIOPS 43- Intel i7-4850HQ: 400 KIOPS
44- AMD A8-3850: 250 KIOPS 44- AMD A8-3850: 250 KIOPS
45- ARM CortexTM-A53 Octa-core: 80 KIOPS 45- ARM CortexTM-A53 Octa-core: 80 KIOPS
46 46
47If CONFIG_DEBUG_BLK_CGROUP is set (and of course full hierarchical 47If CONFIG_BFQ_CGROUP_DEBUG is set (and of course full hierarchical
48support is enabled), then the sustainable throughput with BFQ 48support is enabled), then the sustainable throughput with BFQ
49decreases, because all blkio.bfq* statistics are created and updated 49decreases, because all blkio.bfq* statistics are created and updated
50(Section 4-2). For BFQ, this leads to the following maximum 50(Section 4-2). For BFQ, this leads to the following maximum
@@ -537,19 +537,19 @@ or io.bfq.weight.
537 537
538As for cgroups-v1 (blkio controller), the exact set of stat files 538As for cgroups-v1 (blkio controller), the exact set of stat files
539created, and kept up-to-date by bfq, depends on whether 539created, and kept up-to-date by bfq, depends on whether
540CONFIG_DEBUG_BLK_CGROUP is set. If it is set, then bfq creates all 540CONFIG_BFQ_CGROUP_DEBUG is set. If it is set, then bfq creates all
541the stat files documented in 541the stat files documented in
542Documentation/cgroup-v1/blkio-controller.txt. If, instead, 542Documentation/cgroup-v1/blkio-controller.txt. If, instead,
543CONFIG_DEBUG_BLK_CGROUP is not set, then bfq creates only the files 543CONFIG_BFQ_CGROUP_DEBUG is not set, then bfq creates only the files
544blkio.bfq.io_service_bytes 544blkio.bfq.io_service_bytes
545blkio.bfq.io_service_bytes_recursive 545blkio.bfq.io_service_bytes_recursive
546blkio.bfq.io_serviced 546blkio.bfq.io_serviced
547blkio.bfq.io_serviced_recursive 547blkio.bfq.io_serviced_recursive
548 548
549The value of CONFIG_DEBUG_BLK_CGROUP greatly influences the maximum 549The value of CONFIG_BFQ_CGROUP_DEBUG greatly influences the maximum
550throughput sustainable with bfq, because updating the blkio.bfq.* 550throughput sustainable with bfq, because updating the blkio.bfq.*
551stats is rather costly, especially for some of the stats enabled by 551stats is rather costly, especially for some of the stats enabled by
552CONFIG_DEBUG_BLK_CGROUP. 552CONFIG_BFQ_CGROUP_DEBUG.
553 553
554Parameters to set 554Parameters to set
555----------------- 555-----------------
diff --git a/Documentation/cgroup-v1/blkio-controller.txt b/Documentation/cgroup-v1/blkio-controller.txt
index d1a1b7bdd03a..78ec4500f220 100644
--- a/Documentation/cgroup-v1/blkio-controller.txt
+++ b/Documentation/cgroup-v1/blkio-controller.txt
@@ -77,7 +77,7 @@ Various user visible config options
77CONFIG_BLK_CGROUP 77CONFIG_BLK_CGROUP
78 - Block IO controller. 78 - Block IO controller.
79 79
80CONFIG_DEBUG_BLK_CGROUP 80CONFIG_BFQ_CGROUP_DEBUG
81 - Debug help. Right now some additional stats file show up in cgroup 81 - Debug help. Right now some additional stats file show up in cgroup
82 if this option is enabled. 82 if this option is enabled.
83 83
@@ -193,13 +193,13 @@ Proportional weight policy files
193 write, sync or async. 193 write, sync or async.
194 194
195- blkio.avg_queue_size 195- blkio.avg_queue_size
196 - Debugging aid only enabled if CONFIG_DEBUG_BLK_CGROUP=y. 196 - Debugging aid only enabled if CONFIG_BFQ_CGROUP_DEBUG=y.
197 The average queue size for this cgroup over the entire time of this 197 The average queue size for this cgroup over the entire time of this
198 cgroup's existence. Queue size samples are taken each time one of the 198 cgroup's existence. Queue size samples are taken each time one of the
199 queues of this cgroup gets a timeslice. 199 queues of this cgroup gets a timeslice.
200 200
201- blkio.group_wait_time 201- blkio.group_wait_time
202 - Debugging aid only enabled if CONFIG_DEBUG_BLK_CGROUP=y. 202 - Debugging aid only enabled if CONFIG_BFQ_CGROUP_DEBUG=y.
203 This is the amount of time the cgroup had to wait since it became busy 203 This is the amount of time the cgroup had to wait since it became busy
204 (i.e., went from 0 to 1 request queued) to get a timeslice for one of 204 (i.e., went from 0 to 1 request queued) to get a timeslice for one of
205 its queues. This is different from the io_wait_time which is the 205 its queues. This is different from the io_wait_time which is the
@@ -210,7 +210,7 @@ Proportional weight policy files
210 got a timeslice and will not include the current delta. 210 got a timeslice and will not include the current delta.
211 211
212- blkio.empty_time 212- blkio.empty_time
213 - Debugging aid only enabled if CONFIG_DEBUG_BLK_CGROUP=y. 213 - Debugging aid only enabled if CONFIG_BFQ_CGROUP_DEBUG=y.
214 This is the amount of time a cgroup spends without any pending 214 This is the amount of time a cgroup spends without any pending
215 requests when not being served, i.e., it does not include any time 215 requests when not being served, i.e., it does not include any time
216 spent idling for one of the queues of the cgroup. This is in 216 spent idling for one of the queues of the cgroup. This is in
@@ -219,7 +219,7 @@ Proportional weight policy files
219 time it had a pending request and will not include the current delta. 219 time it had a pending request and will not include the current delta.
220 220
221- blkio.idle_time 221- blkio.idle_time
222 - Debugging aid only enabled if CONFIG_DEBUG_BLK_CGROUP=y. 222 - Debugging aid only enabled if CONFIG_BFQ_CGROUP_DEBUG=y.
223 This is the amount of time spent by the IO scheduler idling for a 223 This is the amount of time spent by the IO scheduler idling for a
224 given cgroup in anticipation of a better request than the existing ones 224 given cgroup in anticipation of a better request than the existing ones
225 from other queues/cgroups. This is in nanoseconds. If this is read 225 from other queues/cgroups. This is in nanoseconds. If this is read
@@ -228,7 +228,7 @@ Proportional weight policy files
228 the current delta. 228 the current delta.
229 229
230- blkio.dequeue 230- blkio.dequeue
231 - Debugging aid only enabled if CONFIG_DEBUG_BLK_CGROUP=y. This 231 - Debugging aid only enabled if CONFIG_BFQ_CGROUP_DEBUG=y. This
232 gives the statistics about how many a times a group was dequeued 232 gives the statistics about how many a times a group was dequeued
233 from service tree of the device. First two fields specify the major 233 from service tree of the device. First two fields specify the major
234 and minor number of the device and third field specifies the number 234 and minor number of the device and third field specifies the number
diff --git a/block/Kconfig.iosched b/block/Kconfig.iosched
index 4626b88b2d5a..7a6b2f29a582 100644
--- a/block/Kconfig.iosched
+++ b/block/Kconfig.iosched
@@ -36,6 +36,13 @@ config BFQ_GROUP_IOSCHED
36 Enable hierarchical scheduling in BFQ, using the blkio 36 Enable hierarchical scheduling in BFQ, using the blkio
37 (cgroups-v1) or io (cgroups-v2) controller. 37 (cgroups-v1) or io (cgroups-v2) controller.
38 38
39config BFQ_CGROUP_DEBUG
40 bool "BFQ IO controller debugging"
41 depends on BFQ_GROUP_IOSCHED
42 ---help---
43 Enable some debugging help. Currently it exports additional stat
44 files in a cgroup which can be useful for debugging.
45
39endmenu 46endmenu
40 47
41endif 48endif
diff --git a/block/bfq-cgroup.c b/block/bfq-cgroup.c
index d84302445e30..0f6cd688924f 100644
--- a/block/bfq-cgroup.c
+++ b/block/bfq-cgroup.c
@@ -15,8 +15,7 @@
15 15
16#include "bfq-iosched.h" 16#include "bfq-iosched.h"
17 17
18#if defined(CONFIG_BFQ_GROUP_IOSCHED) && defined(CONFIG_DEBUG_BLK_CGROUP) 18#ifdef CONFIG_BFQ_CGROUP_DEBUG
19
20static int bfq_stat_init(struct bfq_stat *stat, gfp_t gfp) 19static int bfq_stat_init(struct bfq_stat *stat, gfp_t gfp)
21{ 20{
22 int ret; 21 int ret;
@@ -253,7 +252,7 @@ void bfqg_stats_update_completion(struct bfq_group *bfqg, u64 start_time_ns,
253 io_start_time_ns - start_time_ns); 252 io_start_time_ns - start_time_ns);
254} 253}
255 254
256#else /* CONFIG_BFQ_GROUP_IOSCHED && CONFIG_DEBUG_BLK_CGROUP */ 255#else /* CONFIG_BFQ_CGROUP_DEBUG */
257 256
258void bfqg_stats_update_io_add(struct bfq_group *bfqg, struct bfq_queue *bfqq, 257void bfqg_stats_update_io_add(struct bfq_group *bfqg, struct bfq_queue *bfqq,
259 unsigned int op) { } 258 unsigned int op) { }
@@ -267,7 +266,7 @@ void bfqg_stats_update_idle_time(struct bfq_group *bfqg) { }
267void bfqg_stats_set_start_idle_time(struct bfq_group *bfqg) { } 266void bfqg_stats_set_start_idle_time(struct bfq_group *bfqg) { }
268void bfqg_stats_update_avg_queue_size(struct bfq_group *bfqg) { } 267void bfqg_stats_update_avg_queue_size(struct bfq_group *bfqg) { }
269 268
270#endif /* CONFIG_BFQ_GROUP_IOSCHED && CONFIG_DEBUG_BLK_CGROUP */ 269#endif /* CONFIG_BFQ_CGROUP_DEBUG */
271 270
272#ifdef CONFIG_BFQ_GROUP_IOSCHED 271#ifdef CONFIG_BFQ_GROUP_IOSCHED
273 272
@@ -351,7 +350,7 @@ void bfqg_and_blkg_put(struct bfq_group *bfqg)
351/* @stats = 0 */ 350/* @stats = 0 */
352static void bfqg_stats_reset(struct bfqg_stats *stats) 351static void bfqg_stats_reset(struct bfqg_stats *stats)
353{ 352{
354#ifdef CONFIG_DEBUG_BLK_CGROUP 353#ifdef CONFIG_BFQ_CGROUP_DEBUG
355 /* queued stats shouldn't be cleared */ 354 /* queued stats shouldn't be cleared */
356 blkg_rwstat_reset(&stats->merged); 355 blkg_rwstat_reset(&stats->merged);
357 blkg_rwstat_reset(&stats->service_time); 356 blkg_rwstat_reset(&stats->service_time);
@@ -372,7 +371,7 @@ static void bfqg_stats_add_aux(struct bfqg_stats *to, struct bfqg_stats *from)
372 if (!to || !from) 371 if (!to || !from)
373 return; 372 return;
374 373
375#ifdef CONFIG_DEBUG_BLK_CGROUP 374#ifdef CONFIG_BFQ_CGROUP_DEBUG
376 /* queued stats shouldn't be cleared */ 375 /* queued stats shouldn't be cleared */
377 blkg_rwstat_add_aux(&to->merged, &from->merged); 376 blkg_rwstat_add_aux(&to->merged, &from->merged);
378 blkg_rwstat_add_aux(&to->service_time, &from->service_time); 377 blkg_rwstat_add_aux(&to->service_time, &from->service_time);
@@ -432,7 +431,7 @@ void bfq_init_entity(struct bfq_entity *entity, struct bfq_group *bfqg)
432 431
433static void bfqg_stats_exit(struct bfqg_stats *stats) 432static void bfqg_stats_exit(struct bfqg_stats *stats)
434{ 433{
435#ifdef CONFIG_DEBUG_BLK_CGROUP 434#ifdef CONFIG_BFQ_CGROUP_DEBUG
436 blkg_rwstat_exit(&stats->merged); 435 blkg_rwstat_exit(&stats->merged);
437 blkg_rwstat_exit(&stats->service_time); 436 blkg_rwstat_exit(&stats->service_time);
438 blkg_rwstat_exit(&stats->wait_time); 437 blkg_rwstat_exit(&stats->wait_time);
@@ -449,7 +448,7 @@ static void bfqg_stats_exit(struct bfqg_stats *stats)
449 448
450static int bfqg_stats_init(struct bfqg_stats *stats, gfp_t gfp) 449static int bfqg_stats_init(struct bfqg_stats *stats, gfp_t gfp)
451{ 450{
452#ifdef CONFIG_DEBUG_BLK_CGROUP 451#ifdef CONFIG_BFQ_CGROUP_DEBUG
453 if (blkg_rwstat_init(&stats->merged, gfp) || 452 if (blkg_rwstat_init(&stats->merged, gfp) ||
454 blkg_rwstat_init(&stats->service_time, gfp) || 453 blkg_rwstat_init(&stats->service_time, gfp) ||
455 blkg_rwstat_init(&stats->wait_time, gfp) || 454 blkg_rwstat_init(&stats->wait_time, gfp) ||
@@ -986,7 +985,7 @@ static ssize_t bfq_io_set_weight(struct kernfs_open_file *of,
986 return ret ?: nbytes; 985 return ret ?: nbytes;
987} 986}
988 987
989#ifdef CONFIG_DEBUG_BLK_CGROUP 988#ifdef CONFIG_BFQ_CGROUP_DEBUG
990static int bfqg_print_stat(struct seq_file *sf, void *v) 989static int bfqg_print_stat(struct seq_file *sf, void *v)
991{ 990{
992 blkcg_print_blkgs(sf, css_to_blkcg(seq_css(sf)), blkg_prfill_stat, 991 blkcg_print_blkgs(sf, css_to_blkcg(seq_css(sf)), blkg_prfill_stat,
@@ -1109,7 +1108,7 @@ static int bfqg_print_avg_queue_size(struct seq_file *sf, void *v)
1109 0, false); 1108 0, false);
1110 return 0; 1109 return 0;
1111} 1110}
1112#endif /* CONFIG_DEBUG_BLK_CGROUP */ 1111#endif /* CONFIG_BFQ_CGROUP_DEBUG */
1113 1112
1114struct bfq_group *bfq_create_group_hierarchy(struct bfq_data *bfqd, int node) 1113struct bfq_group *bfq_create_group_hierarchy(struct bfq_data *bfqd, int node)
1115{ 1114{
@@ -1157,7 +1156,7 @@ struct cftype bfq_blkcg_legacy_files[] = {
1157 .private = (unsigned long)&blkcg_policy_bfq, 1156 .private = (unsigned long)&blkcg_policy_bfq,
1158 .seq_show = blkg_print_stat_ios, 1157 .seq_show = blkg_print_stat_ios,
1159 }, 1158 },
1160#ifdef CONFIG_DEBUG_BLK_CGROUP 1159#ifdef CONFIG_BFQ_CGROUP_DEBUG
1161 { 1160 {
1162 .name = "bfq.time", 1161 .name = "bfq.time",
1163 .private = offsetof(struct bfq_group, stats.time), 1162 .private = offsetof(struct bfq_group, stats.time),
@@ -1187,7 +1186,7 @@ struct cftype bfq_blkcg_legacy_files[] = {
1187 .private = offsetof(struct bfq_group, stats.queued), 1186 .private = offsetof(struct bfq_group, stats.queued),
1188 .seq_show = bfqg_print_rwstat, 1187 .seq_show = bfqg_print_rwstat,
1189 }, 1188 },
1190#endif /* CONFIG_DEBUG_BLK_CGROUP */ 1189#endif /* CONFIG_BFQ_CGROUP_DEBUG */
1191 1190
1192 /* the same statistics which cover the bfqg and its descendants */ 1191 /* the same statistics which cover the bfqg and its descendants */
1193 { 1192 {
@@ -1200,7 +1199,7 @@ struct cftype bfq_blkcg_legacy_files[] = {
1200 .private = (unsigned long)&blkcg_policy_bfq, 1199 .private = (unsigned long)&blkcg_policy_bfq,
1201 .seq_show = blkg_print_stat_ios_recursive, 1200 .seq_show = blkg_print_stat_ios_recursive,
1202 }, 1201 },
1203#ifdef CONFIG_DEBUG_BLK_CGROUP 1202#ifdef CONFIG_BFQ_CGROUP_DEBUG
1204 { 1203 {
1205 .name = "bfq.time_recursive", 1204 .name = "bfq.time_recursive",
1206 .private = offsetof(struct bfq_group, stats.time), 1205 .private = offsetof(struct bfq_group, stats.time),
@@ -1254,7 +1253,7 @@ struct cftype bfq_blkcg_legacy_files[] = {
1254 .private = offsetof(struct bfq_group, stats.dequeue), 1253 .private = offsetof(struct bfq_group, stats.dequeue),
1255 .seq_show = bfqg_print_stat, 1254 .seq_show = bfqg_print_stat,
1256 }, 1255 },
1257#endif /* CONFIG_DEBUG_BLK_CGROUP */ 1256#endif /* CONFIG_BFQ_CGROUP_DEBUG */
1258 { } /* terminate */ 1257 { } /* terminate */
1259}; 1258};
1260 1259
diff --git a/block/bfq-iosched.c b/block/bfq-iosched.c
index a6bf842cbe16..44c6bbcd7720 100644
--- a/block/bfq-iosched.c
+++ b/block/bfq-iosched.c
@@ -4404,7 +4404,7 @@ exit:
4404 return rq; 4404 return rq;
4405} 4405}
4406 4406
4407#if defined(CONFIG_BFQ_GROUP_IOSCHED) && defined(CONFIG_DEBUG_BLK_CGROUP) 4407#ifdef CONFIG_BFQ_CGROUP_DEBUG
4408static void bfq_update_dispatch_stats(struct request_queue *q, 4408static void bfq_update_dispatch_stats(struct request_queue *q,
4409 struct request *rq, 4409 struct request *rq,
4410 struct bfq_queue *in_serv_queue, 4410 struct bfq_queue *in_serv_queue,
@@ -4454,7 +4454,7 @@ static inline void bfq_update_dispatch_stats(struct request_queue *q,
4454 struct request *rq, 4454 struct request *rq,
4455 struct bfq_queue *in_serv_queue, 4455 struct bfq_queue *in_serv_queue,
4456 bool idle_timer_disabled) {} 4456 bool idle_timer_disabled) {}
4457#endif 4457#endif /* CONFIG_BFQ_CGROUP_DEBUG */
4458 4458
4459static struct request *bfq_dispatch_request(struct blk_mq_hw_ctx *hctx) 4459static struct request *bfq_dispatch_request(struct blk_mq_hw_ctx *hctx)
4460{ 4460{
@@ -5008,7 +5008,7 @@ static bool __bfq_insert_request(struct bfq_data *bfqd, struct request *rq)
5008 return idle_timer_disabled; 5008 return idle_timer_disabled;
5009} 5009}
5010 5010
5011#if defined(CONFIG_BFQ_GROUP_IOSCHED) && defined(CONFIG_DEBUG_BLK_CGROUP) 5011#ifdef CONFIG_BFQ_CGROUP_DEBUG
5012static void bfq_update_insert_stats(struct request_queue *q, 5012static void bfq_update_insert_stats(struct request_queue *q,
5013 struct bfq_queue *bfqq, 5013 struct bfq_queue *bfqq,
5014 bool idle_timer_disabled, 5014 bool idle_timer_disabled,
@@ -5038,7 +5038,7 @@ static inline void bfq_update_insert_stats(struct request_queue *q,
5038 struct bfq_queue *bfqq, 5038 struct bfq_queue *bfqq,
5039 bool idle_timer_disabled, 5039 bool idle_timer_disabled,
5040 unsigned int cmd_flags) {} 5040 unsigned int cmd_flags) {}
5041#endif 5041#endif /* CONFIG_BFQ_CGROUP_DEBUG */
5042 5042
5043static void bfq_insert_request(struct blk_mq_hw_ctx *hctx, struct request *rq, 5043static void bfq_insert_request(struct blk_mq_hw_ctx *hctx, struct request *rq,
5044 bool at_head) 5044 bool at_head)
diff --git a/block/bfq-iosched.h b/block/bfq-iosched.h
index aef4fa0046b8..584d3c9ed8ba 100644
--- a/block/bfq-iosched.h
+++ b/block/bfq-iosched.h
@@ -783,7 +783,7 @@ struct bfq_stat {
783}; 783};
784 784
785struct bfqg_stats { 785struct bfqg_stats {
786#if defined(CONFIG_BFQ_GROUP_IOSCHED) && defined(CONFIG_DEBUG_BLK_CGROUP) 786#ifdef CONFIG_BFQ_CGROUP_DEBUG
787 /* number of ios merged */ 787 /* number of ios merged */
788 struct blkg_rwstat merged; 788 struct blkg_rwstat merged;
789 /* total time spent on device in ns, may not be accurate w/ queueing */ 789 /* total time spent on device in ns, may not be accurate w/ queueing */
@@ -811,7 +811,7 @@ struct bfqg_stats {
811 u64 start_idle_time; 811 u64 start_idle_time;
812 u64 start_empty_time; 812 u64 start_empty_time;
813 uint16_t flags; 813 uint16_t flags;
814#endif /* CONFIG_BFQ_GROUP_IOSCHED && CONFIG_DEBUG_BLK_CGROUP */ 814#endif /* CONFIG_BFQ_CGROUP_DEBUG */
815}; 815};
816 816
817#ifdef CONFIG_BFQ_GROUP_IOSCHED 817#ifdef CONFIG_BFQ_GROUP_IOSCHED
diff --git a/init/Kconfig b/init/Kconfig
index 0e2344389501..a41d8fbe09d8 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -799,14 +799,6 @@ config BLK_CGROUP
799 799
800 See Documentation/cgroup-v1/blkio-controller.txt for more information. 800 See Documentation/cgroup-v1/blkio-controller.txt for more information.
801 801
802config DEBUG_BLK_CGROUP
803 bool "IO controller debugging"
804 depends on BLK_CGROUP
805 default n
806 ---help---
807 Enable some debugging help. Currently it exports additional stat
808 files in a cgroup which can be useful for debugging.
809
810config CGROUP_WRITEBACK 802config CGROUP_WRITEBACK
811 bool 803 bool
812 depends on MEMCG && BLK_CGROUP 804 depends on MEMCG && BLK_CGROUP