|
@@ -224,6 +224,20 @@ static DEFINE_PER_CPU(struct irq_work, nohz_full_kick_work) = {
|
|
|
.func = nohz_full_kick_work_func,
|
|
|
};
|
|
|
|
|
|
+/*
|
|
|
+ * Kick this CPU if it's full dynticks in order to force it to
|
|
|
+ * re-evaluate its dependency on the tick and restart it if necessary.
|
|
|
+ * This kick, unlike tick_nohz_full_kick_cpu() and tick_nohz_full_kick_all(),
|
|
|
+ * is NMI safe.
|
|
|
+ */
|
|
|
+void tick_nohz_full_kick(void)
|
|
|
+{
|
|
|
+ if (!tick_nohz_full_cpu(smp_processor_id()))
|
|
|
+ return;
|
|
|
+
|
|
|
+ irq_work_queue(&__get_cpu_var(nohz_full_kick_work));
|
|
|
+}
|
|
|
+
|
|
|
/*
|
|
|
* Kick the CPU if it's full dynticks in order to force it to
|
|
|
* re-evaluate its dependency on the tick and restart it if necessary.
|