]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - block/blk-cgroup.c
blkcg: cfq doesn't need per-cpu dispatch stats
[karo-tx-linux.git] / block / blk-cgroup.c
index 821a0a393e85db8408f3402f39fce863d4955569..19ee29f1b7c57d62ce836d62874bfaf2faf776dd 100644 (file)
@@ -390,7 +390,6 @@ static void blkio_reset_stats_cpu(struct blkio_group *blkg, int plid)
 
                blkg_rwstat_reset(&sc->service_bytes);
                blkg_rwstat_reset(&sc->serviced);
-               blkg_stat_reset(&sc->sectors);
        }
 }
 
@@ -417,6 +416,8 @@ blkiocg_reset_stats(struct cgroup *cgroup, struct cftype *cftype, u64 val)
                        struct blkio_group_stats *stats = &pd->stats;
 
                        /* queued stats shouldn't be cleared */
+                       blkg_rwstat_reset(&stats->service_bytes);
+                       blkg_rwstat_reset(&stats->serviced);
                        blkg_rwstat_reset(&stats->merged);
                        blkg_rwstat_reset(&stats->service_time);
                        blkg_rwstat_reset(&stats->wait_time);
@@ -577,66 +578,6 @@ int blkcg_print_rwstat(struct cgroup *cgrp, struct cftype *cft,
 }
 EXPORT_SYMBOL_GPL(blkcg_print_rwstat);
 
-static u64 blkg_prfill_cpu_stat(struct seq_file *sf,
-                               struct blkg_policy_data *pd, int off)
-{
-       u64 v = 0;
-       int cpu;
-
-       for_each_possible_cpu(cpu) {
-               struct blkio_group_stats_cpu *sc =
-                       per_cpu_ptr(pd->stats_cpu, cpu);
-
-               v += blkg_stat_read((void *)sc + off);
-       }
-
-       return __blkg_prfill_u64(sf, pd, v);
-}
-
-static u64 blkg_prfill_cpu_rwstat(struct seq_file *sf,
-                                 struct blkg_policy_data *pd, int off)
-{
-       struct blkg_rwstat rwstat = { }, tmp;
-       int i, cpu;
-
-       for_each_possible_cpu(cpu) {
-               struct blkio_group_stats_cpu *sc =
-                       per_cpu_ptr(pd->stats_cpu, cpu);
-
-               tmp = blkg_rwstat_read((void *)sc + off);
-               for (i = 0; i < BLKG_RWSTAT_NR; i++)
-                       rwstat.cnt[i] += tmp.cnt[i];
-       }
-
-       return __blkg_prfill_rwstat(sf, pd, &rwstat);
-}
-
-/* print per-cpu blkg_stat specified by BLKCG_STAT_PRIV() */
-int blkcg_print_cpu_stat(struct cgroup *cgrp, struct cftype *cft,
-                        struct seq_file *sf)
-{
-       struct blkio_cgroup *blkcg = cgroup_to_blkio_cgroup(cgrp);
-
-       blkcg_print_blkgs(sf, blkcg, blkg_prfill_cpu_stat,
-                         BLKCG_STAT_POL(cft->private),
-                         BLKCG_STAT_OFF(cft->private), false);
-       return 0;
-}
-EXPORT_SYMBOL_GPL(blkcg_print_cpu_stat);
-
-/* print per-cpu blkg_rwstat specified by BLKCG_STAT_PRIV() */
-int blkcg_print_cpu_rwstat(struct cgroup *cgrp, struct cftype *cft,
-                          struct seq_file *sf)
-{
-       struct blkio_cgroup *blkcg = cgroup_to_blkio_cgroup(cgrp);
-
-       blkcg_print_blkgs(sf, blkcg, blkg_prfill_cpu_rwstat,
-                         BLKCG_STAT_POL(cft->private),
-                         BLKCG_STAT_OFF(cft->private), true);
-       return 0;
-}
-EXPORT_SYMBOL_GPL(blkcg_print_cpu_rwstat);
-
 /**
  * blkg_conf_prep - parse and prepare for per-blkg config update
  * @blkcg: target block cgroup