On Thu, Aug 08, 2019 at 04:08:10PM +0100, Patrick Bellasi wrote: > Well, if I've got correctly your comment in the previous message, I > would say that at this stage we don't need RCU looks at all. Agreed. > Reason being that cpu_util_update_eff() gets called only from > cpu_uclamp_write() which is from an ongoing write operation on a cgroup > attribute and thus granted to be available. > > We will eventually need to move the RCU look only down the stack when > uclamp_update_active_tasks() gets called to update the RUNNABLE tasks on > a RQ... or perhaps we don't need them since we already get the > task_rq_lock() for each task we visit. Unless you remove css_for_each_descendant_pre() in cpu_util_update_eff(), the rcu_read_lock() cannot go below it. (You'd be RCU-accessing other csses that aren't pinned in the write.) Michal