[M3devel] thread testing program in CM3

Coleburn, Randy rcolebur at SCIRES.COM
Tue Jan 11 20:39:28 CET 2011


Thought I would give Mika's test program a try on Windows7, but ran into a glitch.
I first tried updating everything from HEAD and rebuilding.  During 2nd stage of rebuild, I get a failure on creating the DLL for m3core.  See below.  Jay, any ideas on what is wrong?
--Randy

Microsoft (R) Incremental Linker Version 10.00.30319.01
Copyright (C) Microsoft Corporation.  All rights reserved.

-nodefaultlib 
-debug 
-incremental:no 
-opt:ref 
-delayload:ws2_32.dll 
-delayload:advapi32.dll 
-delayload:gdi32.dll 
-delayload:netapi32.dll 
-delayload:user32.dll 
-delayload:comctl32.dll 
-delayload:rpcrt4.dll 
-delayload:iphlpapid.dll 
delayimp.lib 
-def:m3core.def 
-dll 
-out:m3core.dll 
hand.obj 
dtoa.obj 
libgcc.obj 
RTHooks.io 
RTHooks.mo 
RT0.io 
RT0.mo 
RuntimeError.io 
RuntimeError.mo 
Compiler.io 
Compiler.mo 
RTAllocator.io 
RTAllocator.mo 
RTAllocCnts.io 
RTAllocStats.io 
RTAllocStats.mo 
RTHeap.io 
RTHeap.mo 
RTHeapInfo.io 
RTHeapInfo.mo 
RTHeapMap.io 
RTHeapMap.mo 
RTHeapRep.io 
RTHeapRep.mo 
RTHeapStats.io 
RTHeapStats.mo 
RTCollector.io 
RTCollector.mo 
RTCollectorSRC.io 
RTWeakRef.io 
RTIO.io 
RTIO.mo 
RTIOc.obj 
RTLinkerX.io 
RTLinker.io 
RTLinker.mo 
RTLinkerC.obj 
RTDebug.io 
RTDebug.mo 
RTDebugC.obj 
RTError.io 
RTError.mo 
RTException.io 
RTException.mo 
RTMapOp.io 
RTMapOp.mo 
RTMisc.io 
RTMisc.mo 
RTMiscC.obj 
RTModule.io 
RTPacking.io 
RTPacking.mo 
RTParams.io 
RTParams.mo 
RTProcedure.io 
RTProcedure.mo 
RTProcess.io 
RTProcess.mo 
RTProcessC.obj 
RTThread.io 
RTTipe.io 
RTTipe.mo 
RTType.io 
RTType.mo 
RTTypeFP.io 
RTTypeFP.mo 
RTTypeMap.io 
RTTypeMap.mo 
RTutils.io 
RTutils.mo 
RTHeapDebug.io 
RTHeapDebug.mo 
RTArgs.io 
RTHeapEvent.io 
RTProcedureSRC.io 
RTSignal.io 
RTStack.io 
RTTypeSRC.io 
RTOS.io 
RTMachine.io 
RTArgs.mo 
RTOS.mo 
RTPerfTool.io 
RTPerfTool.mo 
RTOSc.obj 
RTSignal.mo 
RTMachInfo.io 
RTMachInfo.mo 
RTExFrame.mo 
RTStackC.obj 
Thread.io 
ThreadF.io 
Scheduler.io 
ThreadDebug.io 
ThreadDebug.obj 
MutexRep.io 
ThreadEvent.io 
ThreadContext.io 
ThreadWin32.io 
ThreadWin32.mo 
ThreadWin32C.obj 
WinBaseTypes.io 
WinDef.io 
WinDef.mo 
WinNT.io 
WinNT.mo 
WinNTc.obj 
WinError.io 
WinBase.io 
WinCon.io 
WinGDI.io 
WinGDI.mo 
WinIoctl.io 
WinIoctl.mo 
WinNetwk.io 
WinNLS.io 
WinReg.io 
WinReg.mo 
WinSock.io 
WinSock.mo 
WinUser.io 
WinUser.mo 
WinUserC.obj 
WinVer.io 
WinVer.mo 
NB30.io 
NB30.mo 
CDErr.io 
CommDlg.io 
TlHelp32.io 
WinMidi.io 
WinCommCtrl.io 
WinTabCon.io 
WinTabCon.mo 
WinListView.io 
WinListView.mo 
WinImageList.io 
WinImageList.mo 
UtimeC.obj 
UnixC.obj 
UnixLink.obj 
Uexec.io 
Uexec.obj 
Unetdb.io 
Unetdb.obj 
Umman.obj 
Ugrp.io 
Ugrp.obj 
Uin.obj 
Uugid.obj 
Uuio.obj 
Uutmp.obj 
Usignal.obj 
Upwd.obj 
Uprocess.obj 
Usignal.io 
Uconstants.obj 
Uutmp.io 
Umman.io 
Uuio.io 
Upwd.io 
Uugid.io 
Uprocess.io 
Unix.io 
Unix.mo 
Utime.io 
Utypes.io 
Uerror.io 
Usched.io 
Usocket.io 
Usocket.obj 
Ustat.io 
Udir.io 
UdirC.obj 
Uin.io 
Cerrno.io 
Cstddef.io 
Cstdint.io 
Cstdlib.io 
CstdlibC.obj 
Ctypes.io 
M3toC.io 
M3toC.mo 
CerrnoC.obj 
Cstring.io 
CstringC.obj 
Cstdio.io 
CstdioC.obj 
Csignal.io 
CsignalC.obj 
Csetjmp.io 
BasicCtypes.io 
RealFloat.io 
LongFloat.io 
ExtendedFloat.io 
IEEESpecial.io 
IEEESpecial.mo 
Real.mo 
LongReal.mo 
Extended.mo 
DragonInt.io 
DragonInt.mo 
DragonT.io 
DragonT.mo 
Real.io 
LongReal.io 
Extended.io 
RealFloat.mo 
LongFloat.mo 
ExtendedFloat.mo 
RealRep.io 
LongRealRep.io 
FPU.io 
FPU.mo 
FloatMode.io 
FloatMode.mo 
Time.io 
Tick.io 
Date.io 
FmtTime.io 
FmtTime.mo 
TickPortable.mo 
Time.mo 
TimeWin32.io 
TimeWin32.mo 
DateWin32.mo 
CConvert.io 
CConvert.mo 
Convert.io 
Convert.mo 
String8.io 
String8.mo 
String16.io 
String16.mo 
Text.io 
Text.mo 
TextClass.io 
TextClass.mo 
TextLiteral.io 
TextLiteral.mo 
Text8.io 
Text8.mo 
Text8Short.io 
Text8Short.mo 
Text8CString.io 
Text8CString.mo 
Text16.io 
Text16.mo 
Text16Short.io 
Text16Short.mo 
TextSub.io 
TextSub.mo 
TextCat.io 
TextCat.mo 
TextConv.io 
TextConv.mo 
Fingerprint.io 
Fingerprint.mo 
Poly.io 
Poly.mo 
PolyBasis.io 
PolyBasis.mo 
Main.io 
WeakRef.io 
WeakRef.mo 
WordRep.io 
Word.io 
LongRep.io 
Long.io 
Word.mo 
Long.mo 
Boolean.io 
Boolean.mo 
Char.io 
Char.mo 
Int32.io 
Int32.mo 
Int64.io 
Int64.mo 
Integer.io 
Integer.mo 
Longint.io 
Longint.mo 
Refany.io 
Refany.mo 
ASCII.io 
ASCII.mo 
WideChar.io 
WideChar.mo 
Unicode.io 
Unicode.mo 
Address.io 
Address.mo 
iphlpapi.lib 
rpcrt4.lib 
winspool.lib 
comctl32.lib 
ws2_32.lib 
comdlg32.lib 
netapi32.lib 
gdi32.lib 
user32.lib 
advapi32.lib 
kernel32.lib 
msvcrt.lib 
   Creating library m3core.lib and object m3core.exp
LINK : warning LNK4199: /DELAYLOAD:advapi32.dll ignored; no imports found from advapi32.dll
LINK : warning LNK4199: /DELAYLOAD:netapi32.dll ignored; no imports found from netapi32.dll
LINK : warning LNK4199: /DELAYLOAD:rpcrt4.dll ignored; no imports found from rpcrt4.dll
LINK : warning LNK4199: /DELAYLOAD:iphlpapid.dll ignored; no imports found from iphlpapid.dll
RuntimeError.mo : error LNK2001: unresolved external symbol __alloca
m3core.dll : fatal error LNK1120: 1 unresolved externals

-----Original Message-----
From: Mika Nystrom [mailto:mika at async.caltech.edu] 
Sent: Tuesday, January 11, 2011 10:54 AM
To: m3devel at elegosoft.com
Cc: jkrell at elego.de
Subject: [M3devel] thread testing program in CM3

Hi again,

I added the thread "stress tester" to the CM3 repository in the following
location:

m3-libs/m3core/tests/thread

It no longer takes any command-line arguments, and now it prints friendly
diagnostics.

On FreeBSD4 under PM3, I see the following output:

(82)pluto:~/t/threadtest/src>../FreeBSD4/threadtest 
Writing file...done
Creating reader threads...done
Creating forker threads...done
Creating allocator threads...done
running...
laziest thread is 1294760062 seconds behind
laziest thread is 11 seconds behind
laziest thread is 9 seconds behind
laziest thread is 9 seconds behind
laziest thread is 9 seconds behind
laziest thread is 9 seconds behind
laziest thread is 8 seconds behind
laziest thread is 10 seconds behind
laziest thread is 7 seconds behind
laziest thread is 8 seconds behind
(83)pluto:~/t/threadtest/src>m3build -version
m3build: PM3 Version 1.1.15 (Tue Sep  5 17:16:07 EDT 2000)
(84)pluto:~/t/threadtest/src>uname -a
FreeBSD pluto.gcapltd.com 5.5-RELEASE FreeBSD 5.5-RELEASE #0: Mon Sep 24 13:34:44 CDT 2007     root at pluto.gcapltd.com:/usr/src/sys/i386/compile/PLUTO  i386


10 seconds is about right for 100 threads and a 0.1-second time 
quantum (if memory serves, that's what PM3 user threads use?)

    Mika



More information about the M3devel mailing list