|
@@ -684,10 +684,16 @@ static void wake_up_idle_cpu(int cpu)
|
|
|
|
|
|
static bool wake_up_full_nohz_cpu(int cpu)
|
|
|
{
|
|
|
+ /*
|
|
|
+ * We just need the target to call irq_exit() and re-evaluate
|
|
|
+ * the next tick. The nohz full kick at least implies that.
|
|
|
+ * If needed we can still optimize that later with an
|
|
|
+ * empty IRQ.
|
|
|
+ */
|
|
|
if (tick_nohz_full_cpu(cpu)) {
|
|
|
if (cpu != smp_processor_id() ||
|
|
|
tick_nohz_tick_stopped())
|
|
|
- smp_send_reschedule(cpu);
|
|
|
+ tick_nohz_full_kick_cpu(cpu);
|
|
|
return true;
|
|
|
}
|
|
|
|