[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