Commit edf72123 authored by Maxim Levitsky's avatar Maxim Levitsky Committed by Paolo Bonzini

KVM: x86: SVM: allow to force AVIC to be enabled

Apparently on some systems AVIC is disabled in CPUID but still usable.

Allow the user to override the CPUID if the user is willing to
take the risk.
Signed-off-by: default avatarMaxim Levitsky <mlevitsk@redhat.com>
Message-Id: <20220301143650.143749-7-mlevitsk@redhat.com>
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent b9f3973a
...@@ -189,6 +189,9 @@ module_param(tsc_scaling, int, 0444); ...@@ -189,6 +189,9 @@ module_param(tsc_scaling, int, 0444);
static bool avic; static bool avic;
module_param(avic, bool, 0444); module_param(avic, bool, 0444);
static bool force_avic;
module_param_unsafe(force_avic, bool, 0444);
bool __read_mostly dump_invalid_vmcb; bool __read_mostly dump_invalid_vmcb;
module_param(dump_invalid_vmcb, bool, 0644); module_param(dump_invalid_vmcb, bool, 0644);
...@@ -4813,10 +4816,14 @@ static __init int svm_hardware_setup(void) ...@@ -4813,10 +4816,14 @@ static __init int svm_hardware_setup(void)
nrips = false; nrips = false;
} }
enable_apicv = avic = avic && npt_enabled && boot_cpu_has(X86_FEATURE_AVIC); enable_apicv = avic = avic && npt_enabled && (boot_cpu_has(X86_FEATURE_AVIC) || force_avic);
if (enable_apicv) { if (enable_apicv) {
pr_info("AVIC enabled\n"); if (!boot_cpu_has(X86_FEATURE_AVIC)) {
pr_warn("AVIC is not supported in CPUID but force enabled");
pr_warn("Your system might crash and burn");
} else
pr_info("AVIC enabled\n");
amd_iommu_register_ga_log_notifier(&avic_ga_log_notifier); amd_iommu_register_ga_log_notifier(&avic_ga_log_notifier);
} else { } else {
......
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