On Mon, May 31, 2021 at 01:10:46PM +0530, Praveen Kumar wrote: > The hypervisor expects the lp_index to be same as cpu-id during LP creation > This fix correct the same, as cpu_physical_id can give different cpu-id. Code looks fine to me, but the commit message can be made clearer. """ The hypervisor expects the logical processor index to be the same as CPU's id during logical processor creation. Using cpu_physical_id confuses Microsoft 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: 333abaf5abb3 (x86/hyperv: implement and use hv_smp_prepare_cpus) """ No action is required from you. If you are fine with this commit message I can incorporate it and update the subject line when committing this patch. > > Signed-off-by: Praveen Kumar <kumarpraveen@xxxxxxxxxxxxxxxxxxx> > --- > arch/x86/kernel/cpu/mshyperv.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/x86/kernel/cpu/mshyperv.c b/arch/x86/kernel/cpu/mshyperv.c > index 22f13343b5da..4fa0a4280895 100644 > --- a/arch/x86/kernel/cpu/mshyperv.c > +++ b/arch/x86/kernel/cpu/mshyperv.c > @@ -236,7 +236,7 @@ static void __init hv_smp_prepare_cpus(unsigned int max_cpus) > for_each_present_cpu(i) { > if (i == 0) > 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); > } > > -- > 2.25.1 >