Re: [PATCH 1/2 v2] sparc32: implement SMP IPIs using the generic functions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



David Miller wrote:

From: Daniel Hellstrom <daniel@xxxxxxxxxxx>
Date: Wed,  2 Feb 2011 20:40:55 +0100

The current sparc32 SMP IPI generation is implemented the
cross call function. The cross call function uses IRQ15 the
NMI, this is has the effect that IPIs will interrupt IRQ
critical areas and hang the system. Typically on/after
spin_lock_irqsave calls can be aborted.

The cross call functionality must still exist to flush
cache/TLBS.

This patch provides CPU models a custom way to implement
generation of IPIs on the generic code's request. The
typical approach is to generate an IRQ for each IPI case.

After this patch each sparc32 SMP CPU model needs to
implement IPIs in order to function properly.

Signed-off-by: Daniel Hellstrom <daniel@xxxxxxxxxxx>

Ok, this looks mostly fine to me.

Once we have the sun4m/sun4d versions written I can think about
applying this.

We might want to abstract out the common code of the dispatch and
service stuff you have for LEON, otherwise we'll have 3 copies of
that code that sets and clears the mask state.

Perhaps something using BTFIXUP or similar.
I was thinking so too, BTFIXUPs for CPU model specific "IPI operations" to avoid the switch-statement in the arch_ functions.

Daniel

--
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Kernel Development]     [DCCP]     [Linux ARM Development]     [Linux]     [Photo]     [Yosemite Help]     [Linux ARM Kernel]     [Linux SCSI]     [Linux x86_64]     [Linux Hams]

  Powered by Linux