xen: credit2: properly schedule migration of a running vcpu.
authorDario Faggioli <dario.faggioli@citrix.com>
Thu, 15 Sep 2016 11:35:04 +0000 (12:35 +0100)
committerGeorge Dunlap <george.dunlap@citrix.com>
Thu, 15 Sep 2016 11:39:47 +0000 (12:39 +0100)
If wanting to migrate a vcpu that is actually running,
we need to ask the scheduler to chime in as soon as
possible, to have the vcpu itself stopped and actually
moved.

Make sure this happens by, after setting all the relevant
flags, raising the scheduler softirq.

Signed-off-by: Dario Faggioli <dario.faggioli@citrix.com>
Acked-by: George Dunlap <george.dunlap@citrix.com>
xen/common/sched_credit2.c

index a5a744fd57400d34411bccce40afb8dc43feb0ea..12dfd20a4c461131e9c897637ae88b431a176ca0 100644 (file)
@@ -1667,6 +1667,7 @@ static void migrate(const struct scheduler *ops,
         svc->migrate_rqd = trqd;
         __set_bit(_VPF_migrating, &svc->vcpu->pause_flags);
         __set_bit(__CSFLAG_runq_migrate_request, &svc->flags);
+        cpu_raise_softirq(svc->vcpu->processor, SCHEDULE_SOFTIRQ);
         SCHED_STAT_CRANK(migrate_requested);
     }
     else