Re: [RFC PATCH v2 3/3] sched: introduce synchronized idle injection

Peter Zijlstra
2015-11-10T17:00:19Z

On Tue, Nov 10, 2015 at 08:50:55AM -0800, Jacob Pan wrote:
> On Tue, 10 Nov 2015 17:36:46 +0100
> Peter Zijlstra <peterz@infradead.org> wrote:
>
> > > The downside is that we need to restart the timers every time if
> > > user were to change injection parameters, i.e. duration and percent.
> > > Or do locking which might be too expensive. In the previous
> > > approach, it will naturally catch up the parameter change.
> >
> > Why? the timer will fire and observe the new value for reprogramming
> > the next period. All you need to do is to ensure whole values are
> > written/read -- ie. avoid load/store tearing.
> Different per CPU timer may intercept parameter changes at slightly
> different time, so there is a race condition such that some CPUs may
> catch the period change later by one period, which results in a correct
> period change but at a different time, i.e. out of sync.

Ah yes. So if the locking hurts I can come up with a lockless algorithm
for this. Shouldn't be too hard.