[Skiboot] [PATCH] Added a 5ms wait after a msi-irq is masked

Stewart Smith stewart at linux.vnet.ibm.com
Thu Mar 24 13:54:39 AEDT 2016

Michael Neuling <mikey at neuling.org> writes:
> On Tue, 2016-03-22 at 11:46 +0100, Philippe Bergheaud wrote:
>> From: Vaibhav Jain <vaibhav at linux.vnet.ibm.com>
>> Adds a 5ms wait to phb3_msi_set_xive after the interrupt is masked so
>> that the kernel delays cleanup until an irq if its in-flight is
>> handled. The value 5ms is the worst case time needed by an irq to be
>> presented to the host after its generated.
> I don't think we can do this here.  We can't have firmware
> take a CPU for 5ms.
> I think we need to do this workaround in Linux.

100% agree.

Before we'd go and do something as drastic as this (OPAL calls
should/must not block), we'd need a detailed reason as to why literally
every other option is a worse idea.

A 5ms sleep at 4Ghz is about 20 million cycles, and at 1IPC that's about
half the number of instructions it takes to boot skiboot+Linux in a
single core simulator. Wasting that much time doing nothing in firmware
is a last resort, as we can't go and do any useful work while spinning
doing nothing.

Stewart Smith
OPAL Architect, IBM.

More information about the Skiboot mailing list