diff options
| author | Chengming Zhou <zhouchengming@bytedance.com> | 2023-09-29 16:16:06 +0300 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2023-10-06 13:18:19 +0200 |
| commit | ce6b88a5853d69a3d023c219e50f708e1d30b0e3 (patch) | |
| tree | f538247a883a6fc4dd2889812abaef3af4415fc9 /include | |
| parent | b1deb155524e2af3f1ed9da3b68ffc1299854e13 (diff) | |
| download | linux-ce6b88a5853d69a3d023c219e50f708e1d30b0e3.tar.gz linux-ce6b88a5853d69a3d023c219e50f708e1d30b0e3.tar.bz2 linux-ce6b88a5853d69a3d023c219e50f708e1d30b0e3.zip | |
sched/cpuacct: Optimize away RCU read lock
commit dc6e0818bc9a0336d9accf3ea35d146d72aa7a18 upstream.
Since cpuacct_charge() is called from the scheduler update_curr(),
we must already have rq lock held, then the RCU read lock can
be optimized away.
And do the same thing in it's wrapper cgroup_account_cputime(),
but we can't use lockdep_assert_rq_held() there, which defined
in kernel/sched/sched.h.
Suggested-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Chengming Zhou <zhouchengming@bytedance.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lore.kernel.org/r/20220220051426.5274-2-zhouchengming@bytedance.com
Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/cgroup.h | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/include/linux/cgroup.h b/include/linux/cgroup.h index 45cdb12243e3..f425389ce4bb 100644 --- a/include/linux/cgroup.h +++ b/include/linux/cgroup.h @@ -792,11 +792,9 @@ static inline void cgroup_account_cputime(struct task_struct *task, cpuacct_charge(task, delta_exec); - rcu_read_lock(); cgrp = task_dfl_cgroup(task); if (cgroup_parent(cgrp)) __cgroup_account_cputime(cgrp, delta_exec); - rcu_read_unlock(); } static inline void cgroup_account_cputime_field(struct task_struct *task, |
