[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 29/60] xen/sched: switch sched_move_irqs() to take sched_unit as parameter
sched_move_irqs() should work on a sched_unit as that is the unit moved between cpus. Rename the current function to vcpu_move_irqs() as it is still needed in schedule(). Signed-off-by: Juergen Gross <jgross@xxxxxxxx> --- xen/common/schedule.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/xen/common/schedule.c b/xen/common/schedule.c index 11d1b73bfc..266932fe25 100644 --- a/xen/common/schedule.c +++ b/xen/common/schedule.c @@ -416,12 +416,20 @@ int sched_init_vcpu(struct vcpu *v) return 0; } -static void sched_move_irqs(struct vcpu *v) +static void vcpu_move_irqs(struct vcpu *v) { arch_move_irqs(v); evtchn_move_pirqs(v); } +static void sched_move_irqs(struct sched_unit *unit) +{ + struct vcpu *v; + + for_each_sched_unit_vcpu ( unit, v ) + vcpu_move_irqs(v); +} + int sched_move_domain(struct domain *d, struct cpupool *c) { struct vcpu *v; @@ -501,7 +509,7 @@ int sched_move_domain(struct domain *d, struct cpupool *c) v->sched_unit->priv = vcpu_priv[v->vcpu_id]; if ( !d->is_dying ) - sched_move_irqs(v); + sched_move_irqs(v->sched_unit); new_p = cpumask_cycle(new_p, c->cpu_valid); @@ -794,7 +802,7 @@ static void vcpu_migrate_finish(struct vcpu *v) sched_spin_unlock_double(old_lock, new_lock, flags); if ( old_cpu != new_cpu ) - sched_move_irqs(v); + sched_move_irqs(v->sched_unit); /* Wake on new CPU. */ vcpu_wake(v); @@ -872,7 +880,7 @@ void restore_vcpu_affinity(struct domain *d) spin_unlock_irq(lock); if ( old_cpu != v->processor ) - sched_move_irqs(v); + sched_move_irqs(v->sched_unit); } domain_update_node_affinity(d); @@ -1645,7 +1653,7 @@ static void schedule(void) stop_timer(&prev->vcpu->periodic_timer); if ( next_slice.migrated ) - sched_move_irqs(next->vcpu); + vcpu_move_irqs(next->vcpu); vcpu_periodic_timer_work(next->vcpu); -- 2.16.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |