On 22.02.2024 15:33, George Dunlap wrote: > On Tue, Feb 20, 2024 at 12:25 AM Jan Beulich <jbeul...@suse.com> wrote: >> On 06.02.2024 02:20, George Dunlap wrote: >>> --- a/xen/arch/x86/hvm/vmx/vmx.c >>> +++ b/xen/arch/x86/hvm/vmx/vmx.c >>> @@ -3021,6 +3021,9 @@ const struct hvm_function_table * __init >>> start_vmx(void) >>> if ( cpu_has_vmx_tsc_scaling ) >>> vmx_function_table.tsc_scaling.ratio_frac_bits = 48; >>> >>> + /* TODO: Require hardware support before enabling nested virt */ >>> + vmx_function_table.caps.nested_virt = vmx_function_table.caps.hap; >> >> This won't have the intended effect if hap_supported() ends up clearing >> the bit (used as input here) due to a command line option override. I >> wonder if instead this wants doing e.g. in a new hook to be called from >> nestedhvm_setup(). On the SVM side the hook function would then be the >> start_nested_svm() that you already introduce, with a caps.hap check >> added. > > I take it presmp_initcall()'s are guaranteed to run before __initcall()'s?
Yes - the former happen ahead of AP bringup, the latter after. >> Since you leave the other nested-related if() in place in >> arch_sanitise_domain_config(), all ought to be well, but I think that >> other if() really wants replacing by the one you presently add. > > Ack. > > I'll probably check in patches 1,2,3, and 5, and resend the other two, > unless you'd like to see all the changes again... No need imo to re-post anything that was agreed upon. Jan