]> git.baikalelectronics.ru Git - kernel.git/commit
x86, cpu: Fix cache topology for early P4-SMT
authorPeter Zijlstra <peterz@infradead.org>
Tue, 22 Jul 2014 13:35:14 +0000 (15:35 +0200)
committerH. Peter Anvin <hpa@zytor.com>
Wed, 23 Jul 2014 15:16:17 +0000 (08:16 -0700)
commit79a51530eb10eccd4b871bae9dd0b4e5a805419e
tree4b5b580463c2358ca80a25685dc5c88f365c1047
parent1fcbb079ee8943704555eeac7870b57b5b6de0c8
x86, cpu: Fix cache topology for early P4-SMT

P4 systems with cpuid level < 4 can have SMT, but the cache topology
description available (cpuid2) does not include SMP information.

Now we know that SMT shares all cache levels, and therefore we can
mark all available cache levels as shared.

We do this by setting cpu_llc_id to ->phys_proc_id, since that's
the same for each SMT thread. We can do this unconditional since if
there's no SMT its still true, the one CPU shares cache with only
itself.

This fixes a problem where such CPUs report an incorrect LLC CPU mask.

This in turn fixes a crash in the scheduler where the topology was
build wrong, it assumes the LLC mask to include at least the SMT CPUs.

Cc: Josh Boyer <jwboyer@redhat.com>
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com>
Tested-by: Bruno Wolff III <bruno@wolff.to>
Signed-off-by: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/20140722133514.GM12054@laptop.lan
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
arch/x86/kernel/cpu/intel.c
arch/x86/kernel/cpu/intel_cacheinfo.c