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. 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. Roman.