[M3devel] More on threading
Mika Nystrom
mika at async.caltech.edu
Mon Feb 14 03:55:41 CET 2011
All right, I have bootstrapped from the current CVS head with the
PTHREAD thread implementation and obtained the following behavior.
I'm on AMD64_LINUX here, but can repeat on AMD64_FREEBSD, LINUXLIBC6,
I386_DARWIN if either of those is of any special interest.
The AMD64_LINUX system reports as follows:
Linux ukdsl204 2.6.26-2-amd64 #1 SMP Thu Sep 16 15:56:38 UTC 2010 x86_64 GNU/Linux
Thread test results:
all : 1. assert failed, ThreadPThread.m3, line 966
2. SEGV pc = 0x430f40 = Move + 0x6b in ../src/runtime/common/RTCollector.m3
3. ThreadPThreadC.c:372: ThreadPThread__pthread_mutex_delete: Assertion `e == 0' failed.
read : OK
nxread [read w/o try-except] : OK
tryexcept : OK
fork : OK
forktoomuch [Process.Create w/o Process.Wait] : OK
alloc : deadlock
creat [ make new threads ] : deadlock
lock : OK
Now we can also try combinations, but I won't go tediously through all
possibilites, just a few:
alloc,nxread: SEGV pc = 0x430f40 = Move + 0x6b in ../src/runtime/common/RTCollector.m3
The "simplest" test that shows problem is "-tests alloc -n 2" (just two
instances of alloc).
Mika
Tony Hosking writes:
>I know it worked properly at one point in time, when I stressed it very =
>hard for some GC-related work I was doing.
>I need to see instances of failure (deadlock, crashes) captured in the =
>debugger, running with the latest head code.
>I don't want to try and diagnose old versions of the system if at all =
>possible.
>I may have some time to try your thread test program in the next couple =
>of weeks. Please let me know workloads that reliably cause failure.
>
>
>On Feb 13, 2011, at 1:17 PM, Mika Nystrom wrote:
>
>> I don't think pthreads works properly anywhere at
>> the moment. My guess is that it never has, if you stress it hard =
>enough.
More information about the M3devel
mailing list