zephyr/tests/benchmarks/latency_measure/testcase.yaml
Anas Nashif 057ba5cf45 tests: benchmarks: optimize filters and use platform_key.
Benchmarks are not tests, we run them to verify they still work and do
not bitrot. Running them on each architecture should be sufficient.

This reduces amount of churn in CI and still allows them to be run
individually on platforms.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2024-11-26 21:42:22 +01:00

80 lines
2.4 KiB
YAML

common:
platform_key:
- arch
tags:
- kernel
- benchmark
tests:
benchmark.kernel.latency:
# FIXME: no DWT and no RTC_TIMER for qemu_cortex_m0
platform_exclude:
- qemu_cortex_m0
- m2gl025_miv
filter: CONFIG_PRINTK and not CONFIG_SOC_FAMILY_STM32
harness: console
integration_platforms:
- qemu_x86
- qemu_arc/qemu_arc_em
- qemu_riscv64/qemu_virt_riscv64/smp
harness_config:
type: one_line
record:
regex: "(?P<metric>.*) - (?P<description>.*):(?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:
arch_allow: arm
filter: CONFIG_PRINTK and CONFIG_SOC_FAMILY_STM32
extra_configs:
- CONFIG_SYS_CLOCK_TICKS_PER_SEC=20
harness: console
harness_config:
type: one_line
record:
regex: "(?P<metric>.*) - (?P<description>.*):(?P<cycles>.*) cycles ,(?P<nanoseconds>.*) ns"
regex:
- "PROJECT EXECUTION SUCCESSFUL"
# Obtain the benchmark results for various user thread / kernel thread
# configurations on platforms that support user space.
benchmark.kernel.latency.userspace:
filter: CONFIG_ARCH_HAS_USERSPACE
timeout: 300
extra_configs:
- CONFIG_USERSPACE=y
harness: console
integration_platforms:
- qemu_x86
- qemu_cortex_a53
harness_config:
type: one_line
record:
regex: "(?P<metric>.*) - (?P<description>.*):(?P<cycles>.*) cycles ,(?P<nanoseconds>.*) ns"
regex:
- "PROJECT EXECUTION SUCCESSFUL"
benchmark.kernel.latency.objcore:
# FIXME: no DWT and no RTC_TIMER for qemu_cortex_m0
platform_exclude:
- qemu_cortex_m0
- m2gl025_miv
filter: CONFIG_PRINTK and not CONFIG_SOC_FAMILY_STM32
timeout: 300
extra_configs:
- CONFIG_OBJ_CORE=y
- CONFIG_OBJ_CORE_STATS=y
harness: console
integration_platforms:
- qemu_x86
- qemu_arc/qemu_arc_em
- qemu_riscv64/qemu_virt_riscv64/smp
harness_config:
type: one_line
record:
regex: "(?P<metric>.*) - (?P<description>.*):(?P<cycles>.*) cycles ,(?P<nanoseconds>.*) ns"
regex:
- "PROJECT EXECUTION SUCCESSFUL"