[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] xen: sched: get rid of static private schedulers' structures
On 08/02/16 13:19, Dario Faggioli wrote: > In fact, they look rather useless: they are never > referenced neither directly, nor via the sched_data > pointer, as a dynamic copy that overrides them is > allocated as the very first step of a scheduler's > initialization. > > While there, take the chance to also reset the sched_data > pointer to NULL, upon scheduler de-initialization. > > Signed-off-by: Dario Faggioli <dario.faggioli@xxxxxxxxxx> Acked-by: George Dunlap <george.dunlap@xxxxxxxxxx> Sorry for the delay > --- > Cc: George Dunlap <george.dunlap@xxxxxxxxxx> > Cc: Juergen Gross <jgross@xxxxxxxx> > --- > xen/common/sched_arinc653.c | 3 ++- > xen/common/sched_credit.c | 7 +++---- > xen/common/sched_credit2.c | 8 +++----- > xen/common/sched_rt.c | 7 +++---- > xen/include/xen/sched-if.h | 2 +- > 5 files changed, 12 insertions(+), 15 deletions(-) > > diff --git a/xen/common/sched_arinc653.c b/xen/common/sched_arinc653.c > index 0606988..8a11a2f 100644 > --- a/xen/common/sched_arinc653.c > +++ b/xen/common/sched_arinc653.c > @@ -367,9 +367,10 @@ a653sched_init(struct scheduler *ops) > * @param ops Pointer to this instance of the scheduler structure > */ > static void > -a653sched_deinit(const struct scheduler *ops) > +a653sched_deinit(struct scheduler *ops) > { > xfree(SCHED_PRIV(ops)); > + ops->sched_data = NULL; > } > > /** > diff --git a/xen/common/sched_credit.c b/xen/common/sched_credit.c > index 671bbee..25a4773 100644 > --- a/xen/common/sched_credit.c > +++ b/xen/common/sched_credit.c > @@ -1959,13 +1959,14 @@ csched_init(struct scheduler *ops) > } > > static void > -csched_deinit(const struct scheduler *ops) > +csched_deinit(struct scheduler *ops) > { > struct csched_private *prv; > > prv = CSCHED_PRIV(ops); > if ( prv != NULL ) > { > + ops->sched_data = NULL; > free_cpumask_var(prv->cpus); > free_cpumask_var(prv->idlers); > xfree(prv); > @@ -1995,13 +1996,11 @@ static void csched_tick_resume(const struct scheduler > *ops, unsigned int cpu) > - now % MICROSECS(prv->tick_period_us) ); > } > > -static struct csched_private _csched_priv; > - > static const struct scheduler sched_credit_def = { > .name = "SMP Credit Scheduler", > .opt_name = "credit", > .sched_id = XEN_SCHEDULER_CREDIT, > - .sched_data = &_csched_priv, > + .sched_data = NULL, > > .init_domain = csched_dom_init, > .destroy_domain = csched_dom_destroy, > diff --git a/xen/common/sched_credit2.c b/xen/common/sched_credit2.c > index 78220a7..68a8f1c 100644 > --- a/xen/common/sched_credit2.c > +++ b/xen/common/sched_credit2.c > @@ -2183,22 +2183,20 @@ csched2_init(struct scheduler *ops) > } > > static void > -csched2_deinit(const struct scheduler *ops) > +csched2_deinit(struct scheduler *ops) > { > struct csched2_private *prv; > > prv = CSCHED2_PRIV(ops); > + ops->sched_data = NULL; > xfree(prv); > } > > - > -static struct csched2_private _csched2_priv; > - > static const struct scheduler sched_credit2_def = { > .name = "SMP Credit Scheduler rev2", > .opt_name = "credit2", > .sched_id = XEN_SCHEDULER_CREDIT2, > - .sched_data = &_csched2_priv, > + .sched_data = NULL, > > .init_domain = csched2_dom_init, > .destroy_domain = csched2_dom_destroy, > diff --git a/xen/common/sched_rt.c b/xen/common/sched_rt.c > index 2e5430f..d82d69c 100644 > --- a/xen/common/sched_rt.c > +++ b/xen/common/sched_rt.c > @@ -462,7 +462,7 @@ rt_init(struct scheduler *ops) > } > > static void > -rt_deinit(const struct scheduler *ops) > +rt_deinit(struct scheduler *ops) > { > struct rt_private *prv = rt_priv(ops); > > @@ -473,6 +473,7 @@ rt_deinit(const struct scheduler *ops) > xfree(_cpumask_scratch); > _cpumask_scratch = NULL; > } > + ops->sched_data = NULL; > xfree(prv); > } > > @@ -1168,13 +1169,11 @@ rt_dom_cntl( > return rc; > } > > -static struct rt_private _rt_priv; > - > static const struct scheduler sched_rtds_def = { > .name = "SMP RTDS Scheduler", > .opt_name = "rtds", > .sched_id = XEN_SCHEDULER_RTDS, > - .sched_data = &_rt_priv, > + .sched_data = NULL, > > .dump_cpu_state = rt_dump_pcpu, > .dump_settings = rt_dump, > diff --git a/xen/include/xen/sched-if.h b/xen/include/xen/sched-if.h > index 66dc9c8..825f1ad 100644 > --- a/xen/include/xen/sched-if.h > +++ b/xen/include/xen/sched-if.h > @@ -126,7 +126,7 @@ struct scheduler { > int (*global_init) (void); > > int (*init) (struct scheduler *); > - void (*deinit) (const struct scheduler *); > + void (*deinit) (struct scheduler *); > > void (*free_vdata) (const struct scheduler *, void *); > void * (*alloc_vdata) (const struct scheduler *, struct vcpu *, > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |