[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v5 20/19] docs: add "sched-gran" boot parameter documentation

On 30.09.19 12:25, Jan Beulich wrote:
On 30.09.2019 12:09, Juergen Gross wrote:
Add documentation for the new "sched-gran" hypervisor boot parameter.

Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
  docs/misc/xen-command-line.pandoc | 21 +++++++++++++++++++++
  1 file changed, 21 insertions(+)

diff --git a/docs/misc/xen-command-line.pandoc 
index fc64429064..c855246050 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -1782,6 +1782,27 @@ Set the timeslice of the credit1 scheduler, in 
milliseconds.  The
  default is 30ms.  Reasonable values may include 10, 5, or even 1 for
  very latency-sensitive workloads.
+### sched-gran (x86)
+> `= cpu | core | socket`
+> Default: `sched-gran=cpu`
+Set the scheduling granularity. In case the granularity is larger than 1 (e.g.
+`core`on a SMT-enabled system, or `socket`) multiple vcpus are assigned
+statically to a "scheduling unit" which will then be subject to scheduling.
+This assignment of vcpus to scheduling units is fixed.
+`cpu`: Vcpus will be scheduled individually on single cpus.
+`core`: As many vcpus as there are hyperthreads on a physical core are
+scheduled together on a physical core.
+`socket`: As many vcpus as there are hyperthreads on a physical sockets are
+scheduled together on a physical socket.

I'd prefer if this didn't end up Intel-centric; ideally it also wouldn't be
x86-specific. AMD has introduced hyperthreading in Fam17 only; Fam15 used
"compute units", grouping together "cores". Internally the Intel side
"core vs hyperthread" is represented in the same variables (cpu_sibling_mask
in particular) as the AMD side "compute unit vs core".

Yes, it is a mess.

Therefore it may be better to talk here about e.g. "smallest topological
sub-unit" and only say "e.g. a hyperthread to make a connection to common
x86 / Intel terminology". Of course the AMD side alternative use of the
variables also renders the actual command line option "sched-gran=core"
not overly fortunate. Perhaps we'd want to also use more abstract terms
here, e.g. topological "levels"?

I think regarding usage of "hyperthreads" I'll go with:

+`cpu`: Vcpus will be scheduled individually on single cpus (e.g. a
+ hyperthread using x86/Intel terminology)
+ `core`: As many vcpus as there are cpus on a physical core are
+ scheduled together on a physical core.

I think using "core" is fine. We have it in multiple places in the
hypervisor which are _not_ specific to Intel. And "core-scheduling" is
a well-known buzzword already.

+Note: a value other than `cpu` will result in rejecting a runtime modification
+of the "smt" setting.

Perhaps add "attempt" here?



Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.