Re: [RFC][PATCH 2/6] x86: introduce cpumask specifically for the package

From: Peter Zijlstra
Date: Thu Sep 18 2014 - 10:58:11 EST


On Wed, Sep 17, 2014 at 03:33:14PM -0700, Dave Hansen wrote:
>
> From: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
>
> As noted by multiple reports:
>
> https://lkml.org/lkml/2014/9/15/1240
> https://lkml.org/lkml/2014/7/28/442
>
> the sched domains code has some assumptions that break on newer
> AMD and Intel CPUs. Namely, the code assumes that NUMA node
> boundaries always lie outside of a CPU package. That assumption
> is no longer true with Intel's Cluster-on-Die found in Haswell
> CPUs (with a special BIOS config knob) and AMD's DCM feature.
>
> Essentially, the 'cpu_core_map' is no longer suitable for
> enumerating all the CPUs in a physical package.
>
> This patch introduces a new map which is specifically built by
> consulting the the physical package ids instead of inferring the
> information from NUMA nodes.
>
> This still leaves us with a broken 'core_siblings_list' in sysfs,
> but a later patch will fix that up too.

If we do dynamic topology layout we don't need a second mask I think.
The machines that have multiple packages per node will simply present a
different sched_domain_topology than the machines that have multiple
nodes per package.

Specifically, in the former we include the package_mask as DIE level, in
the other case we leave it out entirely and rely on the SLIT table to
build the right domain topology.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/