On Thu, 2017-08-10 at 08:45 +0200, Cédric Le Goater wrote: > > The problem with doorbells on POWER9 guests is that they may have > > to trap and be emulated by the hypervisor, since the guest threads > > on P9 don't have to match the HW threads of the core. > > Well, the pseries cause_ipi() handler does : > > if (doorbell_try_core_ipi(cpu)) > return; > > to limit the doorbells to the same core. So we should be fine ?
No. It's theorically possible to create a guest that think it has 4 threads on P9 but those threads run on different cores of the host. The doorbells are useful if KVM uses a "P8 style" whole-core dispatch model or with PowerVM. We should probably invent some kind of DT property to tell the guest I suppoes. > If not > I suppose we should check CPU_FTR_ARCH_300 and use IPIs only for XIVE. > > > Thus it's quite possible that using XIVE for IPIs is actually faster > > than doorbells in that case. > > How can we measure that ? ebizzy may be. Or a simple socket ping pong with processes pinned to different threads. However the current KVM for P9 doesn't do threads yet afaik. Cheers, Ben.