RE: [PATCH] KVM: x86: Add lowest-priority support for vt-d posted-interrupts

From: Wu, Feng
Date: Thu Nov 26 2015 - 01:25:18 EST




> -----Original Message-----
> From: Radim KrÄmÃÅ [mailto:rkrcmar@xxxxxxxxxx]
> Sent: Wednesday, November 25, 2015 11:43 PM
> To: Paolo Bonzini <pbonzini@xxxxxxxxxx>
> Cc: Wu, Feng <feng.wu@xxxxxxxxx>; kvm@xxxxxxxxxxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx
> Subject: Re: [PATCH] KVM: x86: Add lowest-priority support for vt-d posted-
> interrupts
>
> 2015-11-25 15:38+0100, Paolo Bonzini:
> > On 25/11/2015 15:12, Radim KrcmÃr wrote:
> >> I think it's ok to pick any algorithm we like. It's unlikely that
> >> software would recognize and take advantage of the hardware algorithm
> >> without adding a special treatment for KVM.
> >> (I'd vote for the simple pick-first-APIC lowest priority algorithm ...
> >> I don't see much point in complicating lowest priority when it doesn't
> >> deliver to lowest priority CPU anyway.)
> >
> > Vector hashing is an improvement for the common case where all vectors
> > are set to all CPUs. Sure you can get an unlucky assignment, but it's
> > still better than pick-first-APIC.
>
> Yeah, hashing has a valid use case, but a subtle weighting of drawbacks
> led me to prefer pick-first-APIC ...

Is it possible that pick-first-APIC policy make certain vCPU's irq workload too
heavy?

>
> (I'd prefer to have simple code in KVM and depend on static IRQ balancing
> in a guest to handle the distribution.
> The guest could get the unlucky assignment anyway, so it should be
> prepared; and hashing just made KVM worse in that case. Guests might
> also configure physical x(2)APIC, where is no lowest priority.
> And if the guest doesn't do anything with IRQs, then it might not even
> care about the impact that our choice has.)

Do do you guys have an agreement on how to handle this? Or we can implement
the vector hashing at the current stage. then we can improve it like Radim mentioned
above if it is really needed?

Thanks,
Feng