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> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
32cd756a80
commit
0297b80339
|
@ -8381,10 +8381,34 @@ static u64 cpuusage_read(struct cgroup *cgrp, struct cftype *cft)
|
||||||
return totalcpuusage;
|
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[] = {
|
static struct cftype files[] = {
|
||||||
{
|
{
|
||||||
.name = "usage",
|
.name = "usage",
|
||||||
.read_uint = cpuusage_read,
|
.read_uint = cpuusage_read,
|
||||||
|
.write_uint = cpuusage_write,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue