Thread (89 messages) 89 messages, 6 authors, 2019-01-25

Re: [PATCH v6 05/16] sched/core: uclamp: Update CPU's refcount on clamp changes

From: Peter Zijlstra <peterz@infradead.org>
Date: 2019-01-22 13:28:41
Also in: linux-pm, lkml

On Tue, Jan 22, 2019 at 10:43:05AM +0000, Patrick Bellasi wrote:
On 22-Jan 10:37, Peter Zijlstra wrote:
quoted
Sure, I get that. What I don't get is why you're adding that (2) here.
Like said, __sched_setscheduler() already does a dequeue/enqueue under
rq->lock, which should already take care of that.
Oh, ok... got it what you mean now.

With:

   [PATCH v6 01/16] sched/core: Allow sched_setattr() to use the current policy
   [ref]

we can call __sched_setscheduler() with:

   attr->sched_flags & SCHED_FLAG_KEEP_POLICY

whenever we want just to change the clamp values of a task without
changing its class. Thus, we can end up returning from
__sched_setscheduler() without doing an actual dequeue/enqueue.
I don't see that happening.. when KEEP_POLICY we set attr.sched_policy =
SETPARAM_POLICY. That is then checked again in __setscheduler_param(),
which is in the middle of that dequeue/enqueue.

Also, and this might be 'broken', SETPARAM_POLICY _does_ reset all the
other attributes, it only preserves policy, but it will (re)set nice
level for example (see that same function).

So maybe we want to introduce another (few?) FLAG_KEEP flag(s) that
preserve the other bits; I'm thinking at least KEEP_PARAM and KEEP_UTIL
or something.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help