[tip: x86/urgent] x86/cpu/amd: Set __max_die_per_package on AMD

From: tip-bot2 for Yazen Ghannam
Date: Tue Jan 12 2021 - 06:30:55 EST


The following commit has been merged into the x86/urgent branch of tip:

Commit-ID: 76e2fc63ca40977af893b724b00cc2f8e9ce47a4
Gitweb: https://git.kernel.org/tip/76e2fc63ca40977af893b724b00cc2f8e9ce47a4
Author: Yazen Ghannam <Yazen.Ghannam@xxxxxxx>
AuthorDate: Mon, 11 Jan 2021 11:04:29 +01:00
Committer: Borislav Petkov <bp@xxxxxxx>
CommitterDate: Tue, 12 Jan 2021 12:21:01 +01:00

x86/cpu/amd: Set __max_die_per_package on AMD

Set the maximum DIE per package variable on AMD using the
NodesPerProcessor topology value. This will be used by RAPL, among
others, to determine the maximum number of DIEs on the system in order
to do per-DIE manipulations.

[ bp: Productize into a proper patch. ]

Fixes: 028c221ed190 ("x86/CPU/AMD: Save AMD NodeId as cpu_die_id")
Reported-by: Johnathan Smithinovic <johnathan.smithinovic@xxxxxx>
Reported-by: Rafael Kitover <rkitover@xxxxxxxxx>
Signed-off-by: Yazen Ghannam <Yazen.Ghannam@xxxxxxx>
Signed-off-by: Borislav Petkov <bp@xxxxxxx>
Tested-by: Johnathan Smithinovic <johnathan.smithinovic@xxxxxx>
Tested-by: Rafael Kitover <rkitover@xxxxxxxxx>
Link: https://bugzilla.kernel.org/show_bug.cgi?id=210939
Link: https://lkml.kernel.org/r/20210106112106.GE5729@xxxxxxx
Link: https://lkml.kernel.org/r/20210111101455.1194-1-bp@xxxxxxxxx
---
arch/x86/kernel/cpu/amd.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
index f8ca66f..347a956 100644
--- a/arch/x86/kernel/cpu/amd.c
+++ b/arch/x86/kernel/cpu/amd.c
@@ -542,12 +542,12 @@ static void bsp_init_amd(struct cpuinfo_x86 *c)
u32 ecx;

ecx = cpuid_ecx(0x8000001e);
- nodes_per_socket = ((ecx >> 8) & 7) + 1;
+ __max_die_per_package = nodes_per_socket = ((ecx >> 8) & 7) + 1;
} else if (boot_cpu_has(X86_FEATURE_NODEID_MSR)) {
u64 value;

rdmsrl(MSR_FAM10H_NODE_ID, value);
- nodes_per_socket = ((value >> 3) & 7) + 1;
+ __max_die_per_package = nodes_per_socket = ((value >> 3) & 7) + 1;
}

if (!boot_cpu_has(X86_FEATURE_AMD_SSBD) &&