Thread (139 messages) 139 messages, 9 authors, 2011-09-09

Re: [PATCH 04/32] nohz: Separate idle sleeping time accounting from nohz switching

From: Frederic Weisbecker <hidden>
Date: 2011-08-29 16:32:27

On Mon, Aug 29, 2011 at 04:23:19PM +0200, Peter Zijlstra wrote:
On Mon, 2011-08-15 at 17:52 +0200, Frederic Weisbecker wrote:
quoted
To prepare for having nohz mode switching independant from idle,
pull the idle sleeping time accounting out of the tick stop API.

This implies to implement some new API to call when we
enter/exit idle. 
I mean, I really love brevity, but you seem to just not state all the
important bits ;-)

So the goal is to disable the tick more often (say when running 1
userbound task), why does that need new hooks? If we already had the
tick disabled, the tick_nohz_stop_sched_tick() call on going idle will
simply not do anything.

If we go from idle to running something we want to enable the tick
initially because doing the task wakeup involves RCU etc.. Once we find
the task is indeed userbound and we've finished all our state we can
disable the thing again.
That's because we are going to have two different sources of stop/restarting
the tick: either idle or a random task. In the case of idle we have very
specific things to handle like idle time accounting, idle stats, rcu, ...

I could do these things conditionally using a some idle_cpu() checks but
the end result would not be very proper.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help