Cédric Le Goater <c...@kaod.org> writes: > On 11/11/21 11:41, Michael Ellerman wrote: >> Cédric Le Goater <c...@kaod.org> writes: >>> On processors with a XIVE interrupt controller (POWER9 and above), the >>> kernel can use either doorbells or XIVE to generate CPU IPIs. Sending >>> doorbell is generally preferred to using the XIVE IC because it is >>> faster. There are cases where we want to avoid doorbells and use XIVE >>> only, for debug or performance. Only useful on POWER9 and above. >> >> How much do we want this? > > Yes. Thanks for asking. It is a recent need. > > Here is some background I should have added in the first place. May be > for a v2. > > We have different ways of doing IPIs on POWER9 and above processors, > depending on the platform and the underlying hypervisor. > > - PowerNV uses global doorbells > > - pSeries/KVM uses XIVE only because local doorbells are not > efficient, as there are emulated in the KVM hypervisor > > - pSeries/PowerVM uses XIVE for remote cores and local doorbells for > threads on same core (SMT4 or 8) > > This recent commit 5b06d1679f2f ("powerpc/pseries: Use doorbells even > if XIVE is available") introduced the optimization for PowerVM and > commit 107c55005fbd ("powerpc/pseries: Add KVM guest doorbell > restrictions") restricted the optimization. > > We would like a way to turn off the optimization.
Just for test/debug though? >> Kernel command line args are a bit of a pain, they tend to be poorly >> tested, because someone has to explicitly enable them at boot time, >> and then reboot to test the other case. > > True. The "xive=off" parameter was poorly tested initially. > >> When would we want to enable this? > > For bring-up, for debug, for tests. I have been using a similar switch > to compare the XIVE interrupt controller performance with doorbells on > POWER9 and P0WER10. > > A new need arises with PowerVM, some configurations will behave as KVM > (local doorbell are unsupported) and the doorbell=off parameter is a > simple way to handle this case today. That's the first I've heard of that, what PowerVM configurations have non-working doorbells? >> Can we make the kernel smarter about when to use doorbells and make >> it automated? > > I don't think we want to probe all IPI methods to detect how well > local doorbells are supported on the platform. Do we ? We don't *want to*, but sounds like we might have to if they are not working in some configurations as you mentioned above. cheers