|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 2/4] xen: sched: make counters for vCPU sleep and wakeup generic
[I see the reason why I neglected this patch: my gmail just filter it
into the Forum category and I didn't see it. :-)
Dario, Do you have any suggestion of the email client (maybe the one
you guys are using)? ]
2015-02-26 8:37 GMT-05:00 Dario Faggioli <dario.faggioli@xxxxxxxxxx>:
> and update them from Credit2 and RTDS. In Credit2, while there,
> remove some stale comments too.
>
> Signed-off-by: Dario Faggioli <dario.faggioli@xxxxxxxxxx>
> Cc: George Dunlap <george.dunlap@xxxxxxxxxxxxx>
> Cc: Jan Beulich <JBeulich@xxxxxxxx>
> Cc: Keir Fraser <keir@xxxxxxx>
> ---
> xen/common/sched_credit2.c | 12 ++++++++----
> xen/common/sched_rt.c | 12 ++++++++++++
> xen/include/xen/perfc_defn.h | 10 +++++-----
> 3 files changed, 25 insertions(+), 9 deletions(-)
>
> diff --git a/xen/common/sched_credit2.c b/xen/common/sched_credit2.c
> index ad0a5d4..2b852cc 100644
> --- a/xen/common/sched_credit2.c
> +++ b/xen/common/sched_credit2.c
> @@ -931,6 +931,7 @@ csched2_vcpu_sleep(const struct scheduler *ops, struct
> vcpu *vc)
> struct csched2_vcpu * const svc = CSCHED2_VCPU(vc);
>
> BUG_ON( is_idle_vcpu(vc) );
> + SCHED_STAT_CRANK(vcpu_sleep);
>
> if ( per_cpu(schedule_data, vc->processor).curr == vc )
> cpu_raise_softirq(vc->processor, SCHEDULE_SOFTIRQ);
> @@ -956,19 +957,22 @@ csched2_vcpu_wake(const struct scheduler *ops, struct
> vcpu *vc)
>
> BUG_ON( is_idle_vcpu(vc) );
>
> - /* Make sure svc priority mod happens before runq check */
> if ( unlikely(per_cpu(schedule_data, vc->processor).curr == vc) )
> {
> + SCHED_STAT_CRANK(vcpu_wake_running);
> goto out;
> }
> -
> if ( unlikely(__vcpu_on_runq(svc)) )
> {
> - /* If we've boosted someone that's already on a runqueue, prioritize
> - * it and inform the cpu in question. */
> + SCHED_STAT_CRANK(vcpu_wake_onrunq);
> goto out;
> }
>
> + if ( likely(vcpu_runnable(vc)) )
> + SCHED_STAT_CRANK(vcpu_wake_runnable);
> + else
> + SCHED_STAT_CRANK(vcpu_wake_not_runnable);
> +
> /* If the context hasn't been saved for this vcpu yet, we can't put it on
> * another runqueue. Instead, we set a flag so that it will be put on
> the runqueue
> * after the context has been saved. */
> diff --git a/xen/common/sched_rt.c b/xen/common/sched_rt.c
> index 58dd646..49d1b83 100644
> --- a/xen/common/sched_rt.c
> +++ b/xen/common/sched_rt.c
> @@ -851,6 +851,7 @@ rt_vcpu_sleep(const struct scheduler *ops, struct vcpu
> *vc)
> struct rt_vcpu * const svc = rt_vcpu(vc);
>
> BUG_ON( is_idle_vcpu(vc) );
> + SCHED_STAT_CRANK(vcpu_sleep);
>
> if ( curr_on_cpu(vc->processor) == vc )
> cpu_raise_softirq(vc->processor, SCHEDULE_SOFTIRQ);
> @@ -966,11 +967,22 @@ rt_vcpu_wake(const struct scheduler *ops, struct vcpu
> *vc)
> BUG_ON( is_idle_vcpu(vc) );
>
> if ( unlikely(curr_on_cpu(vc->processor) == vc) )
> + {
> + SCHED_STAT_CRANK(vcpu_wake_running);
> return;
> + }
>
> /* on RunQ/DepletedQ, just update info is ok */
> if ( unlikely(__vcpu_on_q(svc)) )
> + {
> + SCHED_STAT_CRANK(vcpu_wake_onrunq);
> return;
> + }
> +
> + if ( likely(vcpu_runnable(vc)) )
> + SCHED_STAT_CRANK(vcpu_wake_runnable);
> + else
> + SCHED_STAT_CRANK(vcpu_wake_not_runnable);
>
> /* If context hasn't been saved for this vcpu yet, we can't put it on
> * the Runqueue/DepletedQ. Instead, we set a flag so that it will be
> diff --git a/xen/include/xen/perfc_defn.h b/xen/include/xen/perfc_defn.h
> index 3ac7b45..2dc78fe 100644
> --- a/xen/include/xen/perfc_defn.h
> +++ b/xen/include/xen/perfc_defn.h
> @@ -21,6 +21,11 @@ PERFCOUNTER(dom_init, "sched: dom_init")
> PERFCOUNTER(dom_destroy, "sched: dom_destroy")
> PERFCOUNTER(vcpu_init, "sched: vcpu_init")
> PERFCOUNTER(vcpu_destroy, "sched: vcpu_destroy")
> +PERFCOUNTER(vcpu_sleep, "sched: vcpu_sleep")
> +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")
>
> /* credit specific counters */
> PERFCOUNTER(delay_ms, "csched: delay")
> @@ -32,11 +37,6 @@ PERFCOUNTER(acct_reorder, "csched: acct_reorder")
> PERFCOUNTER(acct_min_credit, "csched: acct_min_credit")
> PERFCOUNTER(acct_vcpu_active, "csched: acct_vcpu_active")
> PERFCOUNTER(acct_vcpu_idle, "csched: acct_vcpu_idle")
> -PERFCOUNTER(vcpu_sleep, "csched: vcpu_sleep")
> -PERFCOUNTER(vcpu_wake_running, "csched: vcpu_wake_running")
> -PERFCOUNTER(vcpu_wake_onrunq, "csched: vcpu_wake_onrunq")
> -PERFCOUNTER(vcpu_wake_runnable, "csched: vcpu_wake_runnable")
> -PERFCOUNTER(vcpu_wake_not_runnable, "csched: vcpu_wake_not_runnable")
> PERFCOUNTER(vcpu_park, "csched: vcpu_park")
> PERFCOUNTER(vcpu_unpark, "csched: vcpu_unpark")
> PERFCOUNTER(tickle_idlers_none, "csched: tickle_idlers_none")
>
Reviewed-by: Meng Xu <mengxu@xxxxxxxxxxxxx>
Thanks,
Meng
-----------
Meng Xu
PhD Student in Computer and Information Science
University of Pennsylvania
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |