[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 13:02, Jan Beulich wrote:
On 30.09.2019 12:51, Jürgen Groß wrote:
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 
b/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.

Well, what we have in hypervisor sources is one thing - we can
settle on any convention we want there. It's the user (admin)
interface (i.e. the command line option name and description
here) which we may want to be a little more careful with. But
yes, I can see how we use "core" already in similar contexts
in the command line option doc, first and foremost on
"credit2_runqueue". (In retrospect I think this might have been
a mistake though.)

So what do you suggest?

<Irony on>
"topology-level-just-above-the-smallest-topological-sub-unit"?
<Irony-off>

I can't think of any sensible terminology not resulting in something
which is much harder to understand than "core".

And we are using "core" or "cores" in hypervisor messages, too.

And "core-scheduling" is a well-known buzzword already.

Let me not get started on buzzwords ;-)

:-)


Juergen


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

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