[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 1/4] xen: sched: avoid dumping duplicate information
On Thu, Jun 25, 2015 at 1:15 PM, Dario Faggioli <dario.faggioli@xxxxxxxxxx> wrote: > When dumping scheduling information (debug key 'r'), what > we print as 'Idle cpupool' is pretty much the same of what > we print immediately after as 'Cpupool0'. In fact, if there > are no pCPUs outside of any cpupools, it is exactly the > same. > > If there are free pCPUs, there is some valuable information, > but still a lot of duplication: > > (XEN) Online Cpus: 0-15 > (XEN) Free Cpus: 8 > (XEN) Idle cpupool: > (XEN) Scheduler: SMP Credit Scheduler (credit) > (XEN) info: > (XEN) ncpus = 13 > (XEN) master = 0 > (XEN) credit = 3900 > (XEN) credit balance = 45 > (XEN) weight = 1280 > (XEN) runq_sort = 11820 > (XEN) default-weight = 256 > (XEN) tslice = 30ms > (XEN) ratelimit = 1000us > (XEN) credits per msec = 10 > (XEN) ticks per tslice = 3 > (XEN) migration delay = 0us > (XEN) idlers: 00000000,00006d29 > (XEN) active vcpus: > (XEN) 1: [1.7] pri=-1 flags=0 cpu=15 credit=-116 [w=256,cap=0] (84+300) > {a/i=22/21 m=18+5 (k=0)} > (XEN) 2: [1.3] pri=0 flags=0 cpu=1 credit=-113 [w=256,cap=0] (87+300) > {a/i=37/36 m=11+544 (k=0)} > (XEN) 3: [0.15] pri=-1 flags=0 cpu=4 credit=95 [w=256,cap=0] (210+300) > {a/i=127/126 m=108+9 (k=0)} > (XEN) 4: [0.10] pri=-2 flags=0 cpu=12 credit=-287 [w=256,cap=0] > (-84+300) {a/i=163/162 m=36+568 (k=0)} > (XEN) 5: [0.7] pri=-2 flags=0 cpu=2 credit=-242 [w=256,cap=0] (-42+300) > {a/i=129/128 m=16+50 (k=0)} > (XEN) CPU[08] sort=5791, sibling=00000000,00000300, core=00000000,0000ff00 > (XEN) run: [32767.8] pri=-64 flags=0 cpu=8 > (XEN) Cpupool 0: > (XEN) Cpus: 0-5,10-15 > (XEN) Scheduler: SMP Credit Scheduler (credit) > (XEN) info: > (XEN) ncpus = 13 > (XEN) master = 0 > (XEN) credit = 3900 > (XEN) credit balance = 45 > (XEN) weight = 1280 > (XEN) runq_sort = 11820 > (XEN) default-weight = 256 > (XEN) tslice = 30ms > (XEN) ratelimit = 1000us > (XEN) credits per msec = 10 > (XEN) ticks per tslice = 3 > (XEN) migration delay = 0us > (XEN) idlers: 00000000,00006d29 > (XEN) active vcpus: > (XEN) 1: [1.7] pri=-1 flags=0 cpu=15 credit=-116 [w=256,cap=0] (84+300) > {a/i=22/21 m=18+5 (k=0)} > (XEN) 2: [1.3] pri=0 flags=0 cpu=1 credit=-113 [w=256,cap=0] (87+300) > {a/i=37/36 m=11+544 (k=0)} > (XEN) 3: [0.15] pri=-1 flags=0 cpu=4 credit=95 [w=256,cap=0] (210+300) > {a/i=127/126 m=108+9 (k=0)} > (XEN) 4: [0.10] pri=-2 flags=0 cpu=12 credit=-287 [w=256,cap=0] > (-84+300) {a/i=163/162 m=36+568 (k=0)} > (XEN) 5: [0.7] pri=-2 flags=0 cpu=2 credit=-242 [w=256,cap=0] (-42+300) > {a/i=129/128 m=16+50 (k=0)} > (XEN) CPU[00] sort=11801, sibling=00000000,00000003, core=00000000,000000ff > (XEN) run: [32767.0] pri=-64 flags=0 cpu=0 > ... ... ... > (XEN) CPU[15] sort=11820, sibling=00000000,0000c000, core=00000000,0000ff00 > (XEN) run: [1.7] pri=-1 flags=0 cpu=15 credit=-116 [w=256,cap=0] (84+300) > {a/i=22/21 m=18+5 (k=0)} > (XEN) 1: [32767.15] pri=-64 flags=0 cpu=15 > (XEN) Cpupool 1: > (XEN) Cpus: 6-7,9 > (XEN) Scheduler: SMP RTDS Scheduler (rtds) > (XEN) CPU[06] > (XEN) CPU[07] > (XEN) CPU[09] > > With this change, we get rid of the redundancy, and retain > only the information about the free pCPUs. > > (While there, turn a loop index variable from `int' to > `unsigned int' in schedule_dump().) > > Signed-off-by: Dario Faggioli <dario.faggioli@xxxxxxxxxx> Acked-by: George Dunlap <george.dunlap@xxxxxxxxxxxxx> > --- > Cc: Juergen Gross <jgross@xxxxxxxx> > Cc: George Dunlap <george.dunlap@xxxxxxxxxxxxx> > --- > xen/common/cpupool.c | 6 +++--- > xen/common/schedule.c | 18 +++++++++++++----- > 2 files changed, 16 insertions(+), 8 deletions(-) > > diff --git a/xen/common/cpupool.c b/xen/common/cpupool.c > index 563864d..5471f93 100644 > --- a/xen/common/cpupool.c > +++ b/xen/common/cpupool.c > @@ -728,10 +728,10 @@ void dump_runq(unsigned char key) > > print_cpumap("Online Cpus", &cpu_online_map); > if ( !cpumask_empty(&cpupool_free_cpus) ) > + { > print_cpumap("Free Cpus", &cpupool_free_cpus); > - > - printk("Idle cpupool:\n"); > - schedule_dump(NULL); > + schedule_dump(NULL); > + } > > for_each_cpupool(c) > { > diff --git a/xen/common/schedule.c b/xen/common/schedule.c > index ecf1545..4ffcd98 100644 > --- a/xen/common/schedule.c > +++ b/xen/common/schedule.c > @@ -1473,16 +1473,24 @@ void scheduler_free(struct scheduler *sched) > > void schedule_dump(struct cpupool *c) > { > - int i; > + unsigned int i; > struct scheduler *sched; > cpumask_t *cpus; > > /* Locking, if necessary, must be handled withing each scheduler */ > > - sched = (c == NULL) ? &ops : c->sched; > - cpus = cpupool_scheduler_cpumask(c); > - printk("Scheduler: %s (%s)\n", sched->name, sched->opt_name); > - SCHED_OP(sched, dump_settings); > + if ( c != NULL ) > + { > + sched = c->sched; > + cpus = c->cpu_valid; > + printk("Scheduler: %s (%s)\n", sched->name, sched->opt_name); > + SCHED_OP(sched, dump_settings); > + } > + else > + { > + sched = &ops; > + cpus = &cpupool_free_cpus; > + } > > for_each_cpu (i, cpus) > { > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@xxxxxxxxxxxxx > http://lists.xen.org/xen-devel _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |