Re: [PATCH v2 3/4] KVM: Rename and move CPUHP_AP_KVM_STARTING to ONLINE section

From: Chao Gao
Date: Wed Feb 09 2022 - 02:49:05 EST


On Wed, Feb 09, 2022 at 12:29:57AM +0000, Sean Christopherson wrote:
>On Tue, Jan 18, 2022, Chao Gao wrote:
>> diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
>> index 148f7169b431..528741601122 100644
>> --- a/virt/kvm/kvm_main.c
>> +++ b/virt/kvm/kvm_main.c
>> @@ -4856,13 +4856,25 @@ static void hardware_enable_nolock(void *junk)
>> }
>> }
>>
>> -static int kvm_starting_cpu(unsigned int cpu)
>> +static int kvm_online_cpu(unsigned int cpu)
>> {
>> + int ret = 0;
>> +
>> raw_spin_lock(&kvm_count_lock);
>> - if (kvm_usage_count)
>> + /*
>> + * Abort the CPU online process if hardware virtualization cannot
>> + * be enabled. Otherwise running VMs would encounter unrecoverable
>> + * errors when scheduled to this CPU.
>> + */
>> + if (kvm_usage_count) {
>
>
>> hardware_enable_nolock(NULL);
>> + if (atomic_read(&hardware_enable_failed)) {
>
>This needs:
>
> atomic_set(&hardware_enable_failed, 0);
>
>otherwise failure to online one CPU will prevent onlining other non-broken CPUs.
>It's probably worth adding a WARN_ON_ONCE above this too, e.g.

Thanks. All your comments to this series make sense. I just post a revised
version.