osbench, windows CE 4.1
From: Mariam (anonymous_at_discussions.microsoft.com)
Date: 05/30/04
- Next message: Steve Maillet \(eMVP\): "Re: QFEs for Emulator?"
- Previous message: msnews.microsoft.com: "Re: How to find address of OEMAddressTable?"
- Next in thread: Mariam: "Re: osbench, windows CE 4.1"
- Reply: Mariam: "Re: osbench, windows CE 4.1"
- Messages sorted by: [ date ] [ thread ]
Date: Sun, 30 May 2004 01:04:59 -0700
Hi all,
I am using windows CE 4.1, and I ported the OS to an ARM9 based platform.
I am facing a problem with the OSBENCH program. The program, gives me
really crazy results. The results I got for the first test is copied below-
******************************************************************************
| 0.00 | IP = NO | CS = NO | 1 IPS
-------------------------------------------------------------------
EnterCriticalSection traditional (blocking) with priority inversion : Time
from a lower priority thread calling LeaveCS to a higher priority thread
unblocking from the EnterCS call
| Max Time = 4294823.666 us
| Min Time = 1833.470 us
| Avg Time = 111.586 us
******************************************************************************
As I understand, the problem is caused by OB_PrintResults routine in
osbench.c The line which causes the trouble is the 'dwtime' calculation
line.
dwTime = (DWORD) (g_pBuffer->liPerf2[i].QuadPart -
g_pBuffer->liPerf1[i].QuadPart);
When the value computed is negative, (In the first test, the second value
is always bigger than the first) it results in a typecast problem (DWORD
is unsigned), and I get a big unsigned value as the result. Just to
confirm that my basic routines are correct- the QueryperformanceCounter
returns the no. of clockticks till the moment it is called, and
QueryPerformanceFrequency returns the frequency of counter clock (which in
my case is my Timer).
So how can I get rid of this problem? I tried copying the entire stuff to
my platform directory and rebuilding it. It works, but blocks at the first
inter-process test (It works till Event-intra process. The next test is
Event-inter process, and it blocks there. I tried swapping the tests and
confirmed that blocking occurs at the inter-process tests). I have never
modified any static libraries which is included by the build system. How
can I modify the OSBENCH program? Or Am I in a completely wrong track.
Please advice.
Thank you,
Mariam.
PS: Attached below is my new results. If any of you have run it on an ARM
platform, please let me know whether they are good enough for an ARM 922
processor running at 200MHz?
******************************************************************************
SYSTEM BUILD INFO
PLATFORM = PROCESSOR = ARMV4I
CONFIG = TEST2
RET/DEBUG = debug
BUILD DATE = May 28 2004 @ (15:58:21)
-------------------------------------------------------------------
PERFORMANCE COUNTER INFO
Counter Frequency = 100000000 Hz
Counter tick interval = 10 ns
QPC() call overhead = 6.280 usecs
-------------------------------------------------------------------
RUNTIME OPTIONS
NUmber of samples per test = 5
===================================================================
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
===================================================================
| 0.00 | IP = NO | CS = NO | 1 IPS
-------------------------------------------------------------------
EnterCriticalSection traditional (blocking) with priority inversion :Time
from a lower priority thread calling LeaveCS to a higher priority thread
unblocking from the EnterCS call
-------------------------------------------------------------------
| Max Time = 151.560 us
| Min Time = 133.120 us
| Avg Time = 138.685 us
===================================================================
===================================================================
| 0.01 | IP = NO | CS = NO | 1 IPS
-------------------------------------------------------------------
EnterCriticalSection traditional (blocking) without priority inversion
:Time from a higher priority thread calling EnterCS (blocked) to a lower
priority runnable thread getting run
-------------------------------------------------------------------
| Max Time = 163.610 us
| Min Time = 149.310 us
| Avg Time = 155.230 us
===================================================================
===================================================================
| 0.02 | IP = NO | CS = NO | 1000 IPS
-------------------------------------------------------------------
EnterCriticalSection fastpath (uncontested)
-------------------------------------------------------------------
| Subtracting out base result of -18242 ticks
| Max Time = 0.000 us
| Min Time = 0.000 us
| Avg Time = 0.000 us
===================================================================
===================================================================
| 0.03 | IP = NO | CS = NO | 1000 IPS
-------------------------------------------------------------------
LeaveCriticalSection fastpath (uncontested)
-------------------------------------------------------------------
| Subtracting out base result of -18322 ticks
| Max Time = 0.000 us
| Min Time = 0.000 us
| Avg Time = 0.000 us
===================================================================
===================================================================
| 0.00 | IP = NO | CS = YES | 1 IPS
: -------------------------------------------------------------------
EnterCriticalSection traditional (blocking) with priority inversion :Time
from a lower priority thread calling LeaveCS to a higher priority thread
unblocking from the EnterCS call
-------------------------------------------------------------------
| Max Time = 1796.270 us
| Min Time = 175.940 us
| Avg Time = 1388.557 us
===================================================================
===================================================================
| 0.01 | IP = NO | CS = YES | 1 IPS
-------------------------------------------------------------------
EnterCriticalSection traditional (blocking) without priority inversion
:Time from a higher priority thread calling EnterCS (blocked) to a lower
priority runnable thread getting run
-------------------------------------------------------------------
| Max Time = 191.540 us
| Min Time = 188.600 us
| Avg Time = 189.397 us
===================================================================
===================================================================
| 1.00 | IP = NO | CS = NO | 1 IPS
-------------------------------------------------------------------
Semaphore signalling intra-process :Time from a lower priority thread
calling ReleaseSemaphore to a higher priority
thread in the same process unblocking from a WaitForSingleObject call
-------------------------------------------------------------------
| Max Time = 127.340 us
| Min Time = 115.590 us
| Avg Time = 120.277 us
===================================================================
******************************************************************************
- Next message: Steve Maillet \(eMVP\): "Re: QFEs for Emulator?"
- Previous message: msnews.microsoft.com: "Re: How to find address of OEMAddressTable?"
- Next in thread: Mariam: "Re: osbench, windows CE 4.1"
- Reply: Mariam: "Re: osbench, windows CE 4.1"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|
|