Re: Is it ok for deferrable timer wakeup the idle cpu?

From: Thomas Gleixner
Date: Wed Jan 22 2014 - 09:07:06 EST


On Wed, 22 Jan 2014, Lei Wen wrote:
> Recently I want to do the experiment for cpu isolation over 3.10 kernel.
> But I find the isolated one is periodically waken up by IPI interrupt.
>
> By checking the trace, I find those IPI is generated by add_timer_on,
> which would calls wake_up_nohz_cpu, and wake up the already idle cpu.
>
> With further checking, I find this timer is added by on_demand governor of
> cpufreq. It would periodically check each cores' state.
> The problem I see here is cpufreq_governor using INIT_DEFERRABLE_WORK
> as the tool, while timer is made as deferrable anyway.
> And what is more that cpufreq checking is very frequent. In my case, the
> isolated cpu is wakenup by IPI every 5ms.
>
> So why kernel need to wake the remote processor when mount the deferrable
> timer? As per my understanding, we'd better keep cpu as idle when use
> the deferrable timer.

Indeed, we can avoid the wakeup of the remote cpu when the timer is
deferrable.

Though you really want to figure out why the cpufreq governor is
arming timers on other cores every 5ms. That smells like an utterly
stupid approach.

Thanks,

tglx
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/