When a pCPU is added to a cpupool, the pool's scheduler
should immediately run on it so, for instance, any runnable
but not running vCPU can start executing there.
This currently does not happen. Make it happen by raising
the scheduler softirq directly from the function that
sets up the new scheduler for the pCPU.
Signed-off-by: Dario Faggioli <dario.faggioli@citrix.com>
Reviewed-by: George Dunlap <george.dunlap@citrix.com>
out:
per_cpu(cpupool, cpu) = c;
+ /* When a cpu is added to a pool, trigger it to go pick up some work */
+ if ( c != NULL )
+ cpu_raise_softirq(cpu, SCHEDULE_SOFTIRQ);
return 0;
}