[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen staging] xen/sched: switch sched_move_irqs() to take sched_unit as parameter



commit 67a6cafebdafec7a957072909790b37f2e9690f7
Author:     Juergen Gross <jgross@xxxxxxxx>
AuthorDate: Fri Sep 27 09:00:27 2019 +0200
Commit:     Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Fri Sep 27 16:01:25 2019 +0200

    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>
    Reviewed-by: Dario Faggioli <dfaggioli@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 621726f0d9..de6f7044f0 100644
--- a/xen/common/schedule.c
+++ b/xen/common/schedule.c
@@ -487,12 +487,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(const 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;
@@ -572,7 +580,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);
 
@@ -865,7 +873,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);
@@ -930,7 +938,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);
@@ -1747,7 +1755,7 @@ static void schedule(void)
     stop_timer(&prev->vcpu_list->periodic_timer);
 
     if ( next_slice.migrated )
-        sched_move_irqs(next->vcpu_list);
+        vcpu_move_irqs(next->vcpu_list);
 
     vcpu_periodic_timer_work(next->vcpu_list);
 
--
generated by git-patchbot for /home/xen/git/xen.git#staging

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/xen-changelog

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.