Roman Kagan <rkagan@xxxxxxxxxxxxx> writes: > On Fri, Jun 29, 2018 at 01:37:44PM +0200, Vitaly Kuznetsov wrote: >> The problem we're trying to solve here is: with PV TLB flush and IPI we >> need to walk through the supplied list of VP_INDEXes and get VCPU >> ids. Usually they match. But in case they don't [...] > > Why wouldn't they *in practice*? Only if the userspace wanted to be > funny and assigned VP_INDEXes randomly? I'm not sure we need to > optimize for this case. Can someone please remind me why we allow userspace to change it in the first place? > > Note that the userspace can actually do nasty things with these > VP_INDEXes, like, say, have them non-unique. We need to be resilent to > it, but don't need to optimize for it. > > I think I'd rather have a warning in kvm_hv_set_msr if the VP_INDEX > being assigned is not equal to the vcpu index, and start worrying about > optimization only if this warning starts being triggered by real > hypervisor applications. > > Anyway I don't see an urgent need to bloat this patchset with optimizing > this translation; it can be done separately, if needed. Sure, I can use get_vcpu_by_vpidx() in the patchset pretending that is's always fast and if we find a valid case where it is not - we'll just optimize it later. Sounds sane to me. -- Vitaly