Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 72761
b: refs/heads/master
c: fe5c7cc
h: refs/heads/master
i:
  72759: 4e1db54
v: v3
  • Loading branch information
Paul Menage authored and Ingo Molnar committed Oct 29, 2007
1 parent 4398cf8 commit a2e9aef
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 6 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: ae8393e508e5f17add66964688c49bf0bfe4fcf9
refs/heads/master: fe5c7cc22897b809a2fbe05bea71963853df7f17
38 changes: 33 additions & 5 deletions trunk/kernel/sched.c
Original file line number Diff line number Diff line change
Expand Up @@ -7211,15 +7211,43 @@ static u64 cpu_shares_read_uint(struct cgroup *cgrp, struct cftype *cft)
return (u64) tg->shares;
}

static struct cftype cpu_shares = {
.name = "shares",
.read_uint = cpu_shares_read_uint,
.write_uint = cpu_shares_write_uint,
static u64 cpu_usage_read(struct cgroup *cgrp, struct cftype *cft)
{
struct task_group *tg = cgroup_tg(cgrp);
unsigned long flags;
u64 res = 0;
int i;

for_each_possible_cpu(i) {
/*
* Lock to prevent races with updating 64-bit counters
* on 32-bit arches.
*/
spin_lock_irqsave(&cpu_rq(i)->lock, flags);
res += tg->se[i]->sum_exec_runtime;
spin_unlock_irqrestore(&cpu_rq(i)->lock, flags);
}
/* Convert from ns to ms */
do_div(res, 1000000);

return res;
}

static struct cftype cpu_files[] = {
{
.name = "shares",
.read_uint = cpu_shares_read_uint,
.write_uint = cpu_shares_write_uint,
},
{
.name = "usage",
.read_uint = cpu_usage_read,
},
};

static int cpu_cgroup_populate(struct cgroup_subsys *ss, struct cgroup *cont)
{
return cgroup_add_file(cont, ss, &cpu_shares);
return cgroup_add_files(cont, ss, cpu_files, ARRAY_SIZE(cpu_files));
}

struct cgroup_subsys cpu_cgroup_subsys = {
Expand Down

0 comments on commit a2e9aef

Please sign in to comment.