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.