[PATCH 1/2] powerpc/ps3: Fix lost SMP IPIs
Peter Zijlstra
a.p.zijlstra at chello.nl
Wed Nov 9 20:53:36 EST 2011
On Tue, 2011-11-08 at 14:37 -0800, Geoff Levand wrote:
> Fixes the PS3 bootup hang introduced in 3.0-rc1 by:
>
> commit 317f394160e9beb97d19a84c39b7e5eb3d7815a
> sched: Move the second half of ttwu() to the remote cpu
>
> Move the PS3's LV1 EOI call lv1_end_of_interrupt_ext() from ps3_chip_eoi()
> to ps3_get_irq() for IPI messages.
>
> If lv1_send_event_locally() is called between a previous call to
> lv1_send_event_locally() and the coresponding call to
> lv1_end_of_interrupt_ext() the second event will not be delivered to the
> target cpu.
>
> The PS3's SMP IPIs are implemented using lv1_send_event_locally(), so if two
> IPI messages of the same type are sent to the same target in a relatively
> short period of time the second IPI event can become lost when
> lv1_end_of_interrupt_ext() is called from ps3_chip_eoi().
Ah glad you found it! I'm not going to ack it since PPC guts are way
beyond me.
More information about the Linuxppc-dev
mailing list