Subject: Re: [PATCH v2] powerpc/mpic: Add DT option to skip readback after EOI

From: Scott Wood <[email-masked]>
Date: Tue, 27 Jan 2015 15:57:53 -0600

On Tue, 2015-01-27 at 15:19 +0000, Bogdan Purcareata wrote:
> The readback acts as a synchronization mechanism in handling external
> interrupts, making sure the core waits until EOI write completion. This is
> required in certain scenarios, such as when the MPIC communicates with a PCI
> device in posted write mode. If the device uses legacy interrupts, and the CPU
> returns from the interrupt as soon as it fires the EOI write, there is a chance
> to receive spurious interrupts because the line isn't deasserted yet.

The line was deasserted when IACK was read, before the EOI.  The issue
is (in theory at least) the timing of the write to the device versus the
write to EOI, not the timing of MPIC receiving the EOI versus when the
CPU executes rfi.

> +  - mpic-eoi-no-readback
> +      Usage: optional
> +      Value type: <empty>
> +      Definition: The presence of this property specifies that the
> +          MPIC will not issue a readback

s/will not/does not need to/

At this point, given the previous discussion, does anyone object to
removing the readback entirely?  Do we have any evidence that reading
WHOAMI is effective at addressing whatever problem reading EOI made go
away on the relevant platform?

>  when delivering the EOI for an
> +          external interrupt. The readback operation is done by reading
> +          the CPU WHOAMI register after writing to the CPU EOI register.
> +          Originally, this was required due to the fact that the MPIC
> +          operates at lower frequencies,

Why?

-Scott