|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v4 24/46] xen: switch from for_each_vcpu() to for_each_sched_unit()
On Fri, 2019-09-27 at 09:00 +0200, Juergen Gross wrote:
> Where appropriate switch from for_each_vcpu() to
> for_each_sched_unit()
> in order to prepare core scheduling.
>
> As it is beneficial once here and for sure in future add a
> unit_scheduler() helper and let vcpu_scheduler() use it.
>
> Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
>
Reviewed-by: Dario Faggioli <dfaggioli@xxxxxxxx>
One thing I spotted is that, here...
> --- a/xen/common/schedule.c
> +++ b/xen/common/schedule.c
> @@ -157,26 +157,32 @@ static inline struct scheduler
> *dom_scheduler(const struct domain *d)
> return &ops;
> }
>
> -static inline struct scheduler *vcpu_scheduler(const struct vcpu *v)
> +static inline struct scheduler *unit_scheduler(const struct
> sched_unit *unit)
> {
> - struct domain *d = v->domain;
> + struct domain *d = unit->domain;
>
> if ( likely(d->cpupool != NULL) )
> return d->cpupool->sched;
>
> /*
> - * If d->cpupool is NULL, this is a vCPU of the idle domain. And
> this
> + * If d->cpupool is NULL, this is a unit of the idle domain. And
> this
> * case is special because the idle domain does not really
> belong to
> * a cpupool and, hence, doesn't really have a scheduler). In
> fact, its
> - * vCPUs (may) run on pCPUs which are in different pools, with
> different
> + * units (may) run on pCPUs which are in different pools, with
> different
> * schedulers.
> *
> * What we want, in this case, is the scheduler of the pCPU
> where this
> - * particular idle vCPU is running. And, since v->processor
> never changes
> - * for idle vCPUs, it is safe to use it, with no locks, to
> figure that out.
> + * particular idle unit is running. And, since unit->res never
> changes
> + * for idle units, it is safe to use it, with no locks, to
> figure that out.
> */
> +
> ASSERT(is_idle_domain(d));
> - return per_cpu(scheduler, v->processor);
> + return per_cpu(scheduler, unit->res->master_cpu);
>
... I think we have an helper for `unit->res->master_cpu`
(sched_unit_master())?
But I don't think the patch/series is worth a respin for this. Maybe,
add it to the cleanup series?
Regards
--
Dario Faggioli, Ph.D
http://about.me/dario.faggioli
Virtualization Software Engineer
SUSE Labs, SUSE https://www.suse.com/
-------------------------------------------------------------------
<<This happens because _I_ choose it to happen!>> (Raistlin Majere)
Attachment:
signature.asc _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |