Re: [PATCH v2] x86,sched: allow topologies where NUMA nodes share an LLC

From: Peter Zijlstra
Date: Thu Mar 22 2018 - 19:20:49 EST


On Thu, Mar 22, 2018 at 01:49:22PM -0700, Alison Schofield wrote:
> + /*
> + * Some Intel CPUs enumerate an LLC that is shared by
> + * multiple NUMA nodes. The LLC on these systems is
> + * shared for off-package data access but private to the
> + * NUMA node (half of the package) for on-package access.
> + *
> + * CPUID can only enumerate the cache as being shared *or*
> + * unshared, but not this particular configuration. The
> + * CPU in this case enumerates the cache to be shared
> + * across the entire package (spanning both NUMA nodes).
> + */
> + if (!topology_same_node(c, o) &&
> + (c->x86_vendor == X86_VENDOR_INTEL &&
> + c->x86_model == INTEL_FAM6_SKYLAKE_X)) {
> + /* Use NUMA instead of coregroups for scheduling: */
> + x86_has_numa_in_package = true;
> +
> + /*
> + * Return value doesn't actually matter because we
> + * are throwing away coregroups for scheduling anyway.
> + * Return false to bypass topology broken bug messages
> + * and fixups in sched_domain().
> + */
> + return false;

IIRC that return value _does_ matter because the resulting mask still
ends up user visible in sysfs.

IIRC I went over with this dhansen a week or so ago, but I cannot now
recall what we settled on as being the right return value and for what
reason.