From: Peter Zijlstra <peterz@infradead.org>
To: Dave Hansen <dave@sr71.net>
Cc: linux-kernel@vger.kernel.org, mingo@kernel.org,
hpa@linux.intel.com, ak@linux.intel.com,
Alex Chiang <achiang@hp.com>, Borislav Petkov <bp@suse.de>,
Rusty Russell <rusty@rustcorp.com.au>,
Mike Travis <travis@sgi.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Heiko Carstens <heiko.carstens@de.ibm.com>
Subject: Re: [PATCH] x86: Consider multiple nodes in a single socket to be "sane"
Date: Tue, 16 Sep 2014 19:58:51 +0200 [thread overview]
Message-ID: <20140916175851.GC2848@worktop.localdomain> (raw)
In-Reply-To: <5417F228.9060301@sr71.net>
On Tue, Sep 16, 2014 at 01:17:44AM -0700, Dave Hansen wrote:
> On 09/15/2014 08:29 PM, Peter Zijlstra wrote:
> > What is that cluster-on-die thing? I've heard it before but never could
> > find anything on it.
>
> You split each socket in to halves. Each half gets slightly lower
> latency to the memory on its half's memory controller. But, at an
> increased latency cost to go to every other bit of memory on the system.
> I've got some data squirreled away on exactly what the latencies are,
> but it really is a substantial increase for memory, especially for the
> memory that is still on package but is now "off-node".
So it really splits the local memory DIMMs in two as well, ok.
> I went back and re-read the text around there. I don't see any mention
> of nodes or NUMA. It's just talking about the topology within the CPU
> from what I can tell.
>
> Good thing it's just in "Documentation/ABI/testing/" I guess.
>
> Either way, are you saying that a core's "physical_package_id" should
> depend on what BIOS options get set, and that different cores in the
> same physical package should have different "physical_package_id"s?
Yah, I more or less changed my mind halfway through the reply. I suppose
it makes sense to have this mask as defined. It just doesn't match which
how the mask is used in the scheduler (which is the main in-kernel user
or the thing).
> > The idea is that core_siblings (or rather cpu_core_mask) is a mask of
> > all cores on a node.
>
> Why would we need that in the CPU topology information if we can get at
> it easily here?
>
> /sys/devices/system/cpu/cpu0/node0/cpulist
Good point, the 'problem' is that we currently have the static order of
the masks, if we were to flip the MC and NUMA masks we need a condition
to do that on and make sure everything is aware of that.
CoD not being detectable sucks arse for sure :/
Also, I think we want to rename the mask to not be MC but PKG or so.
> s390 has this concept of a "book" although it's not obvious at all where
> this fits in to the hierarchy to me. The help text and comments are
> pretty funny:
>
> Book scheduler support improves the CPU scheduler's decision
> making when dealing with machines that have several books.
>
> Wow, really? Book scheduling helps with books? I would have never
> guessed. Wish I knew what a book was. :) Google helped a bit:
>
> http://sysmagazine.com/posts/150430/
>
> but it's still not clear. I think a book is below a node?
>
> SMT <= LLC <= MC <= BOOK <= NODE
>
> Or is a book a collection of nodes?
>
> SMT <= LLC <= MC <= NODE <= BOOK
s390 is 'special' you should know that :-) Since s390 is a virtualized
platform they cannot do NUMA since the vCPU can move around freely. So
what they do to 'hide' stuff is big L4 caches, which they call BOOKS.
> > The scheduler assumes: SMT <= LLC <= MC <= NODE and if setting the MC
> > mask to cover multiple nodes works, its by accident.
>
> This makes a lot of sense to enforce inside the scheduler. But, do we
> really need to expose all the naming all the way out to userspace?
Dunno.. lets start out by not doing that (the safe option).
next prev parent reply other threads:[~2014-09-16 17:59 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-15 22:26 [PATCH] x86: Consider multiple nodes in a single socket to be "sane" Dave Hansen
2014-09-16 3:29 ` Peter Zijlstra
2014-09-16 6:38 ` Chuck Ebbert
2014-09-16 6:44 ` Ingo Molnar
2014-09-16 7:03 ` Chuck Ebbert
2014-09-16 7:05 ` Ingo Molnar
2014-09-16 16:01 ` Peter Zijlstra
2014-09-16 16:46 ` Dave Hansen
2014-09-16 15:59 ` Peter Zijlstra
2014-09-16 16:36 ` Dave Hansen
2014-09-16 8:17 ` Dave Hansen
2014-09-16 10:07 ` Heiko Carstens
2014-09-16 17:58 ` Peter Zijlstra [this message]
2014-09-16 23:49 ` Dave Hansen
2014-09-17 22:57 ` Peter Zijlstra
2014-09-18 0:33 ` Dave Hansen
2014-09-17 12:55 ` Borislav Petkov
2014-09-18 7:32 ` Borislav Petkov
2014-09-16 16:59 ` Brice Goglin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140916175851.GC2848@worktop.localdomain \
--to=peterz@infradead.org \
--cc=achiang@hp.com \
--cc=ak@linux.intel.com \
--cc=bp@suse.de \
--cc=dave@sr71.net \
--cc=gregkh@linuxfoundation.org \
--cc=heiko.carstens@de.ibm.com \
--cc=hpa@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=rusty@rustcorp.com.au \
--cc=travis@sgi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.