On Tue, 4 Feb 2020 at 22:36, Vitaly Kuznetsov <vkuznets@xxxxxxxxxx> wrote: > > Wanpeng Li <kernellwp@xxxxxxxxx> writes: > > >> > >> Honestly, I'd simplify the check in kvm_alloc_cpumask() as > >> > >> if (!kvm_para_available()) > >> return; > >> > >> and allocated masks for all other cases. > > > > This will waste the memory if pv tlb and pv ipis are not exposed which > > are the only users currently. > > > > My assumption is that the number of cases where we a) expose KVM b) > don't expose IPIs and PV-TLB and c) care about 1 cpumask per cpu is > relatively low. Ok, let's at least have a function for > > if (kvm_para_has_feature(KVM_FEATURE_PV_TLB_FLUSH) && > !kvm_para_has_hint(KVM_HINTS_REALTIME) && > kvm_para_has_feature(KVM_FEATURE_STEAL_TIME)) > > as we now check it twice: in kvm_alloc_cpumask() and kvm_guest_init(), > something like pv_tlb_flush_supported(). We can also do > pv_ipi_supported() and probably others for consistency. Will do. Wanpeng