Messages in this thread | | | Date | Fri, 13 Apr 2018 14:44:58 +0200 | From | Peter Zijlstra <> | Subject | Re: [PATCH 1/7] sched/core: uclamp: add CPU clamp groups accounting |
| |
On Fri, Apr 13, 2018 at 12:47:45PM +0100, Patrick Bellasi wrote: > In the past I remember some funny dance in cgroup callbacks when a > task was terminating (like being moved in the root-rq just before > exiting). But, as you say, if we always have the task_rq_lock we > should be safe.
The syscall does the whole:
task_rq_lock(); queued = task_on_rq_queued(); running = task_current(); if (queued) dequeue_task(); if (running) put_prev_task();
/* * task is in invariant state here, * muck with it. */
if (queued) enqueue_task(); if (running) set_curr_task() task_rq_unlock();
pattern; which because C sucks, we've not found a good template for yet.
Without the dequeue/put,enqueue/set you have to jump a few extra hoops.
| |