1
0
Fork 0
mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git synced 2025-01-22 16:06:04 -05:00

s390/topology: Improve topology detection

Add early polarization detection instead of assuming horizontal
polarization.

Signed-off-by: Mete Durlu <meted@linux.ibm.com>
Reviewed-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
This commit is contained in:
Mete Durlu 2025-01-08 11:31:27 +01:00 committed by Alexander Gordeev
parent 03b3e82a78
commit 9988df07db

View file

@ -556,6 +556,16 @@ static void __init alloc_masks(struct sysinfo_15_1_x *info,
}
}
static int __init detect_polarization(union topology_entry *tle)
{
struct topology_core *tl_core;
while (tle->nl)
tle = next_tle(tle);
tl_core = (struct topology_core *)tle;
return tl_core->pp != POLARIZATION_HRZ;
}
void __init topology_init_early(void)
{
struct sysinfo_15_1_x *info;
@ -575,6 +585,7 @@ void __init topology_init_early(void)
__func__, PAGE_SIZE, PAGE_SIZE);
info = tl_info;
store_topology(info);
cpu_management = detect_polarization(info->tle);
pr_info("The CPU configuration topology of the machine is: %d %d %d %d %d %d / %d\n",
info->mag[0], info->mag[1], info->mag[2], info->mag[3],
info->mag[4], info->mag[5], info->mnest);