NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
port-powerpc/44387: some pthread mutex tests fail on ppc platforms
>Number: 44387
>Category: port-powerpc
>Synopsis: some pthread mutex tests fail on ppc platforms
>Confidential: no
>Severity: critical
>Priority: high
>Responsible: port-powerpc-maintainer
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Fri Jan 14 16:50:00 +0000 2011
>Originator: Jeff Rizzo
>Release: 5.99.43
>Organization:
>Environment:
NetBSD powerbookg4 5.99.43 NetBSD 5.99.43 (GENERIC) #1: Fri Jan 14 08:25:34 PST
2011
riz%hack.lan@localhost:/Users/riz/Documents/code/netbsd/obj/sys/arch/macppc/compile/GENERIC
macppc
>Description:
Using a kernel that is *not* build with "options DIAGNOSTIC", the regression
tests in
/usr/tests/lib/libpthread/t_mutex fail on various powerpc platforms. The
failing test basically creates two threads which each increment a variable
which is protected by a mutex; when it fails (it doesn't fail 100% of the
time), it looks like both threads are in "parked" state. (I have also seen one
thread parked and one in iowait)
I confirmed this on two different macppc boxes I have, and I have at least one
test run from an ofppc box running 5.99.42 (without DIAGNOSTIC).
For whatever reason, building the kernel with DIAGNOSTIC seems to hide the
problem. I have not yet determined why; no additional output is available.
In case it matters: one machine has a PPC 7400, one has a 7447, and one has a
750CX CPU.
>How-To-Repeat:
On a machine with a GENERIC kernel:
cd /usr/tests/lib/libpthread
powerbookg4:riz /usr/tests/lib/libpthread> ./t_mutex mutex2
1: Mutex-test 2
1: Thread 0xffe00000
2: Second thread (0xefa00000). Count is 10000000
<hang indefinitely>
Sometimes it does not hang - frequency of hang seems to vary by machine and
kernel. You may also wish to run the entire pthread test suite from that
directory with "atf-run | atf-report". It will take about 10 minutes (because
of the mutex test hangs).
>Fix:
None given.
Home |
Main Index |
Thread Index |
Old Index