On Tue, Aug 13, 2024 at 10:28:19AM -0700, Yunhong Jiang wrote: > Hi, Srinivasan and Dexuan, > I have a question to the hv_vtl_real_mode_header in > arch/x86//hyperv/hv_vtl.c when addressing one patch review comment. > In hv_vtl_early_init(), the real_mode_header is set to > hv_vtl_real_mode_header, but there is no setup to the real_mode_header, since > the realmode_init() is marked x86_init_noop in hv_vtl_init_platform. > How is the real_mode_header(in another word, hv_vtl_real_mode_header) > used? Is it to meet the access requirement from do_boot_cpu(), so that > real_mode_header->trampoline_start64 will work, although the start_ip is not > used? > If it's really to support the do_boot_cpu() requirement, how does the > non-VTL guest meet the access requirement? The hv_vtl_init_platform() is > unconditionally called from ms_hyperv_init_platform(), so I assume all hyperv > guest will have the realmode_init() set as x86_init_noop. The patch review mentioned above is https://lore.kernel.org/lkml/87a5ho2q6x.ffs@tglx/ . Can we set real_mode_header to hv_vtl_real_mode_header in hv_vtl_init_platform(), instead of hv_vtl_early_init()? I'm not sure if such move is safe, because hv_vtl_early_init() is invoked only for vtl!=0 guest while hv_vtl_init_platform() is invoked for all the hyperv guest. > > Thank you > --jyh >