aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--kernel/sched/core.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 3bdf01b494fe..feb54965e16f 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -684,10 +684,16 @@ static void wake_up_idle_cpu(int cpu)
684 684
685static bool wake_up_full_nohz_cpu(int cpu) 685static bool wake_up_full_nohz_cpu(int cpu)
686{ 686{
687 /*
688 * We just need the target to call irq_exit() and re-evaluate
689 * the next tick. The nohz full kick at least implies that.
690 * If needed we can still optimize that later with an
691 * empty IRQ.
692 */
687 if (tick_nohz_full_cpu(cpu)) { 693 if (tick_nohz_full_cpu(cpu)) {
688 if (cpu != smp_processor_id() || 694 if (cpu != smp_processor_id() ||
689 tick_nohz_tick_stopped()) 695 tick_nohz_tick_stopped())
690 smp_send_reschedule(cpu); 696 tick_nohz_full_kick_cpu(cpu);
691 return true; 697 return true;
692 } 698 }
693 699