diff options
Diffstat (limited to 'kernel/sched.c')
-rw-r--r-- | kernel/sched.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/kernel/sched.c b/kernel/sched.c index 186c6fd08acf..cc397aae5eae 100644 --- a/kernel/sched.c +++ b/kernel/sched.c | |||
@@ -9654,12 +9654,17 @@ static void cpuacct_charge(struct task_struct *tsk, u64 cputime) | |||
9654 | return; | 9654 | return; |
9655 | 9655 | ||
9656 | cpu = task_cpu(tsk); | 9656 | cpu = task_cpu(tsk); |
9657 | |||
9658 | rcu_read_lock(); | ||
9659 | |||
9657 | ca = task_ca(tsk); | 9660 | ca = task_ca(tsk); |
9658 | 9661 | ||
9659 | for (; ca; ca = ca->parent) { | 9662 | for (; ca; ca = ca->parent) { |
9660 | u64 *cpuusage = percpu_ptr(ca->cpuusage, cpu); | 9663 | u64 *cpuusage = percpu_ptr(ca->cpuusage, cpu); |
9661 | *cpuusage += cputime; | 9664 | *cpuusage += cputime; |
9662 | } | 9665 | } |
9666 | |||
9667 | rcu_read_unlock(); | ||
9663 | } | 9668 | } |
9664 | 9669 | ||
9665 | struct cgroup_subsys cpuacct_subsys = { | 9670 | struct cgroup_subsys cpuacct_subsys = { |