Is it ok for deferrable timer wakeup the idle cpu?

From: Lei Wen
Date: Wed Jan 22 2014 - 06:32:34 EST


Hi Thomas,

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.

Thanks,
Lei
--
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/