From mboxrd@z Thu Jan 1 00:00:00 1970 From: George Dunlap Subject: Re: [PATCH v2 3/4] xen: sched: make counters for vCPU tickling generic Date: Mon, 16 Mar 2015 17:19:07 +0000 Message-ID: <5507108B.306@eu.citrix.com> References: <20150227163925.32500.15985.stgit@Solace.station> <20150227165126.32500.7209.stgit@Solace.station> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20150227165126.32500.7209.stgit@Solace.station> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Dario Faggioli , Xen-devel Cc: Meng Xu , Keir Fraser , Meng Xu , Jan Beulich List-Id: xen-devel@lists.xenproject.org On 02/27/2015 04:51 PM, Dario Faggioli wrote: > and update them from Credit2 and RTDS schedulers. > > Signed-off-by: Dario Faggioli > Cc: Meng Xu > Cc: George Dunlap > Cc: Jan Beulich > Cc: Keir Fraser > Reviewed-by: Meng Xu > Acked-by: Jan Beulich Acked-by: George Dunlap > --- > 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") >