Re: [RFC PATCH] topology: Represent clusters of CPUs within a die.

From: Morten Rasmussen
Date: Mon Oct 19 2020 - 09:13:37 EST


On Mon, Oct 19, 2020 at 02:50:53PM +0200, Peter Zijlstra wrote:
> On Mon, Oct 19, 2020 at 01:32:26PM +0100, Jonathan Cameron wrote:
> > On Mon, 19 Oct 2020 12:35:22 +0200
> > Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
>
> > > I'm confused by all of this. The core level is exactly what you seem to
> > > want.
> >
> > It's the level above the core, whether in an multi-threaded core
> > or a single threaded core. This may correspond to the level
> > at which caches are shared (typically L3). Cores are already well
> > represented via thread_siblings and similar. Extra confusion is that
> > the current core_siblings (deprecated) sysfs interface, actually reflects
> > the package level and ignores anything in between core and
> > package (such as die on x86)
>
> That seems wrong. core-mask should be whatever cores share L3. So on a
> Intel Core2-Quad (just to pick an example) you should have 4 CPU in a
> package, but only 2 CPUs for the core-mask.
>
> It just so happens that L3 and package were the same for a long while in
> x86 land, although recent chips started breaking that trend.
>
> And I know nothing about the core-mask being depricated; it's what the
> scheduler uses. It's not going anywhere.

Don't get confused over the user-space topology and the scheduler
topology, they are _not_ the same despite having similar names for some
things :-)

> So if your 'cluster' is a group of single cores (possibly with SMT) that
> do not share cache but have a faster cache connection and you want them
> to behave as-if they were a multi-core group that did share cache, then
> core-mask it is.

In the scheduler, yes. There is no core-mask exposed to user-space.

We have to be clear about whether we discuss scheduler or user-space
topology :-)