|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 08/24] xen: tracing: add trace records for schedule and rate-limiting.
On 17/08/16 18:18, Dario Faggioli wrote:
> As far as {csched, csched2, rt}_schedule() are concerned,
> an "empty" event, would already make it easier to read and
> understand a trace.
>
> But while there, add a few useful information, like
> if the cpu that is going through the scheduler has
> been tickled or not, if it is currently idle, etc
> (they vary, on a per-scheduler basis).
>
> For Credit1 and Credit2, add a record about when
> rate-limiting kicks in too.
>
> Signed-off-by: Dario Faggioli <dario.faggioli@xxxxxxxxxx>
> ---
> Cc: George Dunlap <george.dunlap@xxxxxxxxxxxxx>
> Cc: Meng Xu <mengxu@xxxxxxxxxxxxx>
> Cc: Anshul Makkar <anshul.makkar@xxxxxxxxxx>
> ---
> xen/common/sched_credit.c | 7 +++++++
> xen/common/sched_credit2.c | 38 +++++++++++++++++++++++++++++++++++++-
> xen/common/sched_rt.c | 15 +++++++++++++++
> 3 files changed, 59 insertions(+), 1 deletion(-)
>
> diff --git a/xen/common/sched_credit.c b/xen/common/sched_credit.c
> index ca04732..f9d3ac9 100644
> --- a/xen/common/sched_credit.c
> +++ b/xen/common/sched_credit.c
> @@ -134,6 +134,8 @@
> #define TRC_CSCHED_TICKLE TRC_SCHED_CLASS_EVT(CSCHED, 6)
> #define TRC_CSCHED_BOOST_START TRC_SCHED_CLASS_EVT(CSCHED, 7)
> #define TRC_CSCHED_BOOST_END TRC_SCHED_CLASS_EVT(CSCHED, 8)
> +#define TRC_CSCHED_SCHEDULE TRC_SCHED_CLASS_EVT(CSCHED, 9)
> +#define TRC_CSCHED_RATELIMIT TRC_SCHED_CLASS_EVT(CSCHED, 10)
>
>
> /*
> @@ -1743,6 +1745,9 @@ csched_schedule(
> SCHED_STAT_CRANK(schedule);
> CSCHED_VCPU_CHECK(current);
>
> + TRACE_3D(TRC_CSCHED_SCHEDULE, cpu, tasklet_work_scheduled,
> + is_idle_vcpu(current));
Sorry to be annoying, but you're using two full words here for two bits
of information, and scheduling isn't exactly a once-every-few-seconds
phenomenon. :-) Would you mind packing this in a bit?
> +
> runtime = now - current->runstate.state_entry_time;
> if ( runtime < 0 ) /* Does this ever happen? */
> runtime = 0;
> @@ -1792,6 +1797,8 @@ csched_schedule(
> snext->start_time += now;
> perfc_incr(delay_ms);
> tslice = MICROSECS(prv->ratelimit_us) - runtime;
> + TRACE_3D(TRC_CSCHED_RATELIMIT, scurr->vcpu->domain->domain_id,
> + scurr->vcpu->vcpu_id, runtime);
Same for this one, if you don't mind -- this one is less important
probably, but since you essentially have the code in credit2, it seems
like a pretty straightforward exercise to copy-and-paste it.
The credit2 traces look good -- thanks!
-George
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |