[M3devel] thread tests on NT386 32-bt

Tony Hosking hosking at cs.purdue.edu
Thu Mar 17 01:13:47 CET 2011


OK, good.  So I think this is definitely a threads/GC interaction.  Should be diagnosable from here out.

On Mar 16, 2011, at 6:34 PM, Coleburn, Randy wrote:

> Tony asked:
> I don't remember how stable the collector was at that point.  Running them with @M3nogc indicates there were problems with it.
> Now, what happens with the current trunk head when run with @M3nogc?
> 
> Here you go:
>  
> The alloc & create tests ran 9 iterations before running out of memory.
>  
> The other tests ran to completion.
>  
> See below (these tests run on IBM G40, XP Pro, 32-bit, against current HEAD branch):
>  
> C:\cm3\Sandbox\cm3\m3-libs\m3core\tests\thread\NT386>threadtest.exe -verbose -tests alloc,creat @M3nogc
> Writing file...done
> Creating alloc threads...
>    alloc=15
>    alloc=16
>    alloc=17
> done
> Creating creat threads...
>    creat=18
>    creat=19
>    creat=20
> done
> running...printing oldest/median age/newest
> ..........laziest thread is 0/0/0 (tests: alloc 0/0/0 creat 0/0/0)
>    alloc Thread 15 completed 32400 loops.
>    alloc Thread 16 completed 48840 loops.
>    alloc Thread 17 completed 36525 loops.
>    creat Thread 18 completed 25 loops.
>    creat Thread 19 completed 28 loops.
>    creat Thread 20 completed 27 loops.
> ..........laziest thread is 0/0/0 (tests: alloc 0/0/0 creat 0/0/0)
>    alloc Thread 15 completed 5850 loops.
>    alloc Thread 16 completed 8310 loops.
>    alloc Thread 17 completed 8910 loops.
>    creat Thread 18 completed 19 loops.
>    creat Thread 19 completed 20 loops.
>    creat Thread 20 completed 21 loops.
> ..........laziest thread is 0/0/0 (tests: alloc 0/0/0 creat 0/0/0)
>    alloc Thread 15 completed 8505 loops.
>    alloc Thread 16 completed 11805 loops.
>    alloc Thread 17 completed 13170 loops.
>    creat Thread 18 completed 27 loops.
>    creat Thread 19 completed 26 loops.
>    creat Thread 20 completed 27 loops.
> ..........laziest thread is 0/0/0 (tests: alloc 0/0/0 creat 0/0/0)
>    alloc Thread 15 completed 7035 loops.
>    alloc Thread 16 completed 13080 loops.
>    alloc Thread 17 completed 5010 loops.
>    creat Thread 18 completed 19 loops.
>    creat Thread 19 completed 21 loops.
>    creat Thread 20 completed 19 loops.
> ..........laziest thread is 0/0/0 (tests: alloc 0/0/0 creat 0/0/0)
>    alloc Thread 15 completed 10260 loops.
>    alloc Thread 16 completed 5445 loops.
>   alloc Thread 17 completed 6390 loops.
>    creat Thread 18 completed 21 loops.
>    creat Thread 19 completed 23 loops.
>    creat Thread 20 completed 23 loops.
> ..........laziest thread is 0/0/0 (tests: alloc 0/0/0 creat 0/0/0)
>    alloc Thread 15 completed 3240 loops.
>    alloc Thread 16 completed 12405 loops.
>    alloc Thread 17 completed 6975 loops.
>    creat Thread 18 completed 24 loops.
>    creat Thread 19 completed 25 loops.
>    creat Thread 20 completed 23 loops.
> ..........laziest thread is 0/0/0 (tests: alloc 0/0/0 creat 0/0/0)
>    alloc Thread 15 completed 7410 loops.
>    alloc Thread 16 completed 6090 loops.
>    alloc Thread 17 completed 8670 loops.
>    creat Thread 18 completed 17 loops.
>    creat Thread 19 completed 17 loops.
>    creat Thread 20 completed 17 loops.
> ..........laziest thread is 0/0/0 (tests: alloc 0/0/0 creat 0/0/0)
>    alloc Thread 15 completed 6105 loops.
>    alloc Thread 16 completed 7425 loops.
>    alloc Thread 17 completed 10155 loops.
>    creat Thread 18 completed 14 loops.
>    creat Thread 19 completed 17 loops.
>    creat Thread 20 completed 17 loops.
> ..........laziest thread is 0/0/0 (tests: alloc 0/0/0 creat 0/0/0)
>    alloc Thread 15 completed 17160 loops.
>    alloc Thread 16 completed 13365 loops.
>    alloc Thread 17 completed 13785 loops.
>    creat Thread 18 completed 17 loops.
>    creat Thread 19 completed 16 loops.
>    creat Thread 20 completed 17 loops.
> ......
>  
> ***
> *** runtime error:
> ***    NEW() was unable to allocate more memory.
>  
> ***
> *** runtime error:
> ***    NEW() was unable to allocate more memory.
>  
> ***
> *** runtime error:
> ***    NEW() was unable to allocate more memory.
>  
> ***
> *** runtime error:
> ***    NEW() was unable to allocate more memory.
> ***    file "..\src\runtime\common\RuntimeError.m3", line 63
> ***
>  
> ***    file "..\src\runtime\common\RuntimeError.m3", line 63
> ***
> .
> ***    file "..\src\runtime\common\RuntimeError.m3", line 63
> ***
>  
> ***    file "..\src\runtime\common\RuntimeError.m3", line 63
> ***
>  
> Stack trace:
>    FP         PC      Procedure
> ---------  ---------  -------------------------------
> 0xf7fefc   0x44c572  Raise + 0x3f in ..\src\runtime\common\RuntimeError.m3
> 0xf7ff1c   0x428712  AllocateOpenArray + 0x33 in ..\src\runtime\common\RTAllocator.m3
> 0xf7ff78   0x402430  AApply + 0x128 in ..\src\Main.m3
> 0xf7ffb4   0x42b56f  ThreadBase + 0x254 in ..\src\thread\WIN32\ThreadWin32.m3
> .........  .........  ... more frames ...
>  
>  
>  
> C:\cm3\Sandbox\cm3\m3-libs\m3core\tests\thread\NT386>threadtest.exe -verbose -tests read,nxread,tryexcept,fork,forktoomuch,lock @M3nogc
> Writing file...done
> Creating read threads...
>    read=0
>    read=1
>    read=2
> done
> Creating nxread threads...
>    nxread=3
>    nxread=4
>    nxread=5
> done
> Creating tryexcept threads...
>    tryexcept=6
>    tryexcept=7
>    tryexcept=8
> done
> Creating fork threads...
>    fork=9
>    fork=0
>    fork=11
> done
> Creating forktoomuch threads...
>    forktoomuch=12
>    forktoomuch=13
>    forktoomuch=14
> done
> Creating lock threads...
>    lock=21
>    lock=22
>    lock=23
> done
> running...printing oldest/median age/newest
> ..........laziest thread is 0/0/0 (tests: read 0/0/0 nxread 0/0/0 tryexcept 0/0/0 fork 0/0/0 forktoomuch 0/0/0 lock 0/0/0)
>    read Thread 0 completed 98 loops.
>    read Thread 1 completed 101 loops.
>    read Thread 2 completed 98 loops.
>    nxread Thread 3 completed 63 loops.
>    nxread Thread 4 completed 64 loops.
>    nxread Thread 5 completed 64 loops.
>    tryexcept Thread 6 completed 1106827 loops.
>    tryexcept Thread 7 completed 1056963 loops.
>    tryexcept Thread 8 completed 1124363 loops.
>    fork Thread 9 completed 3 loops.
>    fork Thread 10 completed 3 loops.
>    fork Thread 11 completed 3 loops.
>    forktoomuch Thread 12 completed 5 loops.
>    forktoomuch Thread 13 completed 5 loops.
>    forktoomuch Thread 14 completed 4 loops.
>    lock Thread 21 completed 902314 loops.
>    lock Thread 22 completed 873503 loops.
>    lock Thread 23 completed 946840 loops.
> ..........laziest thread is 0/0/0 (tests: read 0/0/0 nxread 0/0/0 tryexcept 0/0/0 fork 0/0/0 forktoomuch 0/0/0 lock 0/0/0)
>    read Thread 0 completed 108 loops.
>    read Thread 1 completed 105 loops.
>    read Thread 2 completed 108 loops.
>    nxread Thread 3 completed 68 loops.
>    nxread Thread 4 completed 70 loops.
>    nxread Thread 5 completed 67 loops.
>    tryexcept Thread 6 completed 1197135 loops.
>    tryexcept Thread 7 completed 1248635 loops.
>    tryexcept Thread 8 completed 1263743 loops.
>    fork Thread 9 completed 4 loops.
>    fork Thread 10 completed 4 loops.
>    fork Thread 11 completed 4 loops.
>    forktoomuch Thread 12 completed 6 loops.
>    forktoomuch Thread 13 completed 7 loops.
>    forktoomuch Thread 14 completed 7 loops.
>    lock Thread 21 completed 1156474 loops.
>    lock Thread 22 completed 1007509 loops.
>    lock Thread 23 completed 1072164 loops.
> ..........laziest thread is 0/0/0 (tests: read 0/0/0 nxread 0/0/0 tryexcept 0/0/0 fork 0/0/0 forktoomuch 0/0/0 lock 0/0/0)
>    read Thread 0 completed 91 loops.
>    read Thread 1 completed 101 loops.
>    read Thread 2 completed 99 loops.
>    nxread Thread 3 completed 67 loops.
>    nxread Thread 4 completed 63 loops.
>    nxread Thread 5 completed 64 loops.
>    tryexcept Thread 6 completed 1212286 loops.
>    tryexcept Thread 7 completed 1115613 loops.
>    tryexcept Thread 8 completed 1124737 loops.
>    fork Thread 9 completed 4 loops.
>    fork Thread 10 completed 5 loops.
>    fork Thread 11 completed 4 loops.
>    forktoomuch Thread 12 completed 8 loops.
>    forktoomuch Thread 13 completed 8 loops.
>    forktoomuch Thread 14 completed 7 loops.
>    lock Thread 21 completed 1058176 loops.
>    lock Thread 22 completed 979426 loops.
>    lock Thread 23 completed 1068972 loops.
> ..........laziest thread is 0/0/0 (tests: read 0/0/0 nxread 0/0/0 tryexcept 0/0/0 fork 0/0/0 forktoomuch 0/0/0 lock 0/0/0)
>    read Thread 0 completed 103 loops.
>    read Thread 1 completed 105 loops.
>    read Thread 2 completed 105 loops.
>    nxread Thread 3 completed 63 loops.
>    nxread Thread 4 completed 63 loops.
>    nxread Thread 5 completed 61 loops.
>    tryexcept Thread 6 completed 1132672 loops.
>    tryexcept Thread 7 completed 1186707 loops.
>    tryexcept Thread 8 completed 1136861 loops.
>    fork Thread 9 completed 4 loops.
>    fork Thread 10 completed 4 loops.
>    fork Thread 11 completed 4 loops.
>    forktoomuch Thread 12 completed 6 loops.
>    forktoomuch Thread 13 completed 6 loops.
>    forktoomuch Thread 14 completed 7 loops.
>    lock Thread 21 completed 794204 loops.
>    lock Thread 22 completed 1171670 loops.
>    lock Thread 23 completed 992164 loops.
> ..........laziest thread is 0/0/0 (tests: read 0/0/0 nxread 0/0/0 tryexcept 0/0/0 fork 0/0/0 forktoomuch 0/0/0 lock 0/0/0)
>    read Thread 0 completed 88 loops.
>    read Thread 1 completed 93 loops.
>    read Thread 2 completed 105 loops.
>    nxread Thread 3 completed 60 loops.
>    nxread Thread 4 completed 63 loops.
>    nxread Thread 5 completed 64 loops.
>    tryexcept Thread 6 completed 1213622 loops.
>    tryexcept Thread 7 completed 1169506 loops.
>    tryexcept Thread 8 completed 1220576 loops.
>    fork Thread 9 completed 3 loops.
>    fork Thread 10 completed 3 loops.
>    fork Thread 11 completed 3 loops.
>    forktoomuch Thread 12 completed 5 loops.
>    forktoomuch Thread 13 completed 6 loops.
>    forktoomuch Thread 14 completed 6 loops.
>    lock Thread 21 completed 947532 loops.
>    lock Thread 22 completed 1046220 loops.
>    lock Thread 23 completed 886815 loops.
> ..........laziest thread is 0/0/0 (tests: read 0/0/0 nxread 0/0/0 tryexcept 0/0/0 fork 0/0/0 forktoomuch 0/0/0 lock 0/0/0)
>    read Thread 0 completed 104 loops.
>    read Thread 1 completed 104 loops.
>    read Thread 2 completed 104 loops.
>    nxread Thread 3 completed 69 loops.
>    nxread Thread 4 completed 68 loops.
>    nxread Thread 5 completed 68 loops.
>    tryexcept Thread 6 completed 1225537 loops.
>    tryexcept Thread 7 completed 1158824 loops.
>    tryexcept Thread 8 completed 1185900 loops.
>    fork Thread 9 completed 4 loops.
>    fork Thread 10 completed 5 loops.
>    fork Thread 11 completed 4 loops.
>    forktoomuch Thread 12 completed 8 loops.
>    forktoomuch Thread 13 completed 7 loops.
>    forktoomuch Thread 14 completed 6 loops.
>    lock Thread 21 completed 1116802 loops.
>    lock Thread 22 completed 1028306 loops.
>    lock Thread 23 completed 1130454 loops.
> ..........laziest thread is 0/0/0 (tests: read 0/0/0 nxread 0/0/0 tryexcept 0/0/0 fork 0/0/0 forktoomuch 0/0/0 lock 0/0/0)
>    read Thread 0 completed 107 loops.
>    read Thread 1 completed 110 loops.
>    read Thread 2 completed 112 loops.
>    nxread Thread 3 completed 63 loops.
>    nxread Thread 4 completed 63 loops.
>    nxread Thread 5 completed 63 loops.
>    tryexcept Thread 6 completed 1156252 loops.
>    tryexcept Thread 7 completed 1094847 loops.
>    tryexcept Thread 8 completed 1199661 loops.
>    fork Thread 9 completed 3 loops.
>    fork Thread 10 completed 3 loops.
>    fork Thread 11 completed 4 loops.
>    forktoomuch Thread 12 completed 7 loops.
>    forktoomuch Thread 13 completed 7 loops.
>    forktoomuch Thread 14 completed 7 loops.
>    lock Thread 21 completed 746279 loops.
>    lock Thread 22 completed 1069667 loops.
>    lock Thread 23 completed 1045028 loops.
> ..........laziest thread is 0/0/0 (tests: read 0/0/0 nxread 0/0/0 tryexcept 0/0/0 fork 0/0/0 forktoomuch 0/0/0 lock 0/0/0)
>    read Thread 0 completed 98 loops.
>    read Thread 1 completed 99 loops.
>    read Thread 2 completed 96 loops.
>    nxread Thread 3 completed 64 loops.
>    nxread Thread 4 completed 60 loops.
>    nxread Thread 5 completed 63 loops.
>    tryexcept Thread 6 completed 1185205 loops.
>    tryexcept Thread 7 completed 1175381 loops.
>    tryexcept Thread 8 completed 1114031 loops.
>    fork Thread 9 completed 4 loops.
>    fork Thread 10 completed 5 loops.
>    fork Thread 11 completed 4 loops.
>    forktoomuch Thread 12 completed 6 loops.
>    forktoomuch Thread 13 completed 7 loops.
>    forktoomuch Thread 14 completed 6 loops.
>    lock Thread 21 completed 1053691 loops.
>    lock Thread 22 completed 1009143 loops.
>    lock Thread 23 completed 966082 loops.
> ..........laziest thread is 0/0/0 (tests: read 0/0/0 nxread 0/0/0 tryexcept 0/0/0 fork 0/0/0 forktoomuch 0/0/0 lock 0/0/0)
>    read Thread 0 completed 111 loops.
>    read Thread 1 completed 110 loops.
>    read Thread 2 completed 101 loops.
>    nxread Thread 3 completed 64 loops.
>    nxread Thread 4 completed 65 loops.
>    nxread Thread 5 completed 64 loops.
>    tryexcept Thread 6 completed 1130609 loops.
>    tryexcept Thread 7 completed 1160042 loops.
>    tryexcept Thread 8 completed 1110365 loops.
>    fork Thread 9 completed 4 loops.
>    fork Thread 10 completed 4 loops.
>    fork Thread 11 completed 5 loops.
>    forktoomuch Thread 12 completed 7 loops.
>    forktoomuch Thread 13 completed 7 loops.
>    forktoomuch Thread 14 completed 7 loops.
>    lock Thread 21 completed 682298 loops.
>    lock Thread 22 completed 1124977 loops.
>    lock Thread 23 completed 960154 loops.
> ..........laziest thread is 0/0/0 (tests: read 0/0/0 nxread 0/0/0 tryexcept 0/0/0 fork 0/0/0 forktoomuch 0/0/0 lock 0/0/0)
>    read Thread 0 completed 62 loops.
>    read Thread 1 completed 65 loops.
>    read Thread 2 completed 62 loops.
>    nxread Thread 3 completed 45 loops.
>    nxread Thread 4 completed 42 loops.
>    nxread Thread 5 completed 42 loops.
>    tryexcept Thread 6 completed 1569234 loops.
>    tryexcept Thread 7 completed 1553679 loops.
>    tryexcept Thread 8 completed 1511503 loops.
>    fork Thread 9 completed 1 loops.
>    fork Thread 10 completed 2 loops.
>    fork Thread 11 completed 2 loops.
>    forktoomuch Thread 12 completed 4 loops.
>    forktoomuch Thread 13 completed 4 loops.
>    forktoomuch Thread 14 completed 4 loops.
>    lock Thread 21 completed 1311441 loops.
>    lock Thread 22 completed 1309196 loops.
>    lock Thread 23 completed 1418347 loops.
> All tests complete.  Congratulations.
>  
> C:\cm3\Sandbox\cm3\m3-libs\m3core\tests\thread\NT386>
>  
> Regards,
> Randy Coleburn

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20110316/40c031b5/attachment-0002.html>


More information about the M3devel mailing list