Port-sparc archive

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

Re: partially working SMP again



mrg%eterna.com.au@localhost wrote:

> i spent a bunch of time investigating sparc SMP issues this weekend
> and i've gotten my system to the point it turns on interrupts and
> then loses, instead of crashing before printing the copyright or
> while attaching cpus.
 :
> basic changes are:
>        - kill union cpu_info_pg
>        - allocate USPACE after the intstack (this is the real
>          bug fix)
>        - make cpus[] as array of cpu_info{} *'s.
>        - allocate cpu_info{}'s in pmap_bootstrap via stealing
>          pages aka pmap_bootstrap style.
>        - we waste a page of for cpu0's cpu_info above, but for
>          now just ignore this, we use the VA it would use, but
>          remap the boot CPUINFO_VA physaddr to there

Have these changes been committed?

SS20MP fails earlier due to mutex panic:

---
SPARCstation 20 MP (4 X RT626), No Keyboard
ROM Rev. 2.25, 128 MB memory installed, Serial #XXXXXXXX.
Ethernet address 8:0:20:XX:XX:XX, Host ID: 72XXXXXX.



Rebooting with command: disk1 netbsd.mp                               
Boot device: /iommu/sbus/espdma@f,400000/esp@f,800000/sd@1,0  File and args: 
netbsd.mp
>> NetBSD/sparc Secondary Boot, Revision 1.15
>> (builds%b6.netbsd.org@localhost, Mon Apr 27 06:09:56 UTC 2009)
Booting netbsd.mp
3655720+108392+300200 [244048+229938]=0x464350
OBP version 3, revision 2.25 (plugin rev 2)
extra cpus: 0xf0462000, p: 0xf0466000, gap start: 0xf037e000, gap end: 
0xf038d000
going to pmap_kenter_pa(va=0xf0462000, pa=0x402000)
setting cpus self reference
set cpu0 ci_self address: 0xf0462000
set cpu1 ci_self address: 0xf0463000
set cpu2 ci_self address: 0xf0464000
set cpu3 ci_self address: 0xf0465000
pmap_bootstrap4m done
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    2006, 2007, 2008, 2009
    The NetBSD Foundation, Inc.  All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
    The Regents of the University of California.  All rights reserved.

NetBSD 5.99.11 (DEBUG) #2: Fri May 22 21:36:26 JST 2009
        tsutsui@mirage:/usr/src/sys/arch/sparc/compile/DEBUG
total memory = 127 MB
avail memory = 120 MB
data fault: pc=0xf0134b80 addr=0x0 
sfsr=0x126<PERR=0x0,LVL=0x1,AT=0x1,FT=0x1,FAV,OW>
panic: kernel fault
Stopped in pid 0.1 (system) at  netbsd:cpu_Debugger+0x4:        or              
%o7, %g0, %g1
db{0}> tr
cpu_Debugger(0xf0375840, 0xf0134b80, 0x0, 0xf0399000, 0x104, 0xf03e6800) at 
netbsd:mem_access_fault4m+0x1d8
mem_access_fault4m(0x9, 0x126, 0x0, 0xf03933f8, 0x0, 0xe) at 0xf0008518
0xf0008518(0x0, 0x0, 0xf039dd00, 0x0, 0x1e400fe3, 0xf03d6bc8) at 
netbsd:mutex_enter+0x204
mutex_enter(0x0, 0xf37e44ef, 0xf035b4c0, 0xf03935a8, 0x40, 0x0) at 
netbsd:kthread_create+0xe0
kthread_create(0x0, 0x3, 0xf0462000, 0xf039d800, 0x0, 0xf03935b4) at 
netbsd:create_idle_lwp+0x34
create_idle_lwp(0xf0462000, 0x0, 0x0, 0xf03d1690, 0xf035c9c8, 0x0) at 
netbsd:mi_cpu_attach+0x70
mi_cpu_attach(0xf0462000, 0xf03dc970, 0x0, 0xf3805f80, 0xf03936a0, 0xf045d1e4) 
at netbsd:main+0x138
main(0x0, 0xfffffff8, 0x0, 0x0, 0xffef2010, 0xf0002320) at 
netbsd:ft_want_ast+0xf78
db{0}> 


---
Izumi Tsutsui


Home | Main Index | Thread Index | Old Index