Messages in this thread Patch in this message | | | Date | Fri, 29 Feb 2008 10:02:44 +0530 | From | Dhaval Giani <> | Subject | [patch 2/2] sched: allow cpuacct stats to be reset |
| |
Currently the schedstats implementation does not allow the statistics to be reset. This patch aims to allow that.
echo 0 > cpuacct.usage
resets the usage. Any other value is not allowed and returns -EINVAL.
Signed-off-by: Dhaval Giani <dhaval@linux.vnet.ibm.com>
--- kernel/sched.c | 24 ++++++++++++++++++++++++ 1 files changed, 24 insertions(+)
Index: linux-2.6/kernel/sched.c =================================================================== --- linux-2.6.orig/kernel/sched.c 2008-02-28 20:05:27.000000000 +0530 +++ linux-2.6/kernel/sched.c 2008-02-28 20:05:30.000000000 +0530 @@ -8243,10 +8243,34 @@ static u64 cpuusage_read(struct cgroup * return totalcpuusage; } +static int cpuusage_write(struct cgroup *cgrp, struct cftype *cftype, + u64 reset) +{ + struct cpuacct *ca = cgroup_ca(cgrp); + int err = 0; + int i; + + if (reset) { + err = -EINVAL; + goto out; + } + + for_each_possible_cpu(i) { + u64 *cpuusage = percpu_ptr(ca->cpuusage, i); + + spin_lock_irq(&cpu_rq(i)->lock); + *cpuusage = 0; + spin_unlock_irq(&cpu_rq(i)->lock); + } +out: + return err; +} + static struct cftype files[] = { { .name = "usage", .read_uint = cpuusage_read, + .write_uint = cpuusage_write, }, }; -- regards, Dhaval
| |