Skip to content

sparc32: SMP IPI patches

Daniel Hellstrom sparclinux 2 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v2 Latest4 patches 2 repliesIn review
  2. v13 patches 2 repliesSuperseded

Patches in v2 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/4sparc32: implement SMP IPIs using the generic functionsarch/sparc/Kconfig arch/sparc/include/asm/cpudata_32.h arch/sparc/include/asm/smp_32.h +2 more+71 -160 replies
2/4sparc32,leon: Implemented SMP IPIs for LEON CPUarch/sparc/include/asm/leon.h arch/sparc/kernel/entry.S arch/sparc/kernel/leon_smp.c+126 -30 replies
3/4sparc32,sun4m: Implemented SMP IPIs support for SUN4M machinesarch/sparc/kernel/entry.S arch/sparc/kernel/smp_32.c arch/sparc/kernel/sun4m_smp.c+54 -90 replies
4/4sparc32,sun4d: Implemented SMP IPIs support for SUN4D machinesarch/sparc/kernel/irq.h arch/sparc/kernel/sun4d_irq.c arch/sparc/kernel/sun4d_smp.c+94 -00 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v2 yet.

Read the v2 thread

Cover letter [PATCH 0/4 v2] sparc32: SMP IPI patches

Hello Dave,

I have made a new set of IPI patches, this time it includes patches for all SPARC32 architectures. It looks to me as if sun4d does not have a pending soft-IRQ register, so I handle it as a normal hard IRQ.

I'm not sure if I should add a STBAR/memory barrier or a spinlock to the sun4d implementation of smp4d_ipi_{single,mask_one,resched}. I'm a bit worried that the memory write happens after the IPI is generated to the other CPUs. Also, I'm not sure that IRQ14 is the best choice for IPI, the best is probably of put it on a separate IRQ but I don't know if there are free IRQs.

I hope that someone could try SMP on sun4m and sun4d with these patches.

Thanks,
Daniel

---

 arch/sparc/Kconfig                  |    3 +-
 arch/sparc/include/asm/cpudata_32.h |    5 ++
 arch/sparc/include/asm/leon.h       |    4 +-
 arch/sparc/include/asm/smp_32.h     |   22 +++----
 arch/sparc/kernel/entry.S           |   45 +++++++++++++-
 arch/sparc/kernel/irq.h             |    6 ++
 arch/sparc/kernel/irq_32.c          |   10 +++
 arch/sparc/kernel/leon_smp.c        |  109 
++++++++++++++++++++++++++++++++++-
 arch/sparc/kernel/smp_32.c          |   52 +++++++++++++++--
 arch/sparc/kernel/sun4d_irq.c       |    9 +++
 arch/sparc/kernel/sun4d_smp.c       |   79 +++++++++++++++++++++++++
 arch/sparc/kernel/sun4m_smp.c       |   29 +++++++++
 12 files changed, 345 insertions(+), 28 deletions(-)