]> xenbits.xensource.com Git - xen.git/commitdiff
xen: sched: make sure a pCPU added to a pool runs the scheduler ASAP
authorDario Faggioli <dario.faggioli@citrix.com>
Fri, 7 Apr 2017 12:28:08 +0000 (14:28 +0200)
committerGeorge Dunlap <george.dunlap@citrix.com>
Fri, 7 Apr 2017 14:53:14 +0000 (15:53 +0100)
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>
xen/common/schedule.c

index 5b44a565e9d42280924cf611e8cf5bb36218efe5..646f3d9f44a770ed6e4ed19d37b5118c46f656b3 100644 (file)
@@ -1823,6 +1823,9 @@ int schedule_cpu_switch(unsigned int cpu, struct cpupool *c)
 
  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;
 }