All of lore.kernel.org
 help / color / mirror / Atom feed
* 143e1e28 sched: Rework sched_domain topology definition
@ 2014-07-20  6:43 Mike Galbraith
  2014-07-20  6:52 ` Peter Zijlstra
  0 siblings, 1 reply; 4+ messages in thread
From: Mike Galbraith @ 2014-07-20  6:43 UTC (permalink / raw)
  To: Vincent Guittot; +Cc: Peter Zijlstra, LKML

Hi,

+/*
+ * Topology list, bottom-up.
+ */
+static struct sched_domain_topology_level default_topology[] = {
+#ifdef CONFIG_SCHED_SMT
+	{ cpu_smt_mask, cpu_smt_flags, SD_INIT_NAME(SMT) },
+#endif
+#ifdef CONFIG_SCHED_MC
+	{ cpu_coregroup_mask, cpu_core_flags, SD_INIT_NAME(MC) },
+#endif
+#ifdef CONFIG_SCHED_BOOK
+	{ cpu_book_mask, SD_INIT_NAME(BOOK) },
+#endif
+	{ cpu_cpu_mask, SD_INIT_NAME(DIE) },
+	{ NULL, },
+};

Why did this commit rename the CPU domain to DIE?

-Mike


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: 143e1e28 sched: Rework sched_domain topology definition
  2014-07-20  6:43 143e1e28 sched: Rework sched_domain topology definition Mike Galbraith
@ 2014-07-20  6:52 ` Peter Zijlstra
  2014-07-20  7:05   ` Mike Galbraith
  0 siblings, 1 reply; 4+ messages in thread
From: Peter Zijlstra @ 2014-07-20  6:52 UTC (permalink / raw)
  To: Mike Galbraith; +Cc: Vincent Guittot, LKML

[-- Attachment #1: Type: text/plain, Size: 1074 bytes --]

On Sun, Jul 20, 2014 at 08:43:36AM +0200, Mike Galbraith wrote:
> Hi,
> 
> +/*
> + * Topology list, bottom-up.
> + */
> +static struct sched_domain_topology_level default_topology[] = {
> +#ifdef CONFIG_SCHED_SMT
> +	{ cpu_smt_mask, cpu_smt_flags, SD_INIT_NAME(SMT) },
> +#endif
> +#ifdef CONFIG_SCHED_MC
> +	{ cpu_coregroup_mask, cpu_core_flags, SD_INIT_NAME(MC) },
> +#endif
> +#ifdef CONFIG_SCHED_BOOK
> +	{ cpu_book_mask, SD_INIT_NAME(BOOK) },
> +#endif
> +	{ cpu_cpu_mask, SD_INIT_NAME(DIE) },
> +	{ NULL, },
> +};
> 
> Why did this commit rename the CPU domain to DIE?

Because they're both wrong, but we found that DIE was less wrong than
CPU.

Seeing how CPU typically means 1 logical, well, CPU, in the scheduler,
and not the package you stick on your board.

We chose DIE over PACKAGE due to 1) its shorter name and 2) things like
interlagos which have multiple DIEs in one PACKAGE etc..

Also, the only person who would ever care is the one who (with
SCHED_DEBUG) enabled looks at the topology setup, which is maybe all of
us 5.

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: 143e1e28 sched: Rework sched_domain topology definition
  2014-07-20  6:52 ` Peter Zijlstra
@ 2014-07-20  7:05   ` Mike Galbraith
  2014-07-20  7:19     ` Mike Galbraith
  0 siblings, 1 reply; 4+ messages in thread
From: Mike Galbraith @ 2014-07-20  7:05 UTC (permalink / raw)
  To: Peter Zijlstra; +Cc: Vincent Guittot, LKML

On Sun, 2014-07-20 at 08:52 +0200, Peter Zijlstra wrote: 
> On Sun, Jul 20, 2014 at 08:43:36AM +0200, Mike Galbraith wrote:
> > Hi,
> > 
> > +/*
> > + * Topology list, bottom-up.
> > + */
> > +static struct sched_domain_topology_level default_topology[] = {
> > +#ifdef CONFIG_SCHED_SMT
> > +	{ cpu_smt_mask, cpu_smt_flags, SD_INIT_NAME(SMT) },
> > +#endif
> > +#ifdef CONFIG_SCHED_MC
> > +	{ cpu_coregroup_mask, cpu_core_flags, SD_INIT_NAME(MC) },
> > +#endif
> > +#ifdef CONFIG_SCHED_BOOK
> > +	{ cpu_book_mask, SD_INIT_NAME(BOOK) },
> > +#endif
> > +	{ cpu_cpu_mask, SD_INIT_NAME(DIE) },
> > +	{ NULL, },
> > +};
> > 
> > Why did this commit rename the CPU domain to DIE?
> 
> Because they're both wrong, but we found that DIE was less wrong than
> CPU.

Ok, doesn't matter anyway, just looks peculiar.

> Seeing how CPU typically means 1 logical, well, CPU, in the scheduler,
> and not the package you stick on your board.
> 
> We chose DIE over PACKAGE due to 1) its shorter name and 2) things like
> interlagos which have multiple DIEs in one PACKAGE etc..

It's actually a good name for some NUMA topologies.  You don't ever want
to see a CPU domain, that sucks cycles, so calling it DIE is fine :)

> Also, the only person who would ever care is the one who (with
> SCHED_DEBUG) enabled looks at the topology setup, which is maybe all of
> us 5.

Maybe a few more, but yeah, not many would care what you called it.

-Mike


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: 143e1e28 sched: Rework sched_domain topology definition
  2014-07-20  7:05   ` Mike Galbraith
@ 2014-07-20  7:19     ` Mike Galbraith
  0 siblings, 0 replies; 4+ messages in thread
From: Mike Galbraith @ 2014-07-20  7:19 UTC (permalink / raw)
  To: Peter Zijlstra; +Cc: Vincent Guittot, LKML

On Sun, 2014-07-20 at 09:05 +0200, Mike Galbraith wrote: 
> On Sun, 2014-07-20 at 08:52 +0200, Peter Zijlstra wrote: 
> > On Sun, Jul 20, 2014 at 08:43:36AM +0200, Mike Galbraith wrote:
> > > Hi,
> > > 
> > > +/*
> > > + * Topology list, bottom-up.
> > > + */
> > > +static struct sched_domain_topology_level default_topology[] = {
> > > +#ifdef CONFIG_SCHED_SMT
> > > +	{ cpu_smt_mask, cpu_smt_flags, SD_INIT_NAME(SMT) },
> > > +#endif
> > > +#ifdef CONFIG_SCHED_MC
> > > +	{ cpu_coregroup_mask, cpu_core_flags, SD_INIT_NAME(MC) },
> > > +#endif
> > > +#ifdef CONFIG_SCHED_BOOK
> > > +	{ cpu_book_mask, SD_INIT_NAME(BOOK) },
> > > +#endif
> > > +	{ cpu_cpu_mask, SD_INIT_NAME(DIE) },
> > > +	{ NULL, },
> > > +};
> > > 
> > > Why did this commit rename the CPU domain to DIE?
> > 
> > Because they're both wrong, but we found that DIE was less wrong than
> > CPU.
> 
> Ok, doesn't matter anyway, just looks peculiar.
> 
> > Seeing how CPU typically means 1 logical, well, CPU, in the scheduler,
> > and not the package you stick on your board.
> > 
> > We chose DIE over PACKAGE due to 1) its shorter name and 2) things like
> > interlagos which have multiple DIEs in one PACKAGE etc..
> 
> It's actually a good name for some NUMA topologies.  You don't ever want
> to see a CPU domain, that sucks cycles, so calling it DIE is fine :)

Like this 8 socket box.  CPU domain with weight 64 stings.

vogelweide:~/:[0]# tune-sched-domains
usage: tune-sched-domains <val>
{cpu0/domain0:MC} SD flag: 559
+   1: SD_LOAD_BALANCE:          Do load balancing on this domain
+   2: SD_BALANCE_NEWIDLE:       Balance when about to become idle
+   4: SD_BALANCE_EXEC:          Balance on exec
+   8: SD_BALANCE_FORK:          Balance on fork, clone
-  16: SD_BALANCE_WAKE:          Wake to idle CPU on task wakeup
+  32: SD_WAKE_AFFINE:           Wake task to waking CPU
-  64: SD_PREFER_LOCAL:          Prefer to keep tasks local to this domain
- 128: SD_SHARE_CPUPOWER:        Domain members share cpu power
- 256: SD_POWERSAVINGS_BALANCE:  Balance for power savings
+ 512: SD_SHARE_PKG_RESOURCES:   Domain members share cpu pkg resources
-1024: SD_SERIALIZE:             Only a single load balancing instance
-2048: SD_ASYM_PACKING:          Place busy groups earlier in the domain
-4096: SD_PREFER_SIBLING:        Prefer to place tasks in a sibling domain
-8192: SD_PREFER_UTILIZATION:    Prefer utilization over SMP nice
{cpu0/domain1:CPU} SD flag: 4143
+   1: SD_LOAD_BALANCE:          Do load balancing on this domain
+   2: SD_BALANCE_NEWIDLE:       Balance when about to become idle
+   4: SD_BALANCE_EXEC:          Balance on exec
+   8: SD_BALANCE_FORK:          Balance on fork, clone
-  16: SD_BALANCE_WAKE:          Wake to idle CPU on task wakeup
+  32: SD_WAKE_AFFINE:           Wake task to waking CPU
-  64: SD_PREFER_LOCAL:          Prefer to keep tasks local to this domain
- 128: SD_SHARE_CPUPOWER:        Domain members share cpu power
- 256: SD_POWERSAVINGS_BALANCE:  Balance for power savings
- 512: SD_SHARE_PKG_RESOURCES:   Domain members share cpu pkg resources
-1024: SD_SERIALIZE:             Only a single load balancing instance
-2048: SD_ASYM_PACKING:          Place busy groups earlier in the domain
+4096: SD_PREFER_SIBLING:        Prefer to place tasks in a sibling domain
-8192: SD_PREFER_UTILIZATION:    Prefer utilization over SMP nice



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2014-07-20  7:19 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-07-20  6:43 143e1e28 sched: Rework sched_domain topology definition Mike Galbraith
2014-07-20  6:52 ` Peter Zijlstra
2014-07-20  7:05   ` Mike Galbraith
2014-07-20  7:19     ` Mike Galbraith

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.