mirror of https://github.com/torvalds/linux.git
Register KVM's cpuhp and syscore callbacks when enabling virtualization in hardware, as the sole purpose of said callbacks is to disable and re-enable virtualization as needed. The primary motivation for this series is to simplify dealing with enabling virtualization for Intel's TDX, which needs to enable virtualization when kvm-intel.ko is loaded, i.e. long before the first VM is created. That said, this is a nice cleanup on its own. By registering the callbacks on-demand, the callbacks themselves don't need to check kvm_usage_count, because their very existence implies a non-zero count. Patch 1 (re)adds a dedicated lock for kvm_usage_count. This avoids a lock ordering issue between cpus_read_lock() and kvm_lock. The lock ordering issue still exist in very rare cases, and will be fixed for good by switching vm_list to an (S)RCU-protected list. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> |
||
|---|---|---|
| .. | ||
| Kconfig | ||
| Makefile | ||
| aia.c | ||
| aia_aplic.c | ||
| aia_device.c | ||
| aia_imsic.c | ||
| main.c | ||
| mmu.c | ||
| tlb.c | ||
| trace.h | ||
| vcpu.c | ||
| vcpu_exit.c | ||
| vcpu_fp.c | ||
| vcpu_insn.c | ||
| vcpu_onereg.c | ||
| vcpu_pmu.c | ||
| vcpu_sbi.c | ||
| vcpu_sbi_base.c | ||
| vcpu_sbi_hsm.c | ||
| vcpu_sbi_pmu.c | ||
| vcpu_sbi_replace.c | ||
| vcpu_sbi_sta.c | ||
| vcpu_sbi_v01.c | ||
| vcpu_switch.S | ||
| vcpu_timer.c | ||
| vcpu_vector.c | ||
| vm.c | ||
| vmid.c | ||