|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 3/4] xen: sched: improve checking soft-affinity
On 09/15/2017 06:35 PM, Dario Faggioli wrote:
> Whether or not a vCPU has a soft-affinity which is
> effective, i.e., with the power of actually affecting
> the scheduling of the vCPU itself, happens in an
> helper function, called has_soft_affinity().
>
> Such function takes a custom cpumask as its third
> parameter, for better flexibility, but that mask is
> different from the vCPU's hard-affinity only in one
> case. Getting rid of that parameter, not only simplify
> the function, but enables for optimizing the soft
> affinity check (which will happen, in a subsequent
> commit).
>
> This commit, therefore, does that. It's mostly
> mechanical, with the only exception _csched_cpu_pick()
> (in Credit1 code).
>
> Signed-off-by: Dario Faggioli <dario.faggioli@xxxxxxxxxx>
> ---
> Cc: George Dunlap <george.dunlap@xxxxxxxxxx>
> Cc: Anshul Makkar <anshulmakkar@xxxxxxxxx>
> ---
> xen/common/sched_credit.c | 79
> +++++++++++++++++++++-----------------------
> xen/common/sched_credit2.c | 10 ++----
> xen/common/sched_null.c | 8 ++--
> xen/include/xen/sched-if.h | 8 ++--
> 4 files changed, 48 insertions(+), 57 deletions(-)
>
> diff --git a/xen/common/sched_credit.c b/xen/common/sched_credit.c
> index 3efbfc8..35d0c98 100644
> --- a/xen/common/sched_credit.c
> +++ b/xen/common/sched_credit.c
> @@ -410,8 +410,7 @@ static inline void __runq_tickle(struct csched_vcpu *new)
> int new_idlers_empty;
>
> if ( balance_step == BALANCE_SOFT_AFFINITY
> - && !has_soft_affinity(new->vcpu,
> - new->vcpu->cpu_hard_affinity) )
> + && !has_soft_affinity(new->vcpu) )
> continue;
>
> /* Are there idlers suitable for new (for this balance step)? */
> @@ -743,50 +742,42 @@ __csched_vcpu_is_migrateable(struct vcpu *vc, int
> dest_cpu, cpumask_t *mask)
> static int
> _csched_cpu_pick(const struct scheduler *ops, struct vcpu *vc, bool_t commit)
> {
> - cpumask_t cpus;
Is there a reason you couldn't use cpumask_t *cpus=cpumask_scratch_cpu()?
Other than that, looks good.
-George
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |