On Mon, Jan 27, 2025 at 6:27 PM Paolo Bonzini <pbonzini@xxxxxxxxxx> wrote: > On Sat, Jan 25, 2025 at 1:44 AM Sean Christopherson <seanjc@xxxxxxxxxx> wrote: > > I like the special casing, it makes the oddballs stand out, which in turn (hopefully) > > makes developers pause and take note. I.e. the SRCU walkers are all normal readers, > > the set_nx_huge_pages() "never" path is a write in disguise, and > > kvm_hyperv_tsc_notifier() is a very special snowflake. > > Likewise, kvm_hyperv_tsc_notifier()'s requirement does deserve a comment, > but its specialness is self-inflicted pain due to using (S)RCU even when > it's not the most appropriate synchronization mechanism. ... in fact, you could have a KVM_CREATE_VCPU and KVM_RUN after this point: mutex_lock(&kvm_lock); list_for_each_entry(kvm, &vm_list, vm_list) kvm_make_mclock_inprogress_request(kvm); because kvm_lock is not enough to ensure that all vCPUs got the KVM_REQ_MCLOCK_INPROGRESS memo. So kvm_hyperv_tsc_notifier()'s complications go beyond kvm_lock and the choice to use SRCU or not. Paolo