From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dario Faggioli Subject: [PATCH 12/14] xenalyze: handle Credit1 scheduler events Date: Fri, 05 Feb 2016 19:35:34 +0100 Message-ID: <20160205183533.4543.10293.stgit@Solace.station> References: <20160205183137.4543.56523.stgit@Solace.station> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1aRlEM-0004cY-H1 for xen-devel@lists.xenproject.org; Fri, 05 Feb 2016 18:35:42 +0000 Received: by mail-wm0-f65.google.com with SMTP id p63so4184010wmp.1 for ; Fri, 05 Feb 2016 10:35:41 -0800 (PST) In-Reply-To: <20160205183137.4543.56523.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: xen-devel@lists.xenproject.org Cc: George Dunlap , Wei Liu , Olaf Hering , Ian Jackson , Ian Campbell List-Id: xen-devel@lists.xenproject.org so the trace will show properly decoded info, rather than just a bunch of hex codes. Signed-off-by: Dario Faggioli --- Cc: George Dunlap Cc: Ian Jackson Cc: Ian Campbell Cc: Wei Liu Cc: Olaf Hering --- tools/xentrace/xenalyze.c | 57 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/tools/xentrace/xenalyze.c b/tools/xentrace/xenalyze.c index be698aa..885c4e4 100644 --- a/tools/xentrace/xenalyze.c +++ b/tools/xentrace/xenalyze.c @@ -7673,6 +7673,63 @@ void sched_process(struct pcpu_info *p) default: process_generic(&p->ri); } + } else if(ri->evt.sub == 2) { + /* TRC_SCHED_CLASS */ + switch(ri->event) + { + /* CREDIT (TRC_CSCHED_xxx) */ + case TRC_SCHED_CLASS_EVT(CSCHED, 1): /* SCHED_TASKLET */ + if(opt.dump_all) + printf(" %s csched:sched_tasklet\n", ri->dump_header); + break; + case TRC_SCHED_CLASS_EVT(CSCHED, 2): /* ACCOUNT_START */ + case TRC_SCHED_CLASS_EVT(CSCHED, 3): /* ACCOUNT_STOP */ + if(opt.dump_all) { + struct { + unsigned int domid, vcpuid, actv_cnt; + } * r = (typeof(r))ri->d; + + printf(" %s csched:acct_%s d%uv%u, active_vcpus %u\n", + ri->dump_header, + ri->event == TRC_SCHED_CLASS_EVT(CSCHED, 2) ? + "start" : "stop", + r->domid, r->vcpuid, + r->actv_cnt); + } + break; + case TRC_SCHED_CLASS_EVT(CSCHED, 4): /* STOLEN_VCPU */ + if(opt.dump_all) { + struct { + unsigned int peer_cpu, domid, vcpuid; + } * r = (typeof(r))ri->d; + + printf(" %s csched:stolen_vcpu d%uv%u from cpu %u\n", + ri->dump_header, r->domid, r->vcpuid, r->peer_cpu); + } + break; + case TRC_SCHED_CLASS_EVT(CSCHED, 5): /* PICKED_CPU */ + if(opt.dump_all) { + struct { + unsigned int domid, vcpuid, cpu; + } * r = (typeof(r))ri->d; + + printf(" %s csched:pick_cpu %u for d%uv%u\n", + ri->dump_header, r->cpu, r->domid, r->vcpuid); + } + break; + case TRC_SCHED_CLASS_EVT(CSCHED, 6): /* TICKLE */ + if(opt.dump_all) { + struct { + unsigned int cpu; + } * r = (typeof(r))ri->d; + + printf(" %s csched:runq_tickle, cpu %u\n", + ri->dump_header, r->cpu); + } + break; + default: + process_generic(ri); + } } else { UPDATE_VOLUME(p, sched_verbose, ri->size); process_generic(&p->ri);