Message ID | c7855171bb693746e17beeb149534d0b37fea6a0.1663869838.git.isaku.yamahata@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | KVM: hardware enable/disable reorganize | expand |
On Thu, Sep 22, 2022, isaku.yamahata@intel.com wrote: > From: Isaku Yamahata <isaku.yamahata@intel.com> > > Provide the name of the calling function to hardware_enable_nolock() and > include it in the error message to provide additional information on > exactly what path failed. Changelog doesn't match the code. > Opportunistically bump the pr_info() to pr_warn(), failure to enable > virtualization support is warn-worthy as _something_ is wrong with the > system. > > Suggested-by: Chao Gao <chao.gao@intel.com> > Signed-off-by: Isaku Yamahata <isaku.yamahata@intel.com> > --- > virt/kvm/kvm_main.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c > index 4243a9541543..4f19c47aab1c 100644 > --- a/virt/kvm/kvm_main.c > +++ b/virt/kvm/kvm_main.c > @@ -5006,7 +5006,8 @@ static void hardware_enable_nolock(void *junk) > if (r) { > cpumask_clear_cpu(cpu, cpus_hardware_enabled); > atomic_inc(&hardware_enable_failed); > - pr_info("kvm: enabling virtualization on CPU%d failed\n", cpu); > + pr_warn("kvm: enabling virtualization on CPU%d failed during %pSb\n", > + cpu, __builtin_return_address(0)); I vote to drop this patch. Trying to capture the caller is just a poor man's version of WARN, and at the end of this series KVM should be at a point where KVM can WARN when hardware enabling indicates a potentially fatal issue. Specifically, kvm_arch_add_vm() shouldn't WARN since x86 can fail due a misbehaving userspace. kvm_arch_online_cpu() on the other hand can and should WARN since failure in that case means hardware enabling succeeded on other CPUs, and in the x86 case, that KVM is actively running VMs.
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index 4243a9541543..4f19c47aab1c 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c @@ -5006,7 +5006,8 @@ static void hardware_enable_nolock(void *junk) if (r) { cpumask_clear_cpu(cpu, cpus_hardware_enabled); atomic_inc(&hardware_enable_failed); - pr_info("kvm: enabling virtualization on CPU%d failed\n", cpu); + pr_warn("kvm: enabling virtualization on CPU%d failed during %pSb\n", + cpu, __builtin_return_address(0)); } }