diff options
Diffstat (limited to 'block')
| -rw-r--r-- | block/blk-cgroup.c | 33 | ||||
| -rw-r--r-- | block/blk-cgroup.h | 6 | ||||
| -rw-r--r-- | block/blk-throttle.c | 21 | ||||
| -rw-r--r-- | block/cfq-iosched.c | 14 |
4 files changed, 33 insertions, 41 deletions
diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c index c0e239b8455e..7de19d7954c7 100644 --- a/block/blk-cgroup.c +++ b/block/blk-cgroup.c | |||
| @@ -359,7 +359,7 @@ static const char *blkg_dev_name(struct blkio_group *blkg) | |||
| 359 | * cftype->read_seq_string method. | 359 | * cftype->read_seq_string method. |
| 360 | */ | 360 | */ |
| 361 | void blkcg_print_blkgs(struct seq_file *sf, struct blkio_cgroup *blkcg, | 361 | void blkcg_print_blkgs(struct seq_file *sf, struct blkio_cgroup *blkcg, |
| 362 | u64 (*prfill)(struct seq_file *, struct blkg_policy_data *, int), | 362 | u64 (*prfill)(struct seq_file *, void *, int), |
| 363 | int pol, int data, bool show_total) | 363 | int pol, int data, bool show_total) |
| 364 | { | 364 | { |
| 365 | struct blkio_group *blkg; | 365 | struct blkio_group *blkg; |
| @@ -369,7 +369,7 @@ void blkcg_print_blkgs(struct seq_file *sf, struct blkio_cgroup *blkcg, | |||
| 369 | spin_lock_irq(&blkcg->lock); | 369 | spin_lock_irq(&blkcg->lock); |
| 370 | hlist_for_each_entry(blkg, n, &blkcg->blkg_list, blkcg_node) | 370 | hlist_for_each_entry(blkg, n, &blkcg->blkg_list, blkcg_node) |
| 371 | if (blkg->pd[pol]) | 371 | if (blkg->pd[pol]) |
| 372 | total += prfill(sf, blkg->pd[pol], data); | 372 | total += prfill(sf, blkg->pd[pol]->pdata, data); |
| 373 | spin_unlock_irq(&blkcg->lock); | 373 | spin_unlock_irq(&blkcg->lock); |
| 374 | 374 | ||
| 375 | if (show_total) | 375 | if (show_total) |
| @@ -380,14 +380,14 @@ EXPORT_SYMBOL_GPL(blkcg_print_blkgs); | |||
| 380 | /** | 380 | /** |
| 381 | * __blkg_prfill_u64 - prfill helper for a single u64 value | 381 | * __blkg_prfill_u64 - prfill helper for a single u64 value |
| 382 | * @sf: seq_file to print to | 382 | * @sf: seq_file to print to |
| 383 | * @pd: policy data of interest | 383 | * @pdata: policy private data of interest |
| 384 | * @v: value to print | 384 | * @v: value to print |
| 385 | * | 385 | * |
| 386 | * Print @v to @sf for the device assocaited with @pd. | 386 | * Print @v to @sf for the device assocaited with @pdata. |
| 387 | */ | 387 | */ |
| 388 | u64 __blkg_prfill_u64(struct seq_file *sf, struct blkg_policy_data *pd, u64 v) | 388 | u64 __blkg_prfill_u64(struct seq_file *sf, void *pdata, u64 v) |
| 389 | { | 389 | { |
| 390 | const char *dname = blkg_dev_name(pd->blkg); | 390 | const char *dname = blkg_dev_name(pdata_to_blkg(pdata)); |
| 391 | 391 | ||
| 392 | if (!dname) | 392 | if (!dname) |
| 393 | return 0; | 393 | return 0; |
| @@ -400,12 +400,12 @@ EXPORT_SYMBOL_GPL(__blkg_prfill_u64); | |||
| 400 | /** | 400 | /** |
| 401 | * __blkg_prfill_rwstat - prfill helper for a blkg_rwstat | 401 | * __blkg_prfill_rwstat - prfill helper for a blkg_rwstat |
| 402 | * @sf: seq_file to print to | 402 | * @sf: seq_file to print to |
| 403 | * @pd: policy data of interest | 403 | * @pdata: policy private data of interest |
| 404 | * @rwstat: rwstat to print | 404 | * @rwstat: rwstat to print |
| 405 | * | 405 | * |
| 406 | * Print @rwstat to @sf for the device assocaited with @pd. | 406 | * Print @rwstat to @sf for the device assocaited with @pdata. |
| 407 | */ | 407 | */ |
| 408 | u64 __blkg_prfill_rwstat(struct seq_file *sf, struct blkg_policy_data *pd, | 408 | u64 __blkg_prfill_rwstat(struct seq_file *sf, void *pdata, |
| 409 | const struct blkg_rwstat *rwstat) | 409 | const struct blkg_rwstat *rwstat) |
| 410 | { | 410 | { |
| 411 | static const char *rwstr[] = { | 411 | static const char *rwstr[] = { |
| @@ -414,7 +414,7 @@ u64 __blkg_prfill_rwstat(struct seq_file *sf, struct blkg_policy_data *pd, | |||
| 414 | [BLKG_RWSTAT_SYNC] = "Sync", | 414 | [BLKG_RWSTAT_SYNC] = "Sync", |
| 415 | [BLKG_RWSTAT_ASYNC] = "Async", | 415 | [BLKG_RWSTAT_ASYNC] = "Async", |
| 416 | }; | 416 | }; |
| 417 | const char *dname = blkg_dev_name(pd->blkg); | 417 | const char *dname = blkg_dev_name(pdata_to_blkg(pdata)); |
| 418 | u64 v; | 418 | u64 v; |
| 419 | int i; | 419 | int i; |
| 420 | 420 | ||
| @@ -430,19 +430,16 @@ u64 __blkg_prfill_rwstat(struct seq_file *sf, struct blkg_policy_data *pd, | |||
| 430 | return v; | 430 | return v; |
| 431 | } | 431 | } |
| 432 | 432 | ||
| 433 | static u64 blkg_prfill_stat(struct seq_file *sf, struct blkg_policy_data *pd, | 433 | static u64 blkg_prfill_stat(struct seq_file *sf, void *pdata, int off) |
| 434 | int off) | ||
| 435 | { | 434 | { |
| 436 | return __blkg_prfill_u64(sf, pd, | 435 | return __blkg_prfill_u64(sf, pdata, blkg_stat_read(pdata + off)); |
| 437 | blkg_stat_read((void *)pd->pdata + off)); | ||
| 438 | } | 436 | } |
| 439 | 437 | ||
| 440 | static u64 blkg_prfill_rwstat(struct seq_file *sf, struct blkg_policy_data *pd, | 438 | static u64 blkg_prfill_rwstat(struct seq_file *sf, void *pdata, int off) |
| 441 | int off) | ||
| 442 | { | 439 | { |
| 443 | struct blkg_rwstat rwstat = blkg_rwstat_read((void *)pd->pdata + off); | 440 | struct blkg_rwstat rwstat = blkg_rwstat_read(pdata + off); |
| 444 | 441 | ||
| 445 | return __blkg_prfill_rwstat(sf, pd, &rwstat); | 442 | return __blkg_prfill_rwstat(sf, pdata, &rwstat); |
| 446 | } | 443 | } |
| 447 | 444 | ||
| 448 | /* print blkg_stat specified by BLKCG_STAT_PRIV() */ | 445 | /* print blkg_stat specified by BLKCG_STAT_PRIV() */ |
diff --git a/block/blk-cgroup.h b/block/blk-cgroup.h index a77ab1ac53a7..c930895bfac9 100644 --- a/block/blk-cgroup.h +++ b/block/blk-cgroup.h | |||
| @@ -126,10 +126,10 @@ extern void update_root_blkg_pd(struct request_queue *q, | |||
| 126 | enum blkio_policy_id plid); | 126 | enum blkio_policy_id plid); |
| 127 | 127 | ||
| 128 | void blkcg_print_blkgs(struct seq_file *sf, struct blkio_cgroup *blkcg, | 128 | void blkcg_print_blkgs(struct seq_file *sf, struct blkio_cgroup *blkcg, |
| 129 | u64 (*prfill)(struct seq_file *, struct blkg_policy_data *, int), | 129 | u64 (*prfill)(struct seq_file *, void *, int), |
| 130 | int pol, int data, bool show_total); | 130 | int pol, int data, bool show_total); |
| 131 | u64 __blkg_prfill_u64(struct seq_file *sf, struct blkg_policy_data *pd, u64 v); | 131 | u64 __blkg_prfill_u64(struct seq_file *sf, void *pdata, u64 v); |
| 132 | u64 __blkg_prfill_rwstat(struct seq_file *sf, struct blkg_policy_data *pd, | 132 | u64 __blkg_prfill_rwstat(struct seq_file *sf, void *pdata, |
| 133 | const struct blkg_rwstat *rwstat); | 133 | const struct blkg_rwstat *rwstat); |
| 134 | int blkcg_print_stat(struct cgroup *cgrp, struct cftype *cft, | 134 | int blkcg_print_stat(struct cgroup *cgrp, struct cftype *cft, |
| 135 | struct seq_file *sf); | 135 | struct seq_file *sf); |
diff --git a/block/blk-throttle.c b/block/blk-throttle.c index 004964bb6fdd..bd6dbfe1e4e9 100644 --- a/block/blk-throttle.c +++ b/block/blk-throttle.c | |||
| @@ -924,10 +924,9 @@ throtl_schedule_delayed_work(struct throtl_data *td, unsigned long delay) | |||
| 924 | } | 924 | } |
| 925 | } | 925 | } |
| 926 | 926 | ||
| 927 | static u64 tg_prfill_cpu_rwstat(struct seq_file *sf, | 927 | static u64 tg_prfill_cpu_rwstat(struct seq_file *sf, void *pdata, int off) |
| 928 | struct blkg_policy_data *pd, int off) | ||
| 929 | { | 928 | { |
| 930 | struct throtl_grp *tg = (void *)pd->pdata; | 929 | struct throtl_grp *tg = pdata; |
| 931 | struct blkg_rwstat rwstat = { }, tmp; | 930 | struct blkg_rwstat rwstat = { }, tmp; |
| 932 | int i, cpu; | 931 | int i, cpu; |
| 933 | 932 | ||
| @@ -939,7 +938,7 @@ static u64 tg_prfill_cpu_rwstat(struct seq_file *sf, | |||
| 939 | rwstat.cnt[i] += tmp.cnt[i]; | 938 | rwstat.cnt[i] += tmp.cnt[i]; |
| 940 | } | 939 | } |
| 941 | 940 | ||
| 942 | return __blkg_prfill_rwstat(sf, pd, &rwstat); | 941 | return __blkg_prfill_rwstat(sf, pdata, &rwstat); |
| 943 | } | 942 | } |
| 944 | 943 | ||
| 945 | /* print per-cpu blkg_rwstat specified by BLKCG_STAT_PRIV() */ | 944 | /* print per-cpu blkg_rwstat specified by BLKCG_STAT_PRIV() */ |
| @@ -954,24 +953,22 @@ static int tg_print_cpu_rwstat(struct cgroup *cgrp, struct cftype *cft, | |||
| 954 | return 0; | 953 | return 0; |
| 955 | } | 954 | } |
| 956 | 955 | ||
| 957 | static u64 tg_prfill_conf_u64(struct seq_file *sf, struct blkg_policy_data *pd, | 956 | static u64 tg_prfill_conf_u64(struct seq_file *sf, void *pdata, int off) |
| 958 | int off) | ||
| 959 | { | 957 | { |
| 960 | u64 v = *(u64 *)((void *)pd->pdata + off); | 958 | u64 v = *(u64 *)(pdata + off); |
| 961 | 959 | ||
| 962 | if (v == -1) | 960 | if (v == -1) |
| 963 | return 0; | 961 | return 0; |
| 964 | return __blkg_prfill_u64(sf, pd, v); | 962 | return __blkg_prfill_u64(sf, pdata, v); |
| 965 | } | 963 | } |
| 966 | 964 | ||
| 967 | static u64 tg_prfill_conf_uint(struct seq_file *sf, struct blkg_policy_data *pd, | 965 | static u64 tg_prfill_conf_uint(struct seq_file *sf, void *pdata, int off) |
| 968 | int off) | ||
| 969 | { | 966 | { |
| 970 | unsigned int v = *(unsigned int *)((void *)pd->pdata + off); | 967 | unsigned int v = *(unsigned int *)(pdata + off); |
| 971 | 968 | ||
| 972 | if (v == -1) | 969 | if (v == -1) |
| 973 | return 0; | 970 | return 0; |
| 974 | return __blkg_prfill_u64(sf, pd, v); | 971 | return __blkg_prfill_u64(sf, pdata, v); |
| 975 | } | 972 | } |
| 976 | 973 | ||
| 977 | static int tg_print_conf_u64(struct cgroup *cgrp, struct cftype *cft, | 974 | static int tg_print_conf_u64(struct cgroup *cgrp, struct cftype *cft, |
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c index adab10de6eea..fd505f721f61 100644 --- a/block/cfq-iosched.c +++ b/block/cfq-iosched.c | |||
| @@ -1368,14 +1368,13 @@ static void cfq_link_cfqq_cfqg(struct cfq_queue *cfqq, struct cfq_group *cfqg) | |||
| 1368 | cfqg_get(cfqg); | 1368 | cfqg_get(cfqg); |
| 1369 | } | 1369 | } |
| 1370 | 1370 | ||
| 1371 | static u64 cfqg_prfill_weight_device(struct seq_file *sf, | 1371 | static u64 cfqg_prfill_weight_device(struct seq_file *sf, void *pdata, int off) |
| 1372 | struct blkg_policy_data *pd, int off) | ||
| 1373 | { | 1372 | { |
| 1374 | struct cfq_group *cfqg = (void *)pd->pdata; | 1373 | struct cfq_group *cfqg = pdata; |
| 1375 | 1374 | ||
| 1376 | if (!cfqg->dev_weight) | 1375 | if (!cfqg->dev_weight) |
| 1377 | return 0; | 1376 | return 0; |
| 1378 | return __blkg_prfill_u64(sf, pd, cfqg->dev_weight); | 1377 | return __blkg_prfill_u64(sf, pdata, cfqg->dev_weight); |
| 1379 | } | 1378 | } |
| 1380 | 1379 | ||
| 1381 | static int cfqg_print_weight_device(struct cgroup *cgrp, struct cftype *cft, | 1380 | static int cfqg_print_weight_device(struct cgroup *cgrp, struct cftype *cft, |
| @@ -1443,10 +1442,9 @@ static int cfq_set_weight(struct cgroup *cgrp, struct cftype *cft, u64 val) | |||
| 1443 | } | 1442 | } |
| 1444 | 1443 | ||
| 1445 | #ifdef CONFIG_DEBUG_BLK_CGROUP | 1444 | #ifdef CONFIG_DEBUG_BLK_CGROUP |
| 1446 | static u64 cfqg_prfill_avg_queue_size(struct seq_file *sf, | 1445 | static u64 cfqg_prfill_avg_queue_size(struct seq_file *sf, void *pdata, int off) |
| 1447 | struct blkg_policy_data *pd, int off) | ||
| 1448 | { | 1446 | { |
| 1449 | struct cfq_group *cfqg = (void *)pd->pdata; | 1447 | struct cfq_group *cfqg = pdata; |
| 1450 | u64 samples = blkg_stat_read(&cfqg->stats.avg_queue_size_samples); | 1448 | u64 samples = blkg_stat_read(&cfqg->stats.avg_queue_size_samples); |
| 1451 | u64 v = 0; | 1449 | u64 v = 0; |
| 1452 | 1450 | ||
| @@ -1454,7 +1452,7 @@ static u64 cfqg_prfill_avg_queue_size(struct seq_file *sf, | |||
| 1454 | v = blkg_stat_read(&cfqg->stats.avg_queue_size_sum); | 1452 | v = blkg_stat_read(&cfqg->stats.avg_queue_size_sum); |
| 1455 | do_div(v, samples); | 1453 | do_div(v, samples); |
| 1456 | } | 1454 | } |
| 1457 | __blkg_prfill_u64(sf, pd, v); | 1455 | __blkg_prfill_u64(sf, pdata, v); |
| 1458 | return 0; | 1456 | return 0; |
| 1459 | } | 1457 | } |
| 1460 | 1458 | ||
