* [PATCH 0/3] xen: more scheduler tracing improvement @ 2016-03-12 11:33 Dario Faggioli 2016-03-12 11:33 ` [PATCH 1/3] xenalyze: handle DOM0 operaions events Dario Faggioli ` (2 more replies) 0 siblings, 3 replies; 17+ messages in thread From: Dario Faggioli @ 2016-03-12 11:33 UTC (permalink / raw) To: xen-devel; +Cc: George Dunlap, Ian Jackson, Meng Xu, Wei Liu Hi, this is what remained uncommitted of these other series: "Scheduling related tracing improvements" v1: http://lists.xenproject.org/archives/html/xen-devel/2016-02/msg01016.html v2: http://lists.xenproject.org/archives/html/xen-devel/2016-02/msg02233.html What is patch 1 here, was there already in v2 of the previous submission, but it did not got reviewed. What is patch 2 here, was not there before. George suggested doing it, to do better what is done in what is patch 3 here (which was there before, in a slightly different form). Thanks and Regards, Dario --- Dario Faggioli (3): xenalyze: handle DOM0 operaions events xen: sched RTDS: use uint64_t for tracing time values xenalyze: handle RTDS scheduler events tools/xentrace/xenalyze.c | 78 +++++++++++++++++++++++++++++++++++++++++++++ xen/common/sched_rt.c | 30 ++++++----------- 2 files changed, 89 insertions(+), 19 deletions(-) -- <<This happens because I choose it to happen!>> (Raistlin Majere) ----------------------------------------------------------------- Dario Faggioli, Ph.D, http://about.me/dario.faggioli Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK) _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel ^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH 1/3] xenalyze: handle DOM0 operaions events 2016-03-12 11:33 [PATCH 0/3] xen: more scheduler tracing improvement Dario Faggioli @ 2016-03-12 11:33 ` Dario Faggioli 2016-03-12 14:35 ` Wei Liu ` (3 more replies) 2016-03-12 11:34 ` [PATCH 2/3] xen: sched RTDS: use uint64_t for tracing time values Dario Faggioli 2016-03-12 11:34 ` [PATCH 3/3] xenalyze: handle RTDS scheduler events Dario Faggioli 2 siblings, 4 replies; 17+ messages in thread From: Dario Faggioli @ 2016-03-12 11:33 UTC (permalink / raw) To: xen-devel; +Cc: George Dunlap, Wei Liu, Ian Jackson (i.e., domain creation and destruction) so the trace will show properly decoded info, rather than just a bunch of hex codes. --- Cc: George Dunlap <george.dunlap@eu.citrix.com> Cc: Ian Jackson <ian.jackson@eu.citrix.com> Cc: Wei Liu <wei.liu2@citrix.com> Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> --- Changes from v1: * new patch in the series. --- tools/xentrace/xenalyze.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/tools/xentrace/xenalyze.c b/tools/xentrace/xenalyze.c index d4a5b0c..353bed7 100644 --- a/tools/xentrace/xenalyze.c +++ b/tools/xentrace/xenalyze.c @@ -8388,6 +8388,30 @@ void hw_process(struct pcpu_info *p) } } + +#define TRC_DOM0_SUB_DOMOPS 1 +void dom0_process(struct pcpu_info *p) +{ + struct record_info *ri = &p->ri; + + switch(ri->evt.sub) + { + case TRC_DOM0_SUB_DOMOPS: + if(opt.dump_all) { + struct { + unsigned int domid; + } *r = (typeof(r))ri->d; + + printf(" %s %s domain d%u\n", ri->dump_header, + ri->event == TRC_DOM0_DOM_ADD ? "creating" : "destroying", + r->domid); + } + break; + default: + process_generic(&p->ri); + } +} + /* ---- Base ----- */ void dump_generic(FILE * f, struct record_info *ri) { @@ -9224,6 +9248,8 @@ void process_record(struct pcpu_info *p) { hw_process(p); break; case TRC_DOM0OP_MAIN: + dom0_process(p); + break; default: process_generic(ri); } _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel ^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [PATCH 1/3] xenalyze: handle DOM0 operaions events 2016-03-12 11:33 ` [PATCH 1/3] xenalyze: handle DOM0 operaions events Dario Faggioli @ 2016-03-12 14:35 ` Wei Liu 2016-03-14 14:06 ` Konrad Rzeszutek Wilk ` (2 subsequent siblings) 3 siblings, 0 replies; 17+ messages in thread From: Wei Liu @ 2016-03-12 14:35 UTC (permalink / raw) To: Dario Faggioli; +Cc: George Dunlap, xen-devel, Ian Jackson, Wei Liu Typo in email title "operaions". Wei. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 1/3] xenalyze: handle DOM0 operaions events 2016-03-12 11:33 ` [PATCH 1/3] xenalyze: handle DOM0 operaions events Dario Faggioli 2016-03-12 14:35 ` Wei Liu @ 2016-03-14 14:06 ` Konrad Rzeszutek Wilk 2016-03-14 14:11 ` Dario Faggioli 2016-03-16 16:37 ` [PATCH 1/3 v2] xenalyze: handle DOM0 operations events Dario Faggioli 2016-03-23 12:35 ` [PATCH 1/3] xenalyze: handle DOM0 operaions events George Dunlap 3 siblings, 1 reply; 17+ messages in thread From: Konrad Rzeszutek Wilk @ 2016-03-14 14:06 UTC (permalink / raw) To: Dario Faggioli; +Cc: George Dunlap, xen-devel, Ian Jackson, Wei Liu On Sat, Mar 12, 2016 at 12:33:57PM +0100, Dario Faggioli wrote: > (i.e., domain creation and destruction) so the > trace will show properly decoded info, rather > than just a bunch of hex codes. Weirdly you also lost your SoB. > --- > Cc: George Dunlap <george.dunlap@eu.citrix.com> > Cc: Ian Jackson <ian.jackson@eu.citrix.com> > Cc: Wei Liu <wei.liu2@citrix.com> > Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> > --- > Changes from v1: > * new patch in the series. > --- > tools/xentrace/xenalyze.c | 26 ++++++++++++++++++++++++++ > 1 file changed, 26 insertions(+) > > diff --git a/tools/xentrace/xenalyze.c b/tools/xentrace/xenalyze.c > index d4a5b0c..353bed7 100644 > --- a/tools/xentrace/xenalyze.c > +++ b/tools/xentrace/xenalyze.c > @@ -8388,6 +8388,30 @@ void hw_process(struct pcpu_info *p) > } > > } > + > +#define TRC_DOM0_SUB_DOMOPS 1 > +void dom0_process(struct pcpu_info *p) > +{ > + struct record_info *ri = &p->ri; > + > + switch(ri->evt.sub) > + { > + case TRC_DOM0_SUB_DOMOPS: > + if(opt.dump_all) { > + struct { > + unsigned int domid; > + } *r = (typeof(r))ri->d; > + > + printf(" %s %s domain d%u\n", ri->dump_header, > + ri->event == TRC_DOM0_DOM_ADD ? "creating" : "destroying", > + r->domid); > + } > + break; > + default: > + process_generic(&p->ri); > + } > +} > + > /* ---- Base ----- */ > void dump_generic(FILE * f, struct record_info *ri) > { > @@ -9224,6 +9248,8 @@ void process_record(struct pcpu_info *p) { > hw_process(p); > break; > case TRC_DOM0OP_MAIN: > + dom0_process(p); > + break; > default: > process_generic(ri); > } > _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 1/3] xenalyze: handle DOM0 operaions events 2016-03-14 14:06 ` Konrad Rzeszutek Wilk @ 2016-03-14 14:11 ` Dario Faggioli 0 siblings, 0 replies; 17+ messages in thread From: Dario Faggioli @ 2016-03-14 14:11 UTC (permalink / raw) To: Konrad Rzeszutek Wilk; +Cc: George Dunlap, xen-devel, Ian Jackson, Wei Liu [-- Attachment #1.1: Type: text/plain, Size: 703 bytes --] On Mon, 2016-03-14 at 10:06 -0400, Konrad Rzeszutek Wilk wrote: > On Sat, Mar 12, 2016 at 12:33:57PM +0100, Dario Faggioli wrote: > > > > (i.e., domain creation and destruction) so the > > trace will show properly decoded info, rather > > than just a bunch of hex codes. > Weirdly you also lost your SoB. > So, typo in subject and no SoB... What a great patch I sent!! :-O I guess I'll resend. :-) Sorry and Regards, Dario -- <<This happens because I choose it to happen!>> (Raistlin Majere) ----------------------------------------------------------------- Dario Faggioli, Ph.D, http://about.me/dario.faggioli Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK) [-- Attachment #1.2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 181 bytes --] [-- Attachment #2: Type: text/plain, Size: 126 bytes --] _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel ^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH 1/3 v2] xenalyze: handle DOM0 operations events 2016-03-12 11:33 ` [PATCH 1/3] xenalyze: handle DOM0 operaions events Dario Faggioli 2016-03-12 14:35 ` Wei Liu 2016-03-14 14:06 ` Konrad Rzeszutek Wilk @ 2016-03-16 16:37 ` Dario Faggioli 2016-03-23 12:35 ` [PATCH 1/3] xenalyze: handle DOM0 operaions events George Dunlap 3 siblings, 0 replies; 17+ messages in thread From: Dario Faggioli @ 2016-03-16 16:37 UTC (permalink / raw) To: xen-devel; +Cc: George Dunlap, Wei Liu, Ian Jackson [-- Attachment #1.1: Type: text/plain, Size: 1655 bytes --] (i.e., domain creation and destruction) so the trace will show properly decoded info, rather than just a bunch of hex codes. Signed-off-by: Dario Faggioli <dario.faggioli@citrix.com> --- Changes from v2: * fix typo in subject; * add missing S-o-b. Changes from v1: * new patch in the series. diff --git a/tools/xentrace/xenalyze.c b/tools/xentrace/xenalyze.c index d4a5b0c..353bed7 100644 --- a/tools/xentrace/xenalyze.c +++ b/tools/xentrace/xenalyze.c @@ -8388,6 +8388,30 @@ void hw_process(struct pcpu_info *p) } } + +#define TRC_DOM0_SUB_DOMOPS 1 +void dom0_process(struct pcpu_info *p) +{ + struct record_info *ri = &p->ri; + + switch(ri->evt.sub) + { + case TRC_DOM0_SUB_DOMOPS: + if(opt.dump_all) { + struct { + unsigned int domid; + } *r = (typeof(r))ri->d; + + printf(" %s %s domain d%u\n", ri->dump_header, + ri->event == TRC_DOM0_DOM_ADD ? "creating" : "destroying", + r->domid); + } + break; + default: + process_generic(&p->ri); + } +} + /* ---- Base ----- */ void dump_generic(FILE * f, struct record_info *ri) { @@ -9224,6 +9248,8 @@ void process_record(struct pcpu_info *p) { hw_process(p); break; case TRC_DOM0OP_MAIN: + dom0_process(p); + break; default: process_generic(ri); } [-- Attachment #1.2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 181 bytes --] [-- Attachment #2: Type: text/plain, Size: 126 bytes --] _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel ^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [PATCH 1/3] xenalyze: handle DOM0 operaions events 2016-03-12 11:33 ` [PATCH 1/3] xenalyze: handle DOM0 operaions events Dario Faggioli ` (2 preceding siblings ...) 2016-03-16 16:37 ` [PATCH 1/3 v2] xenalyze: handle DOM0 operations events Dario Faggioli @ 2016-03-23 12:35 ` George Dunlap 2016-03-25 13:29 ` Konrad Rzeszutek Wilk 3 siblings, 1 reply; 17+ messages in thread From: George Dunlap @ 2016-03-23 12:35 UTC (permalink / raw) To: Dario Faggioli, xen-devel; +Cc: George Dunlap, Wei Liu, Ian Jackson On 12/03/16 11:33, Dario Faggioli wrote: > (i.e., domain creation and destruction) so the > trace will show properly decoded info, rather > than just a bunch of hex codes. > --- For some reason git won't apply your 'v2', complaining: 'corrupt patch at line 14'. But re the content (i.e., this patch with the SoB and the title fixed) Acked-by: George Dunlap <george.dunlap@citrix.com> Sorry it took so long to get to this. > Cc: George Dunlap <george.dunlap@eu.citrix.com> > Cc: Ian Jackson <ian.jackson@eu.citrix.com> > Cc: Wei Liu <wei.liu2@citrix.com> > Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> > --- > Changes from v1: > * new patch in the series. > --- > tools/xentrace/xenalyze.c | 26 ++++++++++++++++++++++++++ > 1 file changed, 26 insertions(+) > > diff --git a/tools/xentrace/xenalyze.c b/tools/xentrace/xenalyze.c > index d4a5b0c..353bed7 100644 > --- a/tools/xentrace/xenalyze.c > +++ b/tools/xentrace/xenalyze.c > @@ -8388,6 +8388,30 @@ void hw_process(struct pcpu_info *p) > } > > } > + > +#define TRC_DOM0_SUB_DOMOPS 1 > +void dom0_process(struct pcpu_info *p) > +{ > + struct record_info *ri = &p->ri; > + > + switch(ri->evt.sub) > + { > + case TRC_DOM0_SUB_DOMOPS: > + if(opt.dump_all) { > + struct { > + unsigned int domid; > + } *r = (typeof(r))ri->d; > + > + printf(" %s %s domain d%u\n", ri->dump_header, > + ri->event == TRC_DOM0_DOM_ADD ? "creating" : "destroying", > + r->domid); > + } > + break; > + default: > + process_generic(&p->ri); > + } > +} > + > /* ---- Base ----- */ > void dump_generic(FILE * f, struct record_info *ri) > { > @@ -9224,6 +9248,8 @@ void process_record(struct pcpu_info *p) { > hw_process(p); > break; > case TRC_DOM0OP_MAIN: > + dom0_process(p); > + break; > default: > process_generic(ri); > } > _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 1/3] xenalyze: handle DOM0 operaions events 2016-03-23 12:35 ` [PATCH 1/3] xenalyze: handle DOM0 operaions events George Dunlap @ 2016-03-25 13:29 ` Konrad Rzeszutek Wilk 2016-04-01 12:13 ` git branch for checking-in leftover patches [was: Re: [PATCH 1/3] xenalyze: handle DOM0 operaions events] Dario Faggioli 0 siblings, 1 reply; 17+ messages in thread From: Konrad Rzeszutek Wilk @ 2016-03-25 13:29 UTC (permalink / raw) Cc: George Dunlap, xen-devel, Dario Faggioli, Ian Jackson, Wei Liu On Wed, Mar 23, 2016 at 12:35:36PM +0000, George Dunlap wrote: > On 12/03/16 11:33, Dario Faggioli wrote: > > (i.e., domain creation and destruction) so the > > trace will show properly decoded info, rather > > than just a bunch of hex codes. > > --- > > For some reason git won't apply your 'v2', complaining: 'corrupt patch > at line 14'. /me nods. Same here. I tried to check it in but couldn't. Dariof could you make a git branch to pull in the Acked patches please? > > But re the content (i.e., this patch with the SoB and the title fixed) > > Acked-by: George Dunlap <george.dunlap@citrix.com> > > Sorry it took so long to get to this. > > > > Cc: George Dunlap <george.dunlap@eu.citrix.com> > > Cc: Ian Jackson <ian.jackson@eu.citrix.com> > > Cc: Wei Liu <wei.liu2@citrix.com> > > Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> > > --- > > Changes from v1: > > * new patch in the series. > > --- > > tools/xentrace/xenalyze.c | 26 ++++++++++++++++++++++++++ > > 1 file changed, 26 insertions(+) > > > > diff --git a/tools/xentrace/xenalyze.c b/tools/xentrace/xenalyze.c > > index d4a5b0c..353bed7 100644 > > --- a/tools/xentrace/xenalyze.c > > +++ b/tools/xentrace/xenalyze.c > > @@ -8388,6 +8388,30 @@ void hw_process(struct pcpu_info *p) > > } > > > > } > > + > > +#define TRC_DOM0_SUB_DOMOPS 1 > > +void dom0_process(struct pcpu_info *p) > > +{ > > + struct record_info *ri = &p->ri; > > + > > + switch(ri->evt.sub) > > + { > > + case TRC_DOM0_SUB_DOMOPS: > > + if(opt.dump_all) { > > + struct { > > + unsigned int domid; > > + } *r = (typeof(r))ri->d; > > + > > + printf(" %s %s domain d%u\n", ri->dump_header, > > + ri->event == TRC_DOM0_DOM_ADD ? "creating" : "destroying", > > + r->domid); > > + } > > + break; > > + default: > > + process_generic(&p->ri); > > + } > > +} > > + > > /* ---- Base ----- */ > > void dump_generic(FILE * f, struct record_info *ri) > > { > > @@ -9224,6 +9248,8 @@ void process_record(struct pcpu_info *p) { > > hw_process(p); > > break; > > case TRC_DOM0OP_MAIN: > > + dom0_process(p); > > + break; > > default: > > process_generic(ri); > > } > > > _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel ^ permalink raw reply [flat|nested] 17+ messages in thread
* git branch for checking-in leftover patches [was: Re: [PATCH 1/3] xenalyze: handle DOM0 operaions events] 2016-03-25 13:29 ` Konrad Rzeszutek Wilk @ 2016-04-01 12:13 ` Dario Faggioli 2016-04-01 14:00 ` Ian Jackson 0 siblings, 1 reply; 17+ messages in thread From: Dario Faggioli @ 2016-04-01 12:13 UTC (permalink / raw) To: Konrad Rzeszutek Wilk, Wei Liu; +Cc: George Dunlap, xen-devel, Ian Jackson [-- Attachment #1.1: Type: text/plain, Size: 1454 bytes --] On Fri, 2016-03-25 at 09:29 -0400, Konrad Rzeszutek Wilk wrote: > On Wed, Mar 23, 2016 at 12:35:36PM +0000, George Dunlap wrote: > > > > On 12/03/16 11:33, Dario Faggioli wrote: > > > > > > (i.e., domain creation and destruction) so the > > > trace will show properly decoded info, rather > > > than just a bunch of hex codes. > > > --- > > For some reason git won't apply your 'v2', complaining: 'corrupt > > patch > > at line 14'. > /me nods. Same here. I tried to check it in but couldn't. > > Dariof could you make a git branch to pull in the Acked patches > please? > Here it comes: git://xenbits.xen.org/people/dariof/xen.git tracing/sched-events-improvements-leftover http://xenbits.xen.org/gitweb/?p=people/dariof/xen.git;a=shortlog;h=refs/heads/tracing/sched-events-improvements-leftover As far as I can tell, it is these two patches that are still unapplied, and can go in: xenalyze: handle RTDS scheduler events xenalyze: handle DOM0 operations events (the first two commits of the branch, of course.) Sorry it took a bit, but I lost track of what actually went in and what didn't for this series... :-/ Thanks and Regards, Dario -- <<This happens because I choose it to happen!>> (Raistlin Majere) ----------------------------------------------------------------- Dario Faggioli, Ph.D, http://about.me/dario.faggioli Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK) [-- Attachment #1.2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 181 bytes --] [-- Attachment #2: Type: text/plain, Size: 126 bytes --] _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel ^ permalink raw reply [flat|nested] 17+ messages in thread
* git branch for checking-in leftover patches [was: Re: [PATCH 1/3] xenalyze: handle DOM0 operaions events] 2016-04-01 12:13 ` git branch for checking-in leftover patches [was: Re: [PATCH 1/3] xenalyze: handle DOM0 operaions events] Dario Faggioli @ 2016-04-01 14:00 ` Ian Jackson 0 siblings, 0 replies; 17+ messages in thread From: Ian Jackson @ 2016-04-01 14:00 UTC (permalink / raw) To: Dario Faggioli; +Cc: George Dunlap, xen-devel, Wei Liu Dario Faggioli writes ("git branch for checking-in leftover patches [was: Re: [Xen-devel] [PATCH 1/3] xenalyze: handle DOM0 operaions events]"): > git://xenbits.xen.org/people/dariof/xen.git tracing/sched-events-improvements-leftover > http://xenbits.xen.org/gitweb/?p=people/dariof/xen.git;a=shortlog;h=refs/heads/tracing/sched-events-improvements-leftover > > As far as I can tell, it is these two patches that are still unapplied, > and can go in: > > xenalyze: handle RTDS scheduler events > xenalyze: handle DOM0 operations events Thanks. I have rebased those onto staging and applied them. Ian. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel ^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH 2/3] xen: sched RTDS: use uint64_t for tracing time values 2016-03-12 11:33 [PATCH 0/3] xen: more scheduler tracing improvement Dario Faggioli 2016-03-12 11:33 ` [PATCH 1/3] xenalyze: handle DOM0 operaions events Dario Faggioli @ 2016-03-12 11:34 ` Dario Faggioli 2016-03-12 15:05 ` Meng Xu 2016-03-14 9:07 ` Jan Beulich 2016-03-12 11:34 ` [PATCH 3/3] xenalyze: handle RTDS scheduler events Dario Faggioli 2 siblings, 2 replies; 17+ messages in thread From: Dario Faggioli @ 2016-03-12 11:34 UTC (permalink / raw) To: xen-devel; +Cc: George Dunlap, Meng Xu such as deadline and budget. Packing is necessary to make it possible for xentrace_format to properly interpreet the records. Signed-off-by: Dario Faggioli <dario.faggioli@citrix.com> --- Cc: George Dunlap <george.dunlap@eu.citrix.com> Cc: Meng Xu <mengxu@cis.upenn.edu> --- xen/common/sched_rt.c | 30 +++++++++++------------------- 1 file changed, 11 insertions(+), 19 deletions(-) diff --git a/xen/common/sched_rt.c b/xen/common/sched_rt.c index bfed2e2..8e51abe 100644 --- a/xen/common/sched_rt.c +++ b/xen/common/sched_rt.c @@ -361,17 +361,14 @@ rt_update_deadline(s_time_t now, struct rt_vcpu *svc) /* TRACE */ { - struct { + struct __packed { unsigned vcpu:16, dom:16; - unsigned cur_deadline_lo, cur_deadline_hi; - unsigned cur_budget_lo, cur_budget_hi; + uint64_t cur_deadline, cur_budget; } d; d.dom = svc->vcpu->domain->domain_id; d.vcpu = svc->vcpu->vcpu_id; - d.cur_deadline_lo = (unsigned) svc->cur_deadline; - d.cur_deadline_hi = (unsigned) (svc->cur_deadline >> 32); - d.cur_budget_lo = (unsigned) svc->cur_budget; - d.cur_budget_hi = (unsigned) (svc->cur_budget >> 32); + d.cur_deadline = (uint64_t) svc->cur_deadline; + d.cur_budget = (uint64_t) svc->cur_budget; trace_var(TRC_RTDS_BUDGET_REPLENISH, 1, sizeof(d), (unsigned char *) &d); @@ -711,16 +708,14 @@ burn_budget(const struct scheduler *ops, struct rt_vcpu *svc, s_time_t now) /* TRACE */ { - struct { + struct __packed { unsigned vcpu:16, dom:16; - unsigned cur_budget_lo; - unsigned cur_budget_hi; + uint64_t cur_budget; int delta; } d; d.dom = svc->vcpu->domain->domain_id; d.vcpu = svc->vcpu->vcpu_id; - d.cur_budget_lo = (unsigned) svc->cur_budget; - d.cur_budget_hi = (unsigned) (svc->cur_budget >> 32); + d.cur_budget = (uint64_t) svc->cur_budget; d.delta = delta; trace_var(TRC_RTDS_BUDGET_BURN, 1, sizeof(d), @@ -763,17 +758,14 @@ __runq_pick(const struct scheduler *ops, const cpumask_t *mask) { if( svc != NULL ) { - struct { + struct __packed { unsigned vcpu:16, dom:16; - unsigned cur_deadline_lo, cur_deadline_hi; - unsigned cur_budget_lo, cur_budget_hi; + uint64_t cur_deadline, cur_budget; } d; d.dom = svc->vcpu->domain->domain_id; d.vcpu = svc->vcpu->vcpu_id; - d.cur_deadline_lo = (unsigned) svc->cur_deadline; - d.cur_deadline_hi = (unsigned) (svc->cur_deadline >> 32); - d.cur_budget_lo = (unsigned) svc->cur_budget; - d.cur_budget_hi = (unsigned) (svc->cur_budget >> 32); + d.cur_deadline = (uint64_t) svc->cur_deadline; + d.cur_budget = (uint64_t) svc->cur_budget; trace_var(TRC_RTDS_RUNQ_PICK, 1, sizeof(d), (unsigned char *) &d); _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel ^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [PATCH 2/3] xen: sched RTDS: use uint64_t for tracing time values 2016-03-12 11:34 ` [PATCH 2/3] xen: sched RTDS: use uint64_t for tracing time values Dario Faggioli @ 2016-03-12 15:05 ` Meng Xu 2016-03-14 9:07 ` Jan Beulich 1 sibling, 0 replies; 17+ messages in thread From: Meng Xu @ 2016-03-12 15:05 UTC (permalink / raw) To: Dario Faggioli; +Cc: George Dunlap, xen-devel On Sat, Mar 12, 2016 at 6:34 AM, Dario Faggioli <dario.faggioli@citrix.com> wrote: > such as deadline and budget. Packing is necessary to make > it possible for xentrace_format to properly interpreet the > records. > > Signed-off-by: Dario Faggioli <dario.faggioli@citrix.com> > --- > Cc: George Dunlap <george.dunlap@eu.citrix.com> > Cc: Meng Xu <mengxu@cis.upenn.edu> > --- Reviewed-by: Meng Xu <mengxu@cis.upenn.edu> ----------- Meng Xu PhD Student in Computer and Information Science University of Pennsylvania http://www.cis.upenn.edu/~mengxu/ _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 2/3] xen: sched RTDS: use uint64_t for tracing time values 2016-03-12 11:34 ` [PATCH 2/3] xen: sched RTDS: use uint64_t for tracing time values Dario Faggioli 2016-03-12 15:05 ` Meng Xu @ 2016-03-14 9:07 ` Jan Beulich 2016-03-16 16:38 ` Dario Faggioli 1 sibling, 1 reply; 17+ messages in thread From: Jan Beulich @ 2016-03-14 9:07 UTC (permalink / raw) To: Dario Faggioli; +Cc: George Dunlap, xen-devel, Meng Xu >>> On 12.03.16 at 12:34, <dario.faggioli@citrix.com> wrote: > --- a/xen/common/sched_rt.c > +++ b/xen/common/sched_rt.c > @@ -361,17 +361,14 @@ rt_update_deadline(s_time_t now, struct rt_vcpu *svc) > > /* TRACE */ > { > - struct { > + struct __packed { > unsigned vcpu:16, dom:16; > - unsigned cur_deadline_lo, cur_deadline_hi; > - unsigned cur_budget_lo, cur_budget_hi; > + uint64_t cur_deadline, cur_budget; > } d; > d.dom = svc->vcpu->domain->domain_id; > d.vcpu = svc->vcpu->vcpu_id; > - d.cur_deadline_lo = (unsigned) svc->cur_deadline; > - d.cur_deadline_hi = (unsigned) (svc->cur_deadline >> 32); > - d.cur_budget_lo = (unsigned) svc->cur_budget; > - d.cur_budget_hi = (unsigned) (svc->cur_budget >> 32); > + d.cur_deadline = (uint64_t) svc->cur_deadline; > + d.cur_budget = (uint64_t) svc->cur_budget; I don't see the need for these cast (and similar ones further down), but you're the maintainer, so you know ... Jan _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 2/3] xen: sched RTDS: use uint64_t for tracing time values 2016-03-14 9:07 ` Jan Beulich @ 2016-03-16 16:38 ` Dario Faggioli 0 siblings, 0 replies; 17+ messages in thread From: Dario Faggioli @ 2016-03-16 16:38 UTC (permalink / raw) To: Jan Beulich, George Dunlap; +Cc: xen-devel, Ian Jackson, Meng Xu, Wei Liu [-- Attachment #1.1: Type: text/plain, Size: 2250 bytes --] On Mon, 2016-03-14 at 03:07 -0600, Jan Beulich wrote: > > > > On 12.03.16 at 12:34, <dario.faggioli@citrix.com> wrote: > > --- a/xen/common/sched_rt.c > > +++ b/xen/common/sched_rt.c > > @@ -361,17 +361,14 @@ rt_update_deadline(s_time_t now, struct > > rt_vcpu *svc) > > > > /* TRACE */ > > { > > - struct { > > + struct __packed { > > unsigned vcpu:16, dom:16; > > - unsigned cur_deadline_lo, cur_deadline_hi; > > - unsigned cur_budget_lo, cur_budget_hi; > > + uint64_t cur_deadline, cur_budget; > > } d; > > d.dom = svc->vcpu->domain->domain_id; > > d.vcpu = svc->vcpu->vcpu_id; > > - d.cur_deadline_lo = (unsigned) svc->cur_deadline; > > - d.cur_deadline_hi = (unsigned) (svc->cur_deadline >> 32); > > - d.cur_budget_lo = (unsigned) svc->cur_budget; > > - d.cur_budget_hi = (unsigned) (svc->cur_budget >> 32); > > + d.cur_deadline = (uint64_t) svc->cur_deadline; > > + d.cur_budget = (uint64_t) svc->cur_budget; > I don't see the need for these cast (and similar ones further down), > but you're the maintainer, so you know ... > BTW, I saw you've committed this. Thanks for that, and sorry for not replying. I wanted to, but I've had a couple of day full of Internet connectivity issues. I do think it's best to keep the casts, although strictly unnecessary. About this series, I'm re-sending patch 1, by replying directly to that same email of this thread. So, for other maintainers (which I'm Cc-ing to this message), or should I say, for George :-), this is what should be considered for review: - [PATCH 1/3 v2] xenalyze: handle DOM0 operations events - [PATCH 3/3] xenalyze: handle RTDS scheduler events Thanks and Regards, Dario -- <<This happens because I choose it to happen!>> (Raistlin Majere) ----------------------------------------------------------------- Dario Faggioli, Ph.D, http://about.me/dario.faggioli Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK) [-- Attachment #1.2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 181 bytes --] [-- Attachment #2: Type: text/plain, Size: 126 bytes --] _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel ^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH 3/3] xenalyze: handle RTDS scheduler events 2016-03-12 11:33 [PATCH 0/3] xen: more scheduler tracing improvement Dario Faggioli 2016-03-12 11:33 ` [PATCH 1/3] xenalyze: handle DOM0 operaions events Dario Faggioli 2016-03-12 11:34 ` [PATCH 2/3] xen: sched RTDS: use uint64_t for tracing time values Dario Faggioli @ 2016-03-12 11:34 ` Dario Faggioli 2016-03-12 15:14 ` Meng Xu 2016-03-23 12:36 ` George Dunlap 2 siblings, 2 replies; 17+ messages in thread From: Dario Faggioli @ 2016-03-12 11:34 UTC (permalink / raw) To: xen-devel; +Cc: Wei Liu, George Dunlap, Tianyang Chen, Ian Jackson, Meng Xu so the trace will show properly decoded info, rather than just a bunch of hex codes. Signed-off-by: Dario Faggioli <dario.faggioli@citrix.com> Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> --- Cc: George Dunlap <george.dunlap@eu.citrix.com> Cc: Meng Xu <xumengpanda@gmail.com> Cc: Tianyang Chen <tiche@seas.upenn.edu> Cc: Ian Jackson <ian.jackson@eu.citrix.com> Cc: Wei Liu <wei.liu2@citrix.com> --- Changes from v2: * use 64 bits ints for time values (now that the scheduler does that too), as suggested during review. Changes from v1: * '} * r =' turned into '} *r =', as requested during review. --- tools/xentrace/xenalyze.c | 52 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/tools/xentrace/xenalyze.c b/tools/xentrace/xenalyze.c index 353bed7..b949986 100644 --- a/tools/xentrace/xenalyze.c +++ b/tools/xentrace/xenalyze.c @@ -7823,6 +7823,58 @@ void sched_process(struct pcpu_info *p) r->rq_avgload, r->b_avgload); } break; + /* RTDS (TRC_RTDS_xxx) */ + case TRC_SCHED_CLASS_EVT(RTDS, 1): /* TICKLE */ + if(opt.dump_all) { + struct { + unsigned int cpu:16; + } *r = (typeof(r))ri->d; + + printf(" %s rtds:runq_tickle cpu %u\n", + ri->dump_header, r->cpu); + } + break; + case TRC_SCHED_CLASS_EVT(RTDS, 2): /* RUNQ_PICK */ + if(opt.dump_all) { + struct { + unsigned int vcpuid:16, domid:16; + uint64_t cur_dl, cur_bg; + } __attribute__((packed)) *r = (typeof(r))ri->d; + + printf(" %s rtds:runq_pick d%uv%u, deadline = %"PRIu64", " + "budget = %"PRIu64"\n", ri->dump_header, + r->domid, r->vcpuid, r->cur_dl, r->cur_bg); + } + break; + case TRC_SCHED_CLASS_EVT(RTDS, 3): /* BUDGET_BURN */ + if(opt.dump_all) { + struct { + unsigned int vcpuid:16, domid:16; + uint64_t cur_bg; + int delta; + } __attribute__((packed)) *r = (typeof(r))ri->d; + + printf(" %s rtds:burn_budget d%uv%u, budget = %"PRIu64", " + "delta = %d\n", ri->dump_header, r->domid, + r->vcpuid, r->cur_bg, r->delta); + } + break; + case TRC_SCHED_CLASS_EVT(RTDS, 4): /* BUDGET_REPLENISH */ + if(opt.dump_all) { + struct { + unsigned int vcpuid:16, domid:16; + uint64_t cur_dl, cur_bg; + } __attribute__((packed)) *r = (typeof(r))ri->d; + + printf(" %s rtds:repl_budget d%uv%u, deadline = %"PRIu64", " + "budget = %"PRIu64"\n", ri->dump_header, + r->domid, r->vcpuid, r->cur_dl, r->cur_bg); + } + break; + case TRC_SCHED_CLASS_EVT(RTDS, 5): /* SCHED_TASKLET */ + if(opt.dump_all) + printf(" %s rtds:sched_tasklet\n", ri->dump_header); + break; default: process_generic(ri); } _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel ^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [PATCH 3/3] xenalyze: handle RTDS scheduler events 2016-03-12 11:34 ` [PATCH 3/3] xenalyze: handle RTDS scheduler events Dario Faggioli @ 2016-03-12 15:14 ` Meng Xu 2016-03-23 12:36 ` George Dunlap 1 sibling, 0 replies; 17+ messages in thread From: Meng Xu @ 2016-03-12 15:14 UTC (permalink / raw) To: Dario Faggioli Cc: Wei Liu, George Dunlap, Tianyang Chen, Ian Jackson, xen-devel On Sat, Mar 12, 2016 at 6:34 AM, Dario Faggioli <dario.faggioli@citrix.com> wrote: > so the trace will show properly decoded info, > rather than just a bunch of hex codes. > > Signed-off-by: Dario Faggioli <dario.faggioli@citrix.com> > Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> > --- > Cc: George Dunlap <george.dunlap@eu.citrix.com> > Cc: Meng Xu <xumengpanda@gmail.com> > Cc: Tianyang Chen <tiche@seas.upenn.edu> > Cc: Ian Jackson <ian.jackson@eu.citrix.com> > Cc: Wei Liu <wei.liu2@citrix.com> > --- > Changes from v2: > * use 64 bits ints for time values (now that the scheduler > does that too), as suggested during review. > > Changes from v1: > * '} * r =' turned into '} *r =', as requested > during review. > --- Reviewed-by: Meng Xu <mengxu@cis.upenn.edu> Thanks, ----------- Meng Xu PhD Student in Computer and Information Science University of Pennsylvania http://www.cis.upenn.edu/~mengxu/ _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 3/3] xenalyze: handle RTDS scheduler events 2016-03-12 11:34 ` [PATCH 3/3] xenalyze: handle RTDS scheduler events Dario Faggioli 2016-03-12 15:14 ` Meng Xu @ 2016-03-23 12:36 ` George Dunlap 1 sibling, 0 replies; 17+ messages in thread From: George Dunlap @ 2016-03-23 12:36 UTC (permalink / raw) To: Dario Faggioli, xen-devel Cc: Wei Liu, George Dunlap, Tianyang Chen, Ian Jackson, Meng Xu On 12/03/16 11:34, Dario Faggioli wrote: > so the trace will show properly decoded info, > rather than just a bunch of hex codes. > > Signed-off-by: Dario Faggioli <dario.faggioli@citrix.com> > Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> Acked-by: George Dunlap <george.dunlap@citrix.com> > --- > Cc: George Dunlap <george.dunlap@eu.citrix.com> > Cc: Meng Xu <xumengpanda@gmail.com> > Cc: Tianyang Chen <tiche@seas.upenn.edu> > Cc: Ian Jackson <ian.jackson@eu.citrix.com> > Cc: Wei Liu <wei.liu2@citrix.com> > --- > Changes from v2: > * use 64 bits ints for time values (now that the scheduler > does that too), as suggested during review. > > Changes from v1: > * '} * r =' turned into '} *r =', as requested > during review. > --- > tools/xentrace/xenalyze.c | 52 +++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 52 insertions(+) > > diff --git a/tools/xentrace/xenalyze.c b/tools/xentrace/xenalyze.c > index 353bed7..b949986 100644 > --- a/tools/xentrace/xenalyze.c > +++ b/tools/xentrace/xenalyze.c > @@ -7823,6 +7823,58 @@ void sched_process(struct pcpu_info *p) > r->rq_avgload, r->b_avgload); > } > break; > + /* RTDS (TRC_RTDS_xxx) */ > + case TRC_SCHED_CLASS_EVT(RTDS, 1): /* TICKLE */ > + if(opt.dump_all) { > + struct { > + unsigned int cpu:16; > + } *r = (typeof(r))ri->d; > + > + printf(" %s rtds:runq_tickle cpu %u\n", > + ri->dump_header, r->cpu); > + } > + break; > + case TRC_SCHED_CLASS_EVT(RTDS, 2): /* RUNQ_PICK */ > + if(opt.dump_all) { > + struct { > + unsigned int vcpuid:16, domid:16; > + uint64_t cur_dl, cur_bg; > + } __attribute__((packed)) *r = (typeof(r))ri->d; > + > + printf(" %s rtds:runq_pick d%uv%u, deadline = %"PRIu64", " > + "budget = %"PRIu64"\n", ri->dump_header, > + r->domid, r->vcpuid, r->cur_dl, r->cur_bg); > + } > + break; > + case TRC_SCHED_CLASS_EVT(RTDS, 3): /* BUDGET_BURN */ > + if(opt.dump_all) { > + struct { > + unsigned int vcpuid:16, domid:16; > + uint64_t cur_bg; > + int delta; > + } __attribute__((packed)) *r = (typeof(r))ri->d; > + > + printf(" %s rtds:burn_budget d%uv%u, budget = %"PRIu64", " > + "delta = %d\n", ri->dump_header, r->domid, > + r->vcpuid, r->cur_bg, r->delta); > + } > + break; > + case TRC_SCHED_CLASS_EVT(RTDS, 4): /* BUDGET_REPLENISH */ > + if(opt.dump_all) { > + struct { > + unsigned int vcpuid:16, domid:16; > + uint64_t cur_dl, cur_bg; > + } __attribute__((packed)) *r = (typeof(r))ri->d; > + > + printf(" %s rtds:repl_budget d%uv%u, deadline = %"PRIu64", " > + "budget = %"PRIu64"\n", ri->dump_header, > + r->domid, r->vcpuid, r->cur_dl, r->cur_bg); > + } > + break; > + case TRC_SCHED_CLASS_EVT(RTDS, 5): /* SCHED_TASKLET */ > + if(opt.dump_all) > + printf(" %s rtds:sched_tasklet\n", ri->dump_header); > + break; > default: > process_generic(ri); > } > _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel ^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2016-04-01 14:00 UTC | newest] Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2016-03-12 11:33 [PATCH 0/3] xen: more scheduler tracing improvement Dario Faggioli 2016-03-12 11:33 ` [PATCH 1/3] xenalyze: handle DOM0 operaions events Dario Faggioli 2016-03-12 14:35 ` Wei Liu 2016-03-14 14:06 ` Konrad Rzeszutek Wilk 2016-03-14 14:11 ` Dario Faggioli 2016-03-16 16:37 ` [PATCH 1/3 v2] xenalyze: handle DOM0 operations events Dario Faggioli 2016-03-23 12:35 ` [PATCH 1/3] xenalyze: handle DOM0 operaions events George Dunlap 2016-03-25 13:29 ` Konrad Rzeszutek Wilk 2016-04-01 12:13 ` git branch for checking-in leftover patches [was: Re: [PATCH 1/3] xenalyze: handle DOM0 operaions events] Dario Faggioli 2016-04-01 14:00 ` Ian Jackson 2016-03-12 11:34 ` [PATCH 2/3] xen: sched RTDS: use uint64_t for tracing time values Dario Faggioli 2016-03-12 15:05 ` Meng Xu 2016-03-14 9:07 ` Jan Beulich 2016-03-16 16:38 ` Dario Faggioli 2016-03-12 11:34 ` [PATCH 3/3] xenalyze: handle RTDS scheduler events Dario Faggioli 2016-03-12 15:14 ` Meng Xu 2016-03-23 12:36 ` George Dunlap
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).