Topics

Help for tests/benchmark/latency_measure run failed on Arduino Due board.


Rodger Lin
 

I built the test code at "tests/benchmark/latency_measure/microkernel" . It runs well using the qemu mode.
I want to try it on Arduino Due board, built it using:

make TEST=max BOARD=arduino_due

After the program runs on the Arduino Due board. I got the "failure" with some error items. Here is the result:

|-----------------------------------------------------------------------------|

| Nanokernel Latency Benchmark |

|-----------------------------------------------------------------------------|

| tcs = timer clock cycles: 1 tcs is 11 nsec |

|-----------------------------------------------------------------------------|

| 1- Measure time to switch from fiber to ISR execution |

| switching time is 156 tcs = 1857 nsec |

|-----------------------------------------------------------------------------|

| 2- Measure time to switch from ISR back to interrupted fiber |

| switching time is 117 tcs = 1392 nsec |

|-----------------------------------------------------------------------------|

| 3- Measure time from ISR to executing a different fiber (rescheduled) |

| switching time is 367 tcs = 4369 nsec |

|-----------------------------------------------------------------------------|

| 4- Measure average context switch time between fibers |

| Error: tick occurred |

|-----------------------------------------------------------------------------|

| 5- Measure average time to lock then unlock interrupts |

| Error: tick occurred |

|-----------------------------------------------------------------------------|

|-----------------------------------------------------------------------------|

| Microkernel Latency Benchmark |

|-----------------------------------------------------------------------------|

| tcs = timer clock cycles: 1 tcs is 11 nsec |

|-----------------------------------------------------------------------------|

| 1- Measure time to switch from ISR to back to interrupted task |

| switching time is 119 tcs = 1416 nsec |

|-----------------------------------------------------------------------------|

| 2- Measure time from ISR to executing a different task (rescheduled) |

| switch time is 694 tcs = 8261 nsec |

|-----------------------------------------------------------------------------|

| 3- Measure average time to signal a sema then test that sema |

| Average semaphore signal time 0 tcs = 0 nsec |

| Average semaphore test time 0 tcs = 0 nsec |

|-----------------------------------------------------------------------------|

| 4- Measure average time to lock a mutex then unlock that mutex |

| Average time to lock the mutex 504056 tcs = 6000668 nsec |

| Average time to unlock the mutex 587911 tcs = 6998948 nsec |

|-----------------------------------------------------------------------------|

| 5- Measure average context switch time between tasks using (task_yield) |

| Error: tick occurred |

|-----------------------------------------------------------------------------|

| E N D |

|-----------------------------------------------------------------------------|

===================================================================

PROJECT EXECUTION FAILED


Li, Min A <min.a.li@...>
 

Hi Rodger,

You can first have a try without "TEST=max" option. Besides this, gdb can be used to debug this issue after disabled the other successful indicators.


Regards
Min

-----Original Message-----
From: Rodger Lin [mailto:caritas(a)163.com]
Sent: Monday, March 28, 2016 2:40 PM
To: devel(a)lists.zephyrproject.org
Subject: [devel] Help for tests/benchmark/latency_measure run failed on Arduino Due board.

I built the test code at "tests/benchmark/latency_measure/microkernel" . It runs well using the qemu mode.
I want to try it on Arduino Due board, built it using:

make TEST=max BOARD=arduino_due

After the program runs on the Arduino Due board. I got the "failure" with some error items. Here is the result:

|-----------------------------------------------------------------------------|

| Nanokernel Latency Benchmark |

|-----------------------------------------------------------------------------|

| tcs = timer clock cycles: 1 tcs is 11 nsec |

|-----------------------------------------------------------------------------|

| 1- Measure time to switch from fiber to ISR execution |

| switching time is 156 tcs = 1857 nsec |

|-----------------------------------------------------------------------------|

| 2- Measure time to switch from ISR back to interrupted fiber |

| switching time is 117 tcs = 1392 nsec |

|-----------------------------------------------------------------------------|

| 3- Measure time from ISR to executing a different fiber (rescheduled) |

| switching time is 367 tcs = 4369 nsec |

|-----------------------------------------------------------------------------|

| 4- Measure average context switch time between fibers |

| Error: tick occurred |

|-----------------------------------------------------------------------------|

| 5- Measure average time to lock then unlock interrupts |

| Error: tick occurred |

|-----------------------------------------------------------------------------|

|-----------------------------------------------------------------------------|

| Microkernel Latency Benchmark |

|-----------------------------------------------------------------------------|

| tcs = timer clock cycles: 1 tcs is 11 nsec |

|-----------------------------------------------------------------------------|

| 1- Measure time to switch from ISR to back to interrupted task |

| switching time is 119 tcs = 1416 nsec |

|-----------------------------------------------------------------------------|

| 2- Measure time from ISR to executing a different task (rescheduled) |

| switch time is 694 tcs = 8261 nsec |

|-----------------------------------------------------------------------------|

| 3- Measure average time to signal a sema then test that sema |

| Average semaphore signal time 0 tcs = 0 nsec |

| Average semaphore test time 0 tcs = 0 nsec |

|-----------------------------------------------------------------------------|

| 4- Measure average time to lock a mutex then unlock that mutex |

| Average time to lock the mutex 504056 tcs = 6000668 nsec |

| Average time to unlock the mutex 587911 tcs = 6998948 nsec |

|-----------------------------------------------------------------------------|

| 5- Measure average context switch time between tasks using (task_yield) |

| Error: tick occurred |

|-----------------------------------------------------------------------------|

| E N D |

|-----------------------------------------------------------------------------|

===================================================================

PROJECT EXECUTION FAILED