Board: ARM PID Evaluation Board CPU : ARM 7TDMI 20 MHz Startup, main stack : stack used 404 size 2400 Startup : Interrupt stack used 136 size 4096 Startup : Idlethread stack used 84 size 2048 eCos Kernel Timings Notes: all times are in microseconds (.000001) unless otherwise stated Reading the hardware clock takes 6 'ticks' overhead ... this value will be factored out of all other measurements Clock interrupt took 120.74 microseconds (150 raw clock ticks) Testing parameters: Clock samples: 32 Threads: 50 Thread switches: 128 Mutexes: 32 Mailboxes: 32 Semaphores: 32 Scheduler operations: 128 Counters: 32 Alarms: 32 Confidence Ave Min Max Var Ave Min Function ====== ====== ====== ====== ========== ======== 99.01 68.00 129.60 15.62 50% 26% Create thread 21.60 21.60 21.60 0.00 100% 100% Yield thread [all suspended] 15.65 15.20 16.00 0.39 56% 44% Suspend [suspended] thread 15.79 15.20 16.00 0.31 74% 26% Resume thread 23.65 23.20 24.00 0.39 56% 44% Set priority 2.26 1.60 2.40 0.24 82% 18% Get priority 51.39 51.20 52.00 0.29 76% 76% Kill [suspended] thread 21.60 21.60 21.60 0.00 100% 100% Yield [no other] thread 29.47 28.00 29.60 0.22 86% 2% Resume [suspended low prio] thread 15.60 15.20 16.00 0.40 100% 50% Resume [runnable low prio] thread 27.73 24.00 28.00 0.40 74% 2% Suspend [runnable] thread 21.60 21.60 21.60 0.00 100% 100% Yield [only low prio] thread 15.65 15.20 16.00 0.39 56% 44% Suspend [runnable->not runnable] 51.39 51.20 52.00 0.29 76% 76% Kill [runnable] thread 27.66 27.20 28.80 0.41 54% 44% Destroy [dead] thread 68.93 64.80 69.60 0.35 72% 2% Destroy [runnable] thread 91.26 90.40 107.20 0.64 66% 32% Resume [high priority] thread 49.14 48.80 49.60 0.39 57% 57% Thread switch 2.20 1.60 2.40 0.30 75% 25% Scheduler lock 10.20 9.60 10.40 0.30 75% 25% Scheduler unlock [0 threads] 10.20 9.60 10.40 0.30 75% 25% Scheduler unlock [1 suspended] 10.20 9.60 10.40 0.30 75% 25% Scheduler unlock [many suspended] 10.20 9.60 10.40 0.30 75% 25% Scheduler unlock [many low prio] 6.85 6.40 7.20 0.39 56% 43% Init mutex 18.40 18.40 18.40 0.00 100% 100% Lock [unlocked] mutex 19.57 19.20 20.00 0.40 53% 53% Unlock [locked] mutex 16.55 16.00 16.80 0.34 68% 31% Trylock [unlocked] mutex 14.55 14.40 15.20 0.24 81% 81% Trylock [locked] mutex 3.55 3.20 4.00 0.39 56% 56% Destroy mutex 119.85 119.20 120.00 0.24 81% 18% Unlock/Lock mutex 12.85 12.80 13.60 0.09 93% 93% Create mbox 1.65 1.60 2.40 0.09 93% 93% Peek [empty] mbox 20.70 20.00 20.80 0.17 87% 12% Put [first] mbox 1.65 1.60 2.40 0.09 93% 93% Peek [1 msg] mbox 20.70 20.00 20.80 0.17 87% 12% Put [second] mbox 1.65 1.60 2.40 0.09 93% 93% Peek [2 msgs] mbox 20.85 20.80 21.60 0.09 93% 93% Get [first] mbox 20.85 20.80 21.60 0.09 93% 93% Get [second] mbox 19.90 19.20 20.00 0.17 87% 12% Tryput [first] mbox 17.60 17.60 17.60 0.00 100% 100% Peek item [non-empty] mbox 20.90 20.80 21.60 0.17 87% 87% Tryget [non-empty] mbox 16.80 16.80 16.80 0.00 100% 100% Peek item [empty] mbox 17.65 17.60 18.40 0.09 93% 93% Tryget [empty] mbox 1.85 1.60 2.40 0.34 68% 68% Waiting to get mbox 1.85 1.60 2.40 0.34 68% 68% Waiting to put mbox 19.40 19.20 20.00 0.30 75% 75% Delete mbox 65.05 64.80 65.60 0.34 68% 68% Put/Get mbox 7.05 6.40 7.20 0.24 81% 18% Init semaphore 15.55 15.20 16.00 0.39 56% 56% Post [0] semaphore 17.35 16.80 17.60 0.34 68% 31% Wait [1] semaphore 14.60 14.40 15.20 0.30 75% 75% Trywait [0] semaphore 14.20 13.60 14.40 0.30 75% 25% Trywait [1] semaphore 4.55 4.00 4.80 0.34 68% 31% Peek semaphore 3.75 3.20 4.00 0.34 68% 31% Destroy semaphore 70.85 70.40 71.20 0.39 56% 43% Post/Wait semaphore 6.05 5.60 6.40 0.39 56% 43% Create counter 2.25 1.60 2.40 0.24 81% 18% Get counter value 2.25 1.60 2.40 0.24 81% 18% Set counter value 19.70 19.20 20.00 0.37 62% 37% Tick counter 3.45 3.20 4.00 0.34 68% 68% Delete counter 9.05 8.80 9.60 0.34 68% 68% Create alarm 29.60 29.60 29.60 0.00 100% 100% Initialize alarm 2.15 1.60 2.40 0.34 68% 31% Disable alarm 29.35 28.80 29.60 0.34 68% 31% Enable alarm 5.10 4.80 5.60 0.37 62% 62% Delete alarm 23.20 23.20 23.20 0.00 100% 100% Tick counter [1 alarm] 138.00 137.60 138.40 0.40 100% 50% Tick counter [many alarms] 40.40 40.00 40.80 0.40 100% 50% Tick & fire counter [1 alarm] 704.25 697.60 804.00 12.47 93% 93% Tick & fire counters [>1 together] 155.20 155.20 155.20 0.00 100% 100% Tick & fire counters [>1 separately] 105.20 104.80 151.20 0.76 99% 94% Alarm latency [0 threads] 117.57 104.80 149.60 7.13 57% 25% Alarm latency [2 threads] 117.49 104.80 148.80 7.10 58% 26% Alarm latency [many threads] 192.59 177.60 316.00 1.93 98% 0% Alarm -> thread resume latency 22.10 21.60 24.00 0.00 Clock/interrupt latency 38.69 32.80 61.60 0.00 Clock DSR latency 297 276 316 (main stack: 752) Thread stack used (1120 total) All done, main stack : stack used 752 size 2400 All done : Interrupt stack used 288 size 4096 All done : Idlethread stack used 272 size 2048 Timing complete - 30350 ms total PASS:<Basic timing OK> EXIT:<done> |
Board: ARM PID Evaluation Board CPU : ARM 920T 20 MHz Startup, main stack : stack used 404 size 2400 Startup : Interrupt stack used 136 size 4096 Startup : Idlethread stack used 84 size 2048 eCos Kernel Timings Notes: all times are in microseconds (.000001) unless otherwise stated Reading the hardware clock takes 15 'ticks' overhead ... this value will be factored out of all other measurements Clock interrupt took 291.41 microseconds (364 raw clock ticks) Testing parameters: Clock samples: 32 Threads: 50 Thread switches: 128 Mutexes: 32 Mailboxes: 32 Semaphores: 32 Scheduler operations: 128 Counters: 32 Alarms: 32 Confidence Ave Min Max Var Ave Min Function ====== ====== ====== ====== ========== ======== 257.78 168.00 568.00 48.70 56% 28% Create thread 50.21 49.60 50.40 0.29 76% 24% Yield thread [all suspended] 36.26 36.00 36.80 0.35 68% 68% Suspend [suspended] thread 37.20 36.80 37.60 0.40 100% 50% Resume thread 56.24 56.00 56.80 0.34 70% 70% Set priority 5.20 4.80 5.60 0.40 100% 50% Get priority 122.75 122.40 123.20 0.39 56% 56% Kill [suspended] thread 50.19 49.60 50.40 0.31 74% 26% Yield [no other] thread 69.49 66.40 69.60 0.21 92% 2% Resume [suspended low prio] thread 37.01 36.80 37.60 0.31 74% 74% Resume [runnable low prio] thread 64.75 55.20 65.60 0.38 80% 2% Suspend [runnable] thread 50.19 49.60 50.40 0.31 74% 26% Yield [only low prio] thread 36.24 36.00 36.80 0.34 70% 70% Suspend [runnable->not runnable] 122.75 122.40 123.20 0.39 56% 56% Kill [runnable] thread 67.76 67.20 68.00 0.34 70% 30% Destroy [dead] thread 167.07 158.40 168.00 0.35 92% 2% Destroy [runnable] thread 213.49 212.00 249.60 1.46 84% 90% Resume [high priority] thread 122.81 120.00 389.60 4.17 99% 99% Thread switch 4.70 4.00 4.80 0.17 87% 12% Scheduler lock 23.70 23.20 24.00 0.37 62% 37% Scheduler unlock [0 threads] 23.60 23.20 24.00 0.40 100% 50% Scheduler unlock [1 suspended] 23.70 23.20 24.00 0.37 62% 37% Scheduler unlock [many suspended] 23.60 23.20 24.00 0.40 100% 50% Scheduler unlock [many low prio] 15.65 15.20 16.00 0.39 56% 43% Init mutex 42.40 42.40 42.40 0.00 100% 100% Lock [unlocked] mutex 45.37 44.80 46.40 0.36 65% 31% Unlock [locked] mutex 39.20 39.20 39.20 0.00 100% 100% Trylock [unlocked] mutex 34.45 34.40 35.20 0.09 93% 93% Trylock [locked] mutex 8.00 8.00 8.00 0.00 100% 100% Destroy mutex 284.42 284.00 284.80 0.40 53% 46% Unlock/Lock mutex 29.40 28.80 29.60 0.30 75% 25% Create mbox 3.35 3.20 4.00 0.24 81% 81% Peek [empty] mbox 49.35 48.80 49.60 0.34 68% 31% Put [first] mbox 3.35 3.20 4.00 0.24 81% 81% Peek [1 msg] mbox 49.35 48.80 49.60 0.34 68% 31% Put [second] mbox 3.35 3.20 4.00 0.24 81% 81% Peek [2 msgs] mbox 49.15 48.80 49.60 0.39 56% 56% Get [first] mbox 49.15 48.80 49.60 0.39 56% 56% Get [second] mbox 47.80 47.20 48.00 0.30 75% 25% Tryput [first] mbox 41.40 40.80 41.60 0.30 75% 25% Peek item [non-empty] mbox 49.40 48.80 49.60 0.30 75% 25% Tryget [non-empty] mbox 40.15 40.00 40.80 0.24 81% 81% Peek item [empty] mbox 40.95 40.80 41.60 0.24 81% 81% Tryget [empty] mbox 4.05 4.00 4.80 0.09 93% 93% Waiting to get mbox 4.05 4.00 4.80 0.09 93% 93% Waiting to put mbox 45.60 45.60 45.60 0.00 100% 100% Delete mbox 153.27 152.80 153.60 0.39 59% 40% Put/Get mbox 16.80 16.80 16.80 0.00 100% 100% Init semaphore 36.60 36.00 36.80 0.30 75% 25% Post [0] semaphore 39.60 39.20 40.00 0.40 100% 50% Wait [1] semaphore 34.80 34.40 35.20 0.40 100% 50% Trywait [0] semaphore 33.35 32.80 33.60 0.34 68% 31% Trywait [1] semaphore 10.30 9.60 10.40 0.17 87% 12% Peek semaphore 8.80 8.80 8.80 0.00 100% 100% Destroy semaphore 166.92 166.40 167.20 0.36 65% 34% Post/Wait semaphore 13.60 13.60 13.60 0.00 100% 100% Create counter 4.85 4.80 5.60 0.09 93% 93% Get counter value 4.80 4.80 4.80 0.00 100% 100% Set counter value 45.25 44.80 45.60 0.39 56% 43% Tick counter 7.75 7.20 8.00 0.34 68% 31% Delete counter 20.80 20.80 20.80 0.00 100% 100% Create alarm 69.30 68.80 69.60 0.37 62% 37% Initialize alarm 4.80 4.80 4.80 0.00 100% 100% Disable alarm 67.35 67.20 68.00 0.24 81% 81% Enable alarm 11.80 11.20 12.00 0.30 75% 25% Delete alarm 54.80 54.40 55.20 0.40 100% 50% Tick counter [1 alarm] 372.35 363.20 652.80 17.53 96% 96% Tick counter [many alarms] 95.50 95.20 96.00 0.37 62% 62% Tick & fire counter [1 alarm] 1757.92 1707.20 1996.80 81.43 81% 81% Tick & fire counters [>1 together] 404.37 404.00 404.80 0.40 53% 53% Tick & fire counters [>1 separately] 256.57 254.40 395.20 2.17 98% 97% Alarm latency [0 threads] 296.60 255.20 359.20 23.53 53% 31% Alarm latency [2 threads] 307.49 265.60 357.60 27.52 53% 53% Alarm latency [many threads] 467.04 432.00 788.80 5.03 97% 1% Alarm -> thread resume latency 55.63 54.40 60.80 0.00 Clock/interrupt latency 101.23 80.80 1433.60 0.00 Clock DSR latency 316 316 316 (main stack: 752) Thread stack used (1120 total) All done, main stack : stack used 752 size 2400 All done : Interrupt stack used 288 size 4096 All done : Idlethread stack used 272 size 2048 Timing complete - 30780 ms total PASS:<Basic timing OK> EXIT:<done> |