Port-sparc archive

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

Re: SMP status ?



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hello,

On Jan 10, 2011, at 11:59 AM, matthew green wrote:


i'm curious if anyone else has success with the following change. it
has survived at least 3x longer than normal under load for me.

my ss20 crashed after about 5 hours with the same problem, but
then the next boot crashed almost instantly.. in about 2 mins.

Ah, so it's not just me. Mine booted fine but crashed about 1 minute into build.sh.

Index: cpu.c
===================================================================
RCS file: /cvsroot/src/sys/arch/sparc/sparc/cpu.c,v
retrieving revision 1.223
diff -p -r1.223 cpu.c
*** cpu.c       22 Jun 2010 18:29:02 -0000      1.223
--- cpu.c       10 Jan 2011 10:46:41 -0000
*************** void
*** 500,506 ****
cpu_init_system(void)
{

!       mutex_init(&xpmsg_mutex, MUTEX_SPIN, IPL_VM);
}

/*
--- 500,506 ----
cpu_init_system(void)
{

!       mutex_init(&xpmsg_mutex, MUTEX_SPIN, IPL_SCHED);
}

/*

Doesn't seem to make a difference here ( 2x 125MHz HyperSPARC in an
SS20 )
Something completely different though - now the dbri driver causes a
locking-against-myself error when calling bus_dmamem_map() from
dbri_malloc() when attaching audio - that used to work, even on MP
kernels. THe panic doesn't happen on UP kernels and the panic is
always on cpu1.

what are the addresses with the bug?  ie last locker, what lock, etc.

Let me check...
it's rw_vector_enter: locking against myself
lock address 0xf02b644c
owner and current_lwp point at config_interrupts_thread()
rw_enter was called from vm_map_lock
The only difference to other audio drivers is that dbri defers attaching audio using config_interrupts() - the whole thing is very, very DMA-centric ( only 8 registers in the whole chip, half of them for testing ) and even making it talk to the codec without interrupts enabled would be quite a pain. An earlier call to bus_dmamem_map() succeeds without trouble, I'll check if pushing it further back makes any difference.
And let's see if LOCKDEBUG helps.

have fun
Michael

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (Darwin)

iQEVAwUBTSuWmcpnzkX8Yg2nAQJ5YQf/dbDFlvZ0mWb8Z5aaiXVKEs3Z0cJFv+K8
Tg3kXTaOp7aNysvde1AoxLnTXcUHexFxpA7Ma4wXScVNEkFdhvwF6kWs0VkpAPnA
OCC/0ifDpjg0ko5ETEPZHcexriPGBo2Qc8f4SXX55kcfn0Zv+EaUc/c6x6qXuQXX
sGirCy/M2ZRmXpxE3E5rB/bEz7Pw4nbyXiOX6wzQZq7ILfUXplmWgWDk50O0ae2w
MPSivTnmX57+KYqe/T2IhKA4kyRDpkK2CTBsNd5k8qjVSIy+latePaq9Lu9grMH5
TBy+ovmQc3RjTdgwnCSE4RodICV9vUCLVRfmBYxACOZLsVTbYeKDAA==
=8MZ8
-----END PGP SIGNATURE-----


Home | Main Index | Thread Index | Old Index