|
@@ -408,6 +408,7 @@ static int prefer_mwait_c1_over_halt(const struct cpuinfo_x86 *c)
|
|
static void mwait_idle(void)
|
|
static void mwait_idle(void)
|
|
{
|
|
{
|
|
if (!current_set_polling_and_test()) {
|
|
if (!current_set_polling_and_test()) {
|
|
|
|
+ trace_cpu_idle_rcuidle(1, smp_processor_id());
|
|
if (this_cpu_has(X86_BUG_CLFLUSH_MONITOR)) {
|
|
if (this_cpu_has(X86_BUG_CLFLUSH_MONITOR)) {
|
|
smp_mb(); /* quirk */
|
|
smp_mb(); /* quirk */
|
|
clflush((void *)¤t_thread_info()->flags);
|
|
clflush((void *)¤t_thread_info()->flags);
|
|
@@ -419,6 +420,7 @@ static void mwait_idle(void)
|
|
__sti_mwait(0, 0);
|
|
__sti_mwait(0, 0);
|
|
else
|
|
else
|
|
local_irq_enable();
|
|
local_irq_enable();
|
|
|
|
+ trace_cpu_idle_rcuidle(PWR_EVENT_EXIT, smp_processor_id());
|
|
} else {
|
|
} else {
|
|
local_irq_enable();
|
|
local_irq_enable();
|
|
}
|
|
}
|