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

[Xen-changelog] [xen master] xen: credit2: non Credit2 pCPUs are ok during shutdown/suspend.



commit ad5808d9057248e7879cf375662f0a449fff7005
Author:     Dario Faggioli <dario.faggioli@xxxxxxxxxx>
AuthorDate: Sat Jan 28 02:42:22 2017 +0100
Commit:     George Dunlap <george.dunlap@xxxxxxxxxx>
CommitDate: Wed Feb 1 14:44:51 2017 +0000

    xen: credit2: non Credit2 pCPUs are ok during shutdown/suspend.
    
    Commit 7478ebe1602e6 ("xen: credit2: fix shutdown/suspend
    when playing with cpupools"), while doing the right thing
    for actual code, forgot to update the ASSERT()s accordingly,
    in csched2_vcpu_migrate().
    
    In fact, as stated there already, during shutdown/suspend,
    we must allow a Credit2 vCPU to temporarily migrate to a
    non Credit2 BSP, without any ASSERT() triggering.
    
    Move them down, after the check for whether or not we are
    shutting down, where the assumption that the pCPU must be
    valid Credit2 ones, is valid.
    
    Signed-off-by: Dario Faggioli <dario.faggioli@xxxxxxxxxx>
---
 xen/common/sched_credit2.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/xen/common/sched_credit2.c b/xen/common/sched_credit2.c
index b7e31ab..93c6d32 100644
--- a/xen/common/sched_credit2.c
+++ b/xen/common/sched_credit2.c
@@ -1953,10 +1953,6 @@ csched2_vcpu_migrate(
     struct csched2_runqueue_data *trqd;
     s_time_t now = NOW();
 
-    /* Check if new_cpu is valid */
-    ASSERT(cpumask_test_cpu(new_cpu, &CSCHED2_PRIV(ops)->initialized));
-    ASSERT(cpumask_test_cpu(new_cpu, vc->cpu_hard_affinity));
-
     /*
      * Being passed a target pCPU which is outside of our cpupool is only
      * valid if we are shutting down (or doing ACPI suspend), and we are
@@ -1985,6 +1981,10 @@ csched2_vcpu_migrate(
         return;
     }
 
+    /* If here, new_cpu must be a valid Credit2 pCPU, and in our affinity. */
+    ASSERT(cpumask_test_cpu(new_cpu, &CSCHED2_PRIV(ops)->initialized));
+    ASSERT(cpumask_test_cpu(new_cpu, vc->cpu_hard_affinity));
+
     trqd = RQD(ops, new_cpu);
 
     /*
--
generated by git-patchbot for /home/xen/git/xen.git#master

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
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®.