Message ID | 20211216054502.14085-1-jgross@suse.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | xen: make some per-scheduler performance counters sched global ones | expand |
On 16.12.2021 06:45, Juergen Gross wrote: > Some performance counters listed to be credit or credit2 specific are > being used by the null scheduler, too. > > Make those sched global ones. > > Fixes: ab6ba8c6753fa76 ("perfc: conditionalize credit/credit2 counters") > Signed-off-by: Juergen Gross <jgross@suse.com> As an immediate fix Reviewed-by: Jan Beulich <jbeulich@suse.com> Thanks for doing this so quickly. However, ... > @@ -55,7 +58,6 @@ PERFCOUNTER(steal_trylock, "csched: steal_trylock") > PERFCOUNTER(steal_trylock_failed, "csched: steal_trylock_failed") > PERFCOUNTER(steal_peer_idle, "csched: steal_peer_idle") > PERFCOUNTER(migrate_queued, "csched: migrate_queued") > -PERFCOUNTER(migrate_running, "csched: migrate_running") > PERFCOUNTER(migrate_kicked_away, "csched: migrate_kicked_away") > PERFCOUNTER(unit_hot, "csched: unit_hot") > #endif > @@ -67,13 +69,11 @@ PERFCOUNTER(acct_load_balance, "csched2: acct_load_balance") > PERFCOUNTER(upd_max_weight_quick, "csched2: update_max_weight_quick") > PERFCOUNTER(upd_max_weight_full, "csched2: update_max_weight_full") > PERFCOUNTER(migrate_requested, "csched2: migrate_requested") > -PERFCOUNTER(migrate_on_runq, "csched2: migrate_on_runq") > PERFCOUNTER(migrate_no_runq, "csched2: migrate_no_runq") > PERFCOUNTER(runtime_min_timer, "csched2: runtime_min_timer") > PERFCOUNTER(runtime_max_timer, "csched2: runtime_max_timer") > PERFCOUNTER(pick_resource, "csched2: pick_resource") > PERFCOUNTER(need_fallback_cpu, "csched2: need_fallback_cpu") > -PERFCOUNTER(migrated, "csched2: migrated") ... at least for this one I question the use in the null scheduler: At the very least I'd expect it shouldn't count what's being counted by the other two already (i.e. there would be an "else" missing). But then I'm confused by the the use of these three anyway: Why do things migrate under null in the first place? This looks to be contrary to the comment at the top of the file: * The 'null' scheduler always choose to run, on each pCPU, either nothing * (i.e., the pCPU stays idle) or always the same unit. Jan
On Thu, 16 Dec 2021, Jan Beulich wrote: > On 16.12.2021 06:45, Juergen Gross wrote: > > Some performance counters listed to be credit or credit2 specific are > > being used by the null scheduler, too. > > > > Make those sched global ones. > > > > Fixes: ab6ba8c6753fa76 ("perfc: conditionalize credit/credit2 counters") > > Signed-off-by: Juergen Gross <jgross@suse.com> > > As an immediate fix > Reviewed-by: Jan Beulich <jbeulich@suse.com> I tested the patch and it fixes the issue Tested-by: Stefano Stabellini <sstabellini@kernel.org>
diff --git a/xen/include/xen/perfc_defn.h b/xen/include/xen/perfc_defn.h index 672b51c456..0027d95a60 100644 --- a/xen/include/xen/perfc_defn.h +++ b/xen/include/xen/perfc_defn.h @@ -34,6 +34,9 @@ PERFCOUNTER(tickled_idle_cpu, "sched: tickled_idle_cpu") PERFCOUNTER(tickled_idle_cpu_excl, "sched: tickled_idle_cpu_exclusive") PERFCOUNTER(tickled_busy_cpu, "sched: tickled_busy_cpu") PERFCOUNTER(unit_check, "sched: unit_check") +PERFCOUNTER(migrate_running, "sched: migrate_running") +PERFCOUNTER(migrate_on_runq, "sched: migrate_on_runq") +PERFCOUNTER(migrated, "sched: migrated") /* credit specific counters */ #ifdef CONFIG_SCHED_CREDIT @@ -55,7 +58,6 @@ PERFCOUNTER(steal_trylock, "csched: steal_trylock") PERFCOUNTER(steal_trylock_failed, "csched: steal_trylock_failed") PERFCOUNTER(steal_peer_idle, "csched: steal_peer_idle") PERFCOUNTER(migrate_queued, "csched: migrate_queued") -PERFCOUNTER(migrate_running, "csched: migrate_running") PERFCOUNTER(migrate_kicked_away, "csched: migrate_kicked_away") PERFCOUNTER(unit_hot, "csched: unit_hot") #endif @@ -67,13 +69,11 @@ PERFCOUNTER(acct_load_balance, "csched2: acct_load_balance") PERFCOUNTER(upd_max_weight_quick, "csched2: update_max_weight_quick") PERFCOUNTER(upd_max_weight_full, "csched2: update_max_weight_full") PERFCOUNTER(migrate_requested, "csched2: migrate_requested") -PERFCOUNTER(migrate_on_runq, "csched2: migrate_on_runq") PERFCOUNTER(migrate_no_runq, "csched2: migrate_no_runq") PERFCOUNTER(runtime_min_timer, "csched2: runtime_min_timer") PERFCOUNTER(runtime_max_timer, "csched2: runtime_max_timer") PERFCOUNTER(pick_resource, "csched2: pick_resource") PERFCOUNTER(need_fallback_cpu, "csched2: need_fallback_cpu") -PERFCOUNTER(migrated, "csched2: migrated") PERFCOUNTER(migrate_resisted, "csched2: migrate_resisted") PERFCOUNTER(credit_reset, "csched2: credit_reset") PERFCOUNTER(deferred_to_tickled_cpu,"csched2: deferred_to_tickled_cpu")
Some performance counters listed to be credit or credit2 specific are being used by the null scheduler, too. Make those sched global ones. Fixes: ab6ba8c6753fa76 ("perfc: conditionalize credit/credit2 counters") Signed-off-by: Juergen Gross <jgross@suse.com> --- xen/include/xen/perfc_defn.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)