idle_cpu
if (!idle_cpu(ref_cpu))
if (cpu_poke && idle_cpu(cpu)) {
if (!idle_cpu(cpu) && vcpu_is_preempted(cpu)) {
static const struct idle_cpu *icpu __initdata;
static const struct idle_cpu idle_cpu_nehalem __initconst = {
static const struct idle_cpu idle_cpu_nhx __initconst = {
static const struct idle_cpu idle_cpu_atom __initconst = {
static const struct idle_cpu idle_cpu_tangier __initconst = {
static const struct idle_cpu idle_cpu_lincroft __initconst = {
static const struct idle_cpu idle_cpu_snb __initconst = {
static const struct idle_cpu idle_cpu_snx __initconst = {
static const struct idle_cpu idle_cpu_byt __initconst = {
static const struct idle_cpu idle_cpu_cht __initconst = {
static const struct idle_cpu idle_cpu_ivb __initconst = {
static const struct idle_cpu idle_cpu_ivt __initconst = {
static const struct idle_cpu idle_cpu_hsw __initconst = {
static const struct idle_cpu idle_cpu_hsx __initconst = {
static const struct idle_cpu idle_cpu_bdw __initconst = {
static const struct idle_cpu idle_cpu_bdx __initconst = {
static const struct idle_cpu idle_cpu_skl __initconst = {
static const struct idle_cpu idle_cpu_skx __initconst = {
static const struct idle_cpu idle_cpu_icx __initconst = {
static const struct idle_cpu idle_cpu_adl __initconst = {
static const struct idle_cpu idle_cpu_adl_l __initconst = {
static const struct idle_cpu idle_cpu_mtl_l __initconst = {
static const struct idle_cpu idle_cpu_gmt __initconst = {
static const struct idle_cpu idle_cpu_spr __initconst = {
static const struct idle_cpu idle_cpu_gnr __initconst = {
static const struct idle_cpu idle_cpu_gnrd __initconst = {
static const struct idle_cpu idle_cpu_avn __initconst = {
static const struct idle_cpu idle_cpu_knl __initconst = {
static const struct idle_cpu idle_cpu_bxt __initconst = {
static const struct idle_cpu idle_cpu_dnv __initconst = {
static const struct idle_cpu idle_cpu_tmt __initconst = {
static const struct idle_cpu idle_cpu_snr __initconst = {
static const struct idle_cpu idle_cpu_grr __initconst = {
static const struct idle_cpu idle_cpu_srf __initconst = {
icpu = (const struct idle_cpu *)id->driver_data;
if (idle_cpu(smp_processor_id())) {
extern int idle_cpu(int cpu);
static inline int sched_core_idle_cpu(int cpu) { return idle_cpu(cpu); }
if (cpu_is_offline(cpu) || idle_cpu(cpu))
if (!idle_cpu(cpu))
if (!idle_cpu(i))
rq->idle_balance = idle_cpu(cpu);
rq->idle_balance = idle_cpu(cpu);
if (!nr_running && idle_cpu(i)) {
if (!idle_cpu(cpu))
idle = idle_cpu(cpu);
if (idle_cpu(ilb_cpu))
if (!idle_cpu(balance_cpu))
if (!idle_cpu(this_cpu) && need_resched()) {
if (!idle_cpu(sibling))
int idle_cpu;
ns->idle_cpu = -1;
if (find_idle && idle_core < 0 && !rq->nr_running && idle_cpu(cpu)) {
if (ns->idle_cpu == -1)
ns->idle_cpu = cpu;
ns->idle_cpu = idle_core;
if (cpu == env->best_cpu || !idle_cpu(cpu) ||
int cpu = env->dst_stats.idle_cpu;
if (!idle_cpu(cpu) && env->best_cpu >= 0 &&
idle_cpu(env->best_cpu)) {
if (maymove && !cur && env->best_cpu >= 0 && idle_cpu(env->best_cpu))
if (env->dst_stats.idle_cpu >= 0) {
env->dst_cpu = env->dst_stats.idle_cpu;
static int select_idle_core(struct task_struct *p, int core, struct cpumask *cpus, int *idle_cpu)
if (*idle_cpu == -1) {
*idle_cpu = cpu;
if (*idle_cpu == -1 && cpumask_test_cpu(cpu, cpus))
*idle_cpu = cpu;
static inline int select_idle_core(struct task_struct *p, int core, struct cpumask *cpus, int *idle_cpu)
int i, cpu, idle_cpu = -1, nr = INT_MAX;
i = select_idle_core(p, cpu, cpus, &idle_cpu);
idle_cpu = __select_idle_cpu(cpu, p);
if ((unsigned int)idle_cpu < nr_cpumask_bits)
return idle_cpu;
i = select_idle_core(p, cpu, cpus, &idle_cpu);
idle_cpu = __select_idle_cpu(cpu, p);
if ((unsigned int)idle_cpu < nr_cpumask_bits)
return idle_cpu;
return idle_cpu(cpu);