On Tue, 21 Feb 2023 at 16:12, Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote: > > On Fri, Jan 13, 2023 at 03:12:33PM +0100, Vincent Guittot wrote: > > @@ -12552,8 +12634,15 @@ int sched_group_set_latency(struct task_group *tg, s64 latency) > > > > for_each_possible_cpu(i) { > > struct sched_entity *se = tg->se[i]; > > + struct rq *rq = cpu_rq(i); > > + struct rq_flags rf; > > + > > + rq_lock_irqsave(rq, &rf); > > > > + __dequeue_latency(se->cfs_rq, se); > > WRITE_ONCE(se->latency_offset, latency); > > + > > + rq_unlock_irqrestore(rq, &rf); > > } > > This seems asymmetric; maybe something like: > > queued = __dequeue_latency(..); > WRITE_ONCE(...); > if (queued) > __enqueue_latency(...); > > ? Fair enough