add cpu_do_idle to handle idle

add wrap function cpu_do_idle in default_idle to handle arch cpu specific
idle operation.

Signed-off-by: Jason Chen CJ <jason.cj.chen@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
This commit is contained in:
Jason Chen CJ 2018-08-04 19:11:49 +08:00 committed by lijinxia
parent b78aa347e0
commit b1612e3072
3 changed files with 8 additions and 3 deletions

View File

@ -748,6 +748,11 @@ void stop_cpus()
}
}
void cpu_do_idle(__unused uint16_t pcpu_id)
{
__asm __volatile("pause" ::: "memory");
}
void cpu_dead(uint16_t pcpu_id)
{
/* For debug purposes, using a stack variable in the while loop enables

View File

@ -172,9 +172,8 @@ void default_idle(void)
schedule();
} else if (need_offline(pcpu_id) != 0) {
cpu_dead(pcpu_id);
} else {
__asm __volatile("pause" ::: "memory");
}
} else
cpu_do_idle(pcpu_id);
}
}

View File

@ -318,6 +318,7 @@ extern struct cpuinfo_x86 boot_cpu_data;
#define MAX_CX_ENTRY (MAX_CSTATE - 1U)
/* Function prototypes */
void cpu_do_idle(__unused uint16_t pcpu_id);
void cpu_dead(uint16_t pcpu_id);
void trampoline_start16(void);
bool is_vapic_supported(void);