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. set_nx_huge_pages() is not a writer in disguise. Rather, it's a *real* writer for nx_hugepage_mitigation_hard_disabled which is also protected by kvm_lock; and there's a (mostly theoretical) bug in set_nx_huge_pages_recovery_param() which reads it without taking the lock. But it's still a reader as far as vm_list is concerned. 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. Paolo