#include <linux/cpu.h>
#include <linux/tick.h>
#include <linux/mm.h>
+#ifdef CONFIG_MT_LOAD_BALANCE_PROFILER
+#include <mtlbprof/mtlbprof.h>
+#endif
#include <linux/stackprotector.h>
#include <asm/tlb.h>
*/
static void cpu_idle_loop(void)
{
+#ifdef CONFIG_MT_LOAD_BALANCE_PROFILER
+ mt_lbprof_update_state(smp_processor_id(), MT_LBPROF_NO_TASK_STATE);
+#endif
+
while (1) {
tick_nohz_idle_enter();
if (cpu_is_offline(smp_processor_id()))
arch_cpu_idle_dead();
+#ifdef CONFIG_MT_LOAD_BALANCE_PROFILER
+ mt_lbprof_update_state(smp_processor_id(), MT_LBPROF_IDLE_STATE);
+#endif
+
local_irq_disable();
arch_cpu_idle_enter();
WARN_ON_ONCE(irqs_disabled());
rcu_idle_exit();
start_critical_timings();
+#ifdef CONFIG_MT_LOAD_BALANCE_PROFILER
+ mt_lbprof_update_state(smp_processor_id(), MT_LBPROF_NO_TASK_STATE);
+#endif
} else {
local_irq_enable();
}