zephyr/tests/benchmarks/latency_measure/testcase.yaml
Yong Cong Sin def418b920 tests: latency_measure: fix stacks for the busy threads
The current `K_THREAD_STACK_DEFINE` only create a single stack
shared by all the busy threads. This is causing the application
to crash when there are more than 2 cores in the system.

We should use `K_THREAD_STACK_ARRAY_DEFINE` to create an array
of stacks instead.

Updated the testcase to test up to 8 cores using
qemu_riscv64_smp

Signed-off-by: Yong Cong Sin <ycsin@meta.com>
Signed-off-by: Yong Cong Sin <yongcong.sin@gmail.com>
2024-09-19 18:28:16 +01:00

57 lines
1.7 KiB
YAML

common:
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"