[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