Re: osbench, windows CE 4.1
From: Mariam (dcsmrg_at_nus.edu.sg)
Date: 05/31/04
- Next message: Rick Seo: "Help~"
- Previous message: Jack: "About PPPOE issue."
- In reply to: Mariam: "osbench, windows CE 4.1"
- Messages sorted by: [ date ] [ thread ]
Date: Sun, 30 May 2004 19:31:35 -0700
After struggling a bit, I figured out how to get around my problems. But I
would very much appreciate if some one can confirm the correctness of the
dwtime calculation step in OB_PrintResults routine.
dwTime = (DWORD) (g_pBuffer->liPerf2[i].QuadPart -
g_pBuffer->liPerf1i].QuadPart);
This value can be negative (if QueryPerformance counter returns the number
of counter ticks till that moment). So I think the above line of code need
to take the sign into consideration. Or Am I totally wrong?
Since I need to get the benchmarking results of WinCE running on my
platform, I would be very grateful if any of you can clarify my doubt.
Thank you,
With best regards,
Mariam.
Mariam wrote:
> 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: Rick Seo: "Help~"
- Previous message: Jack: "About PPPOE issue."
- In reply to: Mariam: "osbench, windows CE 4.1"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|
|