On 03.10.2022 18:21, Marek Marczykowski-Górecki wrote:
> Documentation for credit2_runqueue=all says it should create one queue
> for all pCPUs on the host. But since introduction
> sched_credit2_max_cpus_runqueue, it actually created separate runqueue
> per socket, even if the CPUs count is below
> sched_credit2_max_cpus_runqueue.
> 
> Adjust the condition to skip syblink check in case of
> credit2_runqueue=all.
> 
> Fixes: 8e2aa76dc167 ("xen: credit2: limit the max number of CPUs in a 
> runqueue")
> Signed-off-by: Marek Marczykowski-Górecki <marma...@invisiblethingslab.com>
> Reviewed-by: Juergen Gross <jgr...@suse.com>

I've now committed this without maintainer ack.

> Changes in v2:
>  - fix indentation

I didn't go check v1, but ...

> --- a/xen/common/sched/credit2.c
> +++ b/xen/common/sched/credit2.c
> @@ -996,9 +996,14 @@ cpu_add_to_runqueue(const struct scheduler *ops, 
> unsigned int cpu)
>               *
>               * Otherwise, let's try to make sure that siblings stay in the
>               * same runqueue, pretty much under any cinrcumnstances.
> +             *
> +             * Furthermore, try to respect credit2_runqueue=all, as long as
> +             * max_cpus_runq isn't violated.
>               */
> -            if ( rqd->refcnt < max_cpus_runq && (ops->cpupool->gran != 
> SCHED_GRAN_cpu ||
> -                  cpu_runqueue_siblings_match(rqd, cpu, max_cpus_runq)) )
> +            if ( rqd->refcnt < max_cpus_runq &&
> +                    (ops->cpupool->gran != SCHED_GRAN_cpu ||
> +                     cpu_runqueue_siblings_match(rqd, cpu, max_cpus_runq) ||
> +                     opt_runqueue == OPT_RUNQUEUE_ALL) )

... this still looked like too deep indentation to me. I've taken the
liberty to adjust this while committing.

Jan

Reply via email to