Commit 450605c2 authored by Praveen Kumar's avatar Praveen Kumar Committed by Wei Liu

x86/hyperv: fix logical processor creation

Microsoft Hypervisor expects the logical processor index to be the same
as CPU's index during logical processor creation. Using cpu_physical_id
confuses hypervisor's scheduler. That causes the root partition not boot
when core scheduler is used.

This patch removes the call to cpu_physical_id and uses the CPU index
directly for bringing up logical processor. This scheme works for both
classic scheduler and core scheduler.

Fixes: 333abaf5 (x86/hyperv: implement and use hv_smp_prepare_cpus)
Signed-off-by: default avatarPraveen Kumar <kumarpraveen@linux.microsoft.com>
Link: https://lore.kernel.org/r/20210531074046.113452-1-kumarpraveen@linux.microsoft.comSigned-off-by: default avatarWei Liu <wei.liu@kernel.org>
parent c6a8625f
...@@ -236,7 +236,7 @@ static void __init hv_smp_prepare_cpus(unsigned int max_cpus) ...@@ -236,7 +236,7 @@ static void __init hv_smp_prepare_cpus(unsigned int max_cpus)
for_each_present_cpu(i) { for_each_present_cpu(i) {
if (i == 0) if (i == 0)
continue; continue;
ret = hv_call_add_logical_proc(numa_cpu_node(i), i, cpu_physical_id(i)); ret = hv_call_add_logical_proc(numa_cpu_node(i), i, i);
BUG_ON(ret); BUG_ON(ret);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment