linux grundler
Grant Grundler
grundler@puffin.external.hp.com
Thu, 18 Jan 2001 11:25:24 -0700
CVSROOT: /home/cvs/parisc
Module name: linux
Changes by: grundler 01/01/18 11:25:24
Modified files:
arch/parisc/kernel: Makefile head.S irq.c pdc.c setup.c time.c
traps.c
arch/parisc : config.in
arch/parisc64 : config.in
include/asm-parisc: atomic.h hardirq.h pdc.h processor.h smp.h
smplock.h spinlock.h system.h
include/linux : smp.h
Added files:
arch/parisc/kernel: smp.c irq_smp.c
Log message:
First cut of CONFIG_SMP support. Default is disabled and my C3k
still boots/works that way. With CONFIG_SMP=y, hangs after kswapd
msg. Willy tells me that's the first place semaphores are used.
TODO:
o build 64-bit kernel w/CONFIG_SMP=n. Haven't tried this on current sources.
o build 64-bit kernel w/CONFIG_SMP=y - compiler crashed last night.
I haven't retried since CVS updating.
o Fix 32-bit boot w/CONFIG_SMP=y
Notes on major changes:
head.S restructured to share code between monarch and slave CPUs
initialization path. Monarch starts at stext and slaves
start off at smp_stext.
irq.c added spinlock around accesses to regions/action lists
pdc.c/setup.c minor restructing of cpu_driver_callback() and start_parisc().
moved coprocessor initialization to "init_coproc()" - which
uses PDC_COPROC_CFG to determine if FP is present, working,
and should be enabled. Not sure how this impacts 712/80i
and similarly crippled boxes.
Also removed "If this is the LAST MESSAGE..." code since
I hope the libmilli.a problem is resolved now for __LP64__.
time.c Was definitely NOT SMP safe. Fixed (I hope).
traps.c trap_init() Moved CR initialization to respective places
(eg eirr/eiem to init_IRQ().)
Moved ipi* code to smp.c - other ports seem to expect it there.
processor.h added lots of fields to cpuinfo_parisc (aka cpu_data[])
REVISIT - add ifdef CONFIG_SMP for fields we don't otherwise use
smp.h/smp.c have "ifdef ENTRY_SYS_CPUS" in them for future per CPU mgt.
Code is still broken in several places - but it would be a
cool feature to standardize in 2.5.
Note #define STATE_HALTED collides with sim700 and a few
of our other SCSI drivers. Our name should be "SMP_STATE_XXX"
or "CPU_STATE_XXX".
system.h Added a long comment for *mb() macros.
However, it's not clear if mb() needs to be asm("sync") for
future platforms or not.
include/linux/smp.h Removed "smp_callin()" prototype since this is
a per arch defined interface. ie generic code never calls this.
I had the opportunity to pass on data that PDC is kind enough
to put in arg25/26.