mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
credit2: respect credit2_runqueue=all when arranging runqueues
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: 8e2aa76dc1 ("xen: credit2: limit the max number of CPUs in a runqueue")
Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
This commit is contained in:
1 parent
63305e5392
commit
1f5747ee92
2 files changed
+12
-2
No files matched your search
@@ -726,6 +726,11 @@ Available alternatives, with their meaning, are:
|
||||
* `all`: just one runqueue shared by all the logical pCPUs of
|
||||
the host
|
||||
|
||||
Regardless of the above choice, Xen attempts to respect
|
||||
`sched_credit2_max_cpus_runqueue` limit, which may mean more than one runqueue
|
||||
for the `all` value. If that isn't intended, raise
|
||||
the `sched_credit2_max_cpus_runqueue` value.
|
||||
|
||||
### dbgp
|
||||
> `= ehci[ <integer> | @pci<bus>:<slot>.<func> ]`
|
||||
> `= xhci[ <integer> | @pci<bus>:<slot>.<func> ][,share=<bool>|hwdom]`
|
||||
|
||||
@@ -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 runqueue is ok, but as we said, we also want an even
|
||||
|
||||