zephyr/tests/benchmarks/latency_measure/testcase.yaml
Anas Nashif 3b00571160 tests: benchmarks: record benchmark results
Record benchmark results into a CSV file that can be used for tracking.
The data will be available in recording.csv in the build directory.

For example:

cat recording.csv

metric,cycles,nanoseconds
Average thread context switch using yield,11654,11654
Average context switch time between threads (coop),21149,21149
Switch from ISR back to interrupted thread,4928,4927
Time from ISR to executing a different thread,3872,3871
Time to create a thread (without start),4224,4223
Time to start a thread,10784,10783
Time to suspend a thread,10400,10399
Time to resume a thread,10688,10687
Time to abort a thread (not running),1536,1535
Average semaphore signal time,3424,3424
Average semaphore test time,1344,1344
Semaphore take time (context switch),12736,12735
Semaphore give time (context switch),17568,17567
Average time to lock a mutex,1632,1632
Average time to unlock a mutex,4738,4738

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-05-07 23:48:28 -04:00

34 lines
1.1 KiB
YAML

tests:
benchmark.kernel.latency:
arch_allow: x86 arm riscv32 riscv64
# FIXME: no DWT and no RTC_TIMER for qemu_cortex_m0
platform_exclude: qemu_x86_64 qemu_cortex_m0 m2gl025_miv
filter: CONFIG_PRINTK and not CONFIG_SOC_FAMILY_STM32
tags: benchmark
harness: console
harness_config:
type: one_line
record:
regex: "(?P<metric>.*):(?P<cycles>.*) cycles ,(?P<nanoseconds>.*) ns"
regex:
- "PROJECT EXECUTION SUCCESSFUL"
# Cortex-M has 24bit systick, so default 1 TICK per seconds
# is achievable only if frequency is below 0x00FFFFFF (around 16MHz)
# 20 Ticks per secondes allows a frequency up to 335544300Hz (335MHz)
benchmark.kernel.latency.stm32:
filter: CONFIG_PRINTK and CONFIG_SOC_FAMILY_STM32
# FIXME: no DWT and no RTC_TIMER
platform_exclude: qemu_cortex_m0
tags: benchmark
extra_configs:
- CONFIG_SYS_CLOCK_TICKS_PER_SEC=20
harness: console
harness_config:
type: one_line
record:
regex: "(?P<metric>.*):(?P<cycles>.*) cycles ,(?P<nanoseconds>.*) ns"
regex:
- "PROJECT EXECUTION SUCCESSFUL"