Re: [Xen-devel] [PATCH v2 3/4] xen: sched: make counters for vCPU tickling generic
On 02/27/2015 04:51 PM, Dario Faggioli wrote: and update them from Credit2 and RTDS schedulers. Signed-off-by: Dario Faggioli dario.faggi...@citrix.com Cc: Meng Xu xumengpa...@gmail.com Cc: George Dunlap george.dun...@eu.citrix.com Cc: Jan Beulich jbeul...@suse.com Cc: Keir Fraser k...@xen.org Reviewed-by: Meng Xu men...@cis.upenn.edu Acked-by: Jan Beulich jbeul...@suse.com Acked-by: George Dunlap george.dun...@eu.citrix.com --- Changes from v1: * fixed the 'no_tickle' case, in Credit2, as requested during review --- xen/common/sched_credit2.c |4 xen/common/sched_rt.c|2 ++ xen/include/xen/perfc_defn.h |4 ++-- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/xen/common/sched_credit2.c b/xen/common/sched_credit2.c index 2b852cc..c0f7452 100644 --- a/xen/common/sched_credit2.c +++ b/xen/common/sched_credit2.c @@ -556,7 +556,10 @@ runq_tickle(const struct scheduler *ops, unsigned int cpu, struct csched2_vcpu * /* Only switch to another processor if the credit difference is greater * than the migrate resistance */ if ( ipid == -1 || lowest + CSCHED2_MIGRATE_RESIST new-credit ) +{ +SCHED_STAT_CRANK(tickle_idlers_none); goto no_tickle; +} tickle: BUG_ON(ipid == -1); @@ -571,6 +574,7 @@ tickle: (unsigned char *)d); } cpumask_set_cpu(ipid, rqd-tickled); +SCHED_STAT_CRANK(tickle_idlers_some); cpu_raise_softirq(ipid, SCHEDULE_SOFTIRQ); no_tickle: diff --git a/xen/common/sched_rt.c b/xen/common/sched_rt.c index 49d1b83..2ad0c68 100644 --- a/xen/common/sched_rt.c +++ b/xen/common/sched_rt.c @@ -929,6 +929,7 @@ runq_tickle(const struct scheduler *ops, struct rt_vcpu *new) } /* didn't tickle any cpu */ +SCHED_STAT_CRANK(tickle_idlers_none); return; out: /* TRACE */ @@ -944,6 +945,7 @@ out: } cpumask_set_cpu(cpu_to_tickle, prv-tickled); +SCHED_STAT_CRANK(tickle_idlers_some); cpu_raise_softirq(cpu_to_tickle, SCHEDULE_SOFTIRQ); return; } diff --git a/xen/include/xen/perfc_defn.h b/xen/include/xen/perfc_defn.h index 2dc78fe..f754331 100644 --- a/xen/include/xen/perfc_defn.h +++ b/xen/include/xen/perfc_defn.h @@ -26,6 +26,8 @@ PERFCOUNTER(vcpu_wake_running, sched: vcpu_wake_running) PERFCOUNTER(vcpu_wake_onrunq, sched: vcpu_wake_onrunq) PERFCOUNTER(vcpu_wake_runnable, sched: vcpu_wake_runnable) PERFCOUNTER(vcpu_wake_not_runnable, sched: vcpu_wake_not_runnable) +PERFCOUNTER(tickle_idlers_none, sched: tickle_idlers_none) +PERFCOUNTER(tickle_idlers_some, sched: tickle_idlers_some) /* credit specific counters */ PERFCOUNTER(delay_ms, csched: delay) @@ -39,8 +41,6 @@ PERFCOUNTER(acct_vcpu_active, csched: acct_vcpu_active) PERFCOUNTER(acct_vcpu_idle, csched: acct_vcpu_idle) PERFCOUNTER(vcpu_park, csched: vcpu_park) PERFCOUNTER(vcpu_unpark,csched: vcpu_unpark) -PERFCOUNTER(tickle_idlers_none, csched: tickle_idlers_none) -PERFCOUNTER(tickle_idlers_some, csched: tickle_idlers_some) PERFCOUNTER(load_balance_idle, csched: load_balance_idle) PERFCOUNTER(load_balance_over, csched: load_balance_over) PERFCOUNTER(load_balance_other, csched: load_balance_other) ___ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
[Xen-devel] [PATCH v2 3/4] xen: sched: make counters for vCPU tickling generic
and update them from Credit2 and RTDS schedulers. Signed-off-by: Dario Faggioli dario.faggi...@citrix.com Cc: Meng Xu xumengpa...@gmail.com Cc: George Dunlap george.dun...@eu.citrix.com Cc: Jan Beulich jbeul...@suse.com Cc: Keir Fraser k...@xen.org Reviewed-by: Meng Xu men...@cis.upenn.edu Acked-by: Jan Beulich jbeul...@suse.com --- Changes from v1: * fixed the 'no_tickle' case, in Credit2, as requested during review --- xen/common/sched_credit2.c |4 xen/common/sched_rt.c|2 ++ xen/include/xen/perfc_defn.h |4 ++-- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/xen/common/sched_credit2.c b/xen/common/sched_credit2.c index 2b852cc..c0f7452 100644 --- a/xen/common/sched_credit2.c +++ b/xen/common/sched_credit2.c @@ -556,7 +556,10 @@ runq_tickle(const struct scheduler *ops, unsigned int cpu, struct csched2_vcpu * /* Only switch to another processor if the credit difference is greater * than the migrate resistance */ if ( ipid == -1 || lowest + CSCHED2_MIGRATE_RESIST new-credit ) +{ +SCHED_STAT_CRANK(tickle_idlers_none); goto no_tickle; +} tickle: BUG_ON(ipid == -1); @@ -571,6 +574,7 @@ tickle: (unsigned char *)d); } cpumask_set_cpu(ipid, rqd-tickled); +SCHED_STAT_CRANK(tickle_idlers_some); cpu_raise_softirq(ipid, SCHEDULE_SOFTIRQ); no_tickle: diff --git a/xen/common/sched_rt.c b/xen/common/sched_rt.c index 49d1b83..2ad0c68 100644 --- a/xen/common/sched_rt.c +++ b/xen/common/sched_rt.c @@ -929,6 +929,7 @@ runq_tickle(const struct scheduler *ops, struct rt_vcpu *new) } /* didn't tickle any cpu */ +SCHED_STAT_CRANK(tickle_idlers_none); return; out: /* TRACE */ @@ -944,6 +945,7 @@ out: } cpumask_set_cpu(cpu_to_tickle, prv-tickled); +SCHED_STAT_CRANK(tickle_idlers_some); cpu_raise_softirq(cpu_to_tickle, SCHEDULE_SOFTIRQ); return; } diff --git a/xen/include/xen/perfc_defn.h b/xen/include/xen/perfc_defn.h index 2dc78fe..f754331 100644 --- a/xen/include/xen/perfc_defn.h +++ b/xen/include/xen/perfc_defn.h @@ -26,6 +26,8 @@ PERFCOUNTER(vcpu_wake_running, sched: vcpu_wake_running) PERFCOUNTER(vcpu_wake_onrunq, sched: vcpu_wake_onrunq) PERFCOUNTER(vcpu_wake_runnable, sched: vcpu_wake_runnable) PERFCOUNTER(vcpu_wake_not_runnable, sched: vcpu_wake_not_runnable) +PERFCOUNTER(tickle_idlers_none, sched: tickle_idlers_none) +PERFCOUNTER(tickle_idlers_some, sched: tickle_idlers_some) /* credit specific counters */ PERFCOUNTER(delay_ms, csched: delay) @@ -39,8 +41,6 @@ PERFCOUNTER(acct_vcpu_active, csched: acct_vcpu_active) PERFCOUNTER(acct_vcpu_idle, csched: acct_vcpu_idle) PERFCOUNTER(vcpu_park, csched: vcpu_park) PERFCOUNTER(vcpu_unpark,csched: vcpu_unpark) -PERFCOUNTER(tickle_idlers_none, csched: tickle_idlers_none) -PERFCOUNTER(tickle_idlers_some, csched: tickle_idlers_some) PERFCOUNTER(load_balance_idle, csched: load_balance_idle) PERFCOUNTER(load_balance_over, csched: load_balance_over) PERFCOUNTER(load_balance_other, csched: load_balance_other) ___ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel