Messages in this thread | | | Date | Wed, 9 Apr 2014 16:19:44 +0530 | Subject | Re: [Query]: tick-sched: why don't we stop tick when we are running idle task? | From | Viresh Kumar <> |
| |
On 9 April 2014 16:03, Viresh Kumar <viresh.kumar@linaro.org> wrote: > Hi Frederic, > > File: kernel/time/tick-sched.c > Function: tick_nohz_full_stop_tick() > > We are doing this: > > if (!tick_nohz_full_cpu(cpu) || is_idle_task(current)) > return; > > Which means: if a FULL_NO_HZ cpu is running idle task currently, > don't stop its tick.. > > I couldn't understand why. Can you please help here?
Is it because of this code ? :
void tick_nohz_irq_exit(void) { struct tick_sched *ts = &__get_cpu_var(tick_cpu_sched);
if (ts->inidle) __tick_nohz_idle_enter(ts); else tick_nohz_full_stop_tick(ts); }
i.e. tick_nohz_full_stop_tick() would never be called while we have 'inidle' set or we are running idle task?
In this case as well, we don't really need that check to be present.
| |