All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] x86,sched: Update the Intel SNC CPU list that allows shared LLCs
@ 2021-02-16 19:58 Alison Schofield
  2021-02-24 16:52 ` Dave Hansen
  0 siblings, 1 reply; 2+ messages in thread
From: Alison Schofield @ 2021-02-16 19:58 UTC (permalink / raw)
  To: Thomas Gleixner, Ingo Molnar, Borislav Petkov
  Cc: Alison Schofield, x86, linux-kernel, Dave Hansen, Tony Luck,
	Tim Chen, H. Peter Anvin, Peter Zijlstra, David Rientjes,
	Igor Mammedov, Prarit Bhargava, brice.goglin

Commit 1340ccfa9a9a ("x86,sched: Allow topologies where NUMA nodes
share an LLC") added a vendor and model specific check to never
call topology_sane() for systems where NUMA nodes share an LLC.

Intel's Ice Lake and Sapphire Rapids CPUs exhibit this same topology.
They enumerate an LLC that is shared by multiple NUMA nodes. The
LLC on these CPUs is shared for off-package data access but private
to the NUMA node for on-package access. Since its CPUID can only
enumerate the cache as shared or unshared, add these CPUs to the
list of allowable topologies (snc_cpu[]).

In SNC mode, Ice Lake and Sapphire Rapids servers will no longer emit
this warning:

sched: CPU #3's llc-sibling CPU #0 is not on the same node! [node: 1 != 0]. Ignoring dependency.

Acked-by: Dave Hansen <dave.hansen@linux.intel.com>
Signed-off-by: Alison Schofield <alison.schofield@intel.com>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Tim Chen <tim.c.chen@linux.intel.com>
Cc: "H. Peter Anvin" <hpa@linux.intel.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: David Rientjes <rientjes@google.com>
Cc: Igor Mammedov <imammedo@redhat.com>
Cc: Prarit Bhargava <prarit@redhat.com>
Cc: brice.goglin@gmail.com

---
Changes v1->v2:

- Implemented the minimal required change of adding the new models to
  the existing vendor and model specific check.

- Side effect of going minimalist: no longer labelled an X86_BUG (TonyL)

- Considered PeterZ suggestion of checking for COD CPUs, rather than
  SNC CPUs. That meant this snc_cpu list would go away, and so it never
  needs updating. That ups the stakes for this patch wrt LOC changed
  and testing needed. It actually drove me back to this simplest soln.

- Considered DaveH suggestion to remove the check altogether and recognize
  these topologies as sane. Not running with that further here. This patch
  is what is needed now. The broader discussion of sane topologies can
  carry on independent of this update.

- Updated commit message and log.

 arch/x86/kernel/smpboot.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
index 02813a7f3a7c..de8c598dc3b9 100644
--- a/arch/x86/kernel/smpboot.c
+++ b/arch/x86/kernel/smpboot.c
@@ -475,6 +475,8 @@ static bool match_smt(struct cpuinfo_x86 *c, struct cpuinfo_x86 *o)
 
 static const struct x86_cpu_id snc_cpu[] = {
 	X86_MATCH_INTEL_FAM6_MODEL(SKYLAKE_X, NULL),
+	X86_MATCH_INTEL_FAM6_MODEL(ICELAKE_X, NULL),
+	X86_MATCH_INTEL_FAM6_MODEL(SAPPHIRERAPIDS_X, NULL),
 	{}
 };
 
-- 
2.20.1


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

* Re: [PATCH v2] x86,sched: Update the Intel SNC CPU list that allows shared LLCs
  2021-02-16 19:58 [PATCH v2] x86,sched: Update the Intel SNC CPU list that allows shared LLCs Alison Schofield
@ 2021-02-24 16:52 ` Dave Hansen
  0 siblings, 0 replies; 2+ messages in thread
From: Dave Hansen @ 2021-02-24 16:52 UTC (permalink / raw)
  To: Alison Schofield, Thomas Gleixner, Ingo Molnar, Borislav Petkov
  Cc: x86, linux-kernel, Dave Hansen, Tony Luck, Tim Chen,
	H. Peter Anvin, Peter Zijlstra, David Rientjes, Igor Mammedov,
	Prarit Bhargava, brice.goglin

On 2/16/21 11:58 AM, Alison Schofield wrote:
>  arch/x86/kernel/smpboot.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
> index 02813a7f3a7c..de8c598dc3b9 100644
> --- a/arch/x86/kernel/smpboot.c
> +++ b/arch/x86/kernel/smpboot.c
> @@ -475,6 +475,8 @@ static bool match_smt(struct cpuinfo_x86 *c, struct cpuinfo_x86 *o)
>  
>  static const struct x86_cpu_id snc_cpu[] = {
>  	X86_MATCH_INTEL_FAM6_MODEL(SKYLAKE_X, NULL),
> +	X86_MATCH_INTEL_FAM6_MODEL(ICELAKE_X, NULL),
> +	X86_MATCH_INTEL_FAM6_MODEL(SAPPHIRERAPIDS_X, NULL),
>  	{}
>  };

Oh, and if this version gets picked up (or we go to a v3), it probably
also needs a:

Cc: stable@vger.kernel.org

This does cause scary warnings, and it would be nice to suppress those
on stable kernels too.

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

end of thread, other threads:[~2021-02-24 16:54 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-16 19:58 [PATCH v2] x86,sched: Update the Intel SNC CPU list that allows shared LLCs Alison Schofield
2021-02-24 16:52 ` Dave Hansen

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.