/* Only switch to another processor if the credit difference is greater
* than the migrate resistance */
if ( ipid == -1 || lowest + CSCHED2_MIGRATE_RESIST > new->credit )
+ {
+ SCHED_STAT_CRANK(tickle_idlers_none);
goto no_tickle;
+ }
tickle:
BUG_ON(ipid == -1);
(unsigned char *)&d);
}
cpumask_set_cpu(ipid, &rqd->tickled);
+ SCHED_STAT_CRANK(tickle_idlers_some);
cpu_raise_softirq(ipid, SCHEDULE_SOFTIRQ);
no_tickle:
}
/* didn't tickle any cpu */
+ SCHED_STAT_CRANK(tickle_idlers_none);
return;
out:
/* TRACE */
}
cpumask_set_cpu(cpu_to_tickle, &prv->tickled);
+ SCHED_STAT_CRANK(tickle_idlers_some);
cpu_raise_softirq(cpu_to_tickle, SCHEDULE_SOFTIRQ);
return;
}
PERFCOUNTER(vcpu_wake_onrunq, "sched: vcpu_wake_onrunq")
PERFCOUNTER(vcpu_wake_runnable, "sched: vcpu_wake_runnable")
PERFCOUNTER(vcpu_wake_not_runnable, "sched: vcpu_wake_not_runnable")
+PERFCOUNTER(tickle_idlers_none, "sched: tickle_idlers_none")
+PERFCOUNTER(tickle_idlers_some, "sched: tickle_idlers_some")
/* credit specific counters */
PERFCOUNTER(delay_ms, "csched: delay")
PERFCOUNTER(acct_vcpu_idle, "csched: acct_vcpu_idle")
PERFCOUNTER(vcpu_park, "csched: vcpu_park")
PERFCOUNTER(vcpu_unpark, "csched: vcpu_unpark")
-PERFCOUNTER(tickle_idlers_none, "csched: tickle_idlers_none")
-PERFCOUNTER(tickle_idlers_some, "csched: tickle_idlers_some")
PERFCOUNTER(load_balance_idle, "csched: load_balance_idle")
PERFCOUNTER(load_balance_over, "csched: load_balance_over")
PERFCOUNTER(load_balance_other, "csched: load_balance_other")