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

[xen staging-4.14] xen/sched: fix get_cpu_idle_time() for smt=0 suspend/resume

commit da7254738899da02049dce79bde5af8c27df2481
Author:     Juergen Gross <jgross@xxxxxxxx>
AuthorDate: Wed Aug 25 15:11:24 2021 +0200
Commit:     Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Wed Aug 25 15:11:24 2021 +0200

    xen/sched: fix get_cpu_idle_time() for smt=0 suspend/resume
    With smt=0 during a suspend/resume cycle of the machine the threads
    which have been parked before will briefly come up again. This can
    result in problems e.g. with cpufreq driver being active as this will
    call into get_cpu_idle_time() for a cpu without initialized scheduler
    Fix that by letting get_cpu_idle_time() deal with this case. Drop a
    redundant check in exchange.
    Fixes: 132cbe8f35632fb2 ("sched: fix get_cpu_idle_time() with core 
    Reported-by: Marek Marczykowski-Górecki <marmarek@xxxxxxxxxxxxxxxxxxxxxx>
    Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
    Tested-by: Marek Marczykowski-Górecki <marmarek@xxxxxxxxxxxxxxxxxxxxxx>
    Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>
    Acked-by: Dario Faggioli <dfaggioli@xxxxxxxx>
    master commit: 5293470a77ad980dce2af9b7e6c3f11eeebf1b64
    master date: 2021-08-19 13:38:31 +0200
 xen/common/sched/core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/common/sched/core.c b/xen/common/sched/core.c
index 1bd63c9de6..229ed85f48 100644
--- a/xen/common/sched/core.c
+++ b/xen/common/sched/core.c
@@ -337,7 +337,7 @@ uint64_t get_cpu_idle_time(unsigned int cpu)
     struct vcpu_runstate_info state = { 0 };
     const struct vcpu *v = idle_vcpu[cpu];
-    if ( cpu_online(cpu) && v )
+    if ( cpu_online(cpu) && get_sched_res(cpu) )
         vcpu_runstate_get(v, &state);
     return state.time[RUNSTATE_running];
generated by git-patchbot for /home/xen/git/xen.git#staging-4.14



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