diff options
author | Andreas Herrmann <andreas.herrmann3@amd.com> | 2009-06-19 08:59:09 (GMT) |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-06-21 08:13:32 (GMT) |
commit | 99bd0c0fc4b04da54cb311953ef9489931c19c63 (patch) | |
tree | eaa2f95cd53b6f0c676c44885099e746e20e3265 /fs/open.c | |
parent | c277331d5fbaae5772ed19862feefa91f4e477d3 (diff) | |
download | linux-99bd0c0fc4b04da54cb311953ef9489931c19c63.tar.xz |
x86: Set cpu_llc_id on AMD CPUs
This counts when building sched domains in case NUMA information
is not available.
( See cpu_coregroup_mask() which uses llc_shared_map which in turn is
created based on cpu_llc_id. )
Currently Linux builds domains as follows:
(example from a dual socket quad-core system)
CPU0 attaching sched-domain:
domain 0: span 0-7 level CPU
groups: 0 1 2 3 4 5 6 7
...
CPU7 attaching sched-domain:
domain 0: span 0-7 level CPU
groups: 7 0 1 2 3 4 5 6
Ever since that is borked for multi-core AMD CPU systems.
This patch fixes that and now we get a proper:
CPU0 attaching sched-domain:
domain 0: span 0-3 level MC
groups: 0 1 2 3
domain 1: span 0-7 level CPU
groups: 0-3 4-7
...
CPU7 attaching sched-domain:
domain 0: span 4-7 level MC
groups: 7 4 5 6
domain 1: span 0-7 level CPU
groups: 4-7 0-3
This allows scheduler to assign tasks to cores on different sockets
(i.e. that don't share last level cache) for performance reasons.
Signed-off-by: Andreas Herrmann <andreas.herrmann3@amd.com>
LKML-Reference: <20090619085909.GJ5218@alberich.amd.com>
Cc: <stable@kernel.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'fs/open.c')
0 files changed, 0 insertions, 0 deletions