1common:
2  platform_key:
3    - arch
4  tags:
5    - kernel
6    - benchmark
7tests:
8  benchmark.kernel.latency:
9    # FIXME: no DWT and no RTC_TIMER for qemu_cortex_m0
10    platform_exclude:
11      - qemu_cortex_m0
12      - m2gl025_miv
13    filter: CONFIG_PRINTK and not CONFIG_SOC_FAMILY_STM32
14    harness: console
15    integration_platforms:
16      - qemu_x86
17      - qemu_arc/qemu_arc_em
18      - qemu_riscv64/qemu_virt_riscv64/smp
19    harness_config:
20      type: one_line
21      record:
22        regex: "(?P<metric>.*) - (?P<description>.*):(?P<cycles>.*) cycles ,(?P<nanoseconds>.*) ns"
23      regex:
24        - "PROJECT EXECUTION SUCCESSFUL"
25
26  # Cortex-M has 24bit systick, so default 1 TICK per seconds
27  # is achievable only if frequency is below 0x00FFFFFF (around 16MHz)
28  # 20 Ticks per secondes allows a frequency up to 335544300Hz (335MHz)
29  benchmark.kernel.latency.stm32:
30    arch_allow: arm
31    filter: CONFIG_PRINTK and CONFIG_SOC_FAMILY_STM32
32    extra_configs:
33      - CONFIG_SYS_CLOCK_TICKS_PER_SEC=20
34    harness: console
35    harness_config:
36      type: one_line
37      record:
38        regex: "(?P<metric>.*) - (?P<description>.*):(?P<cycles>.*) cycles ,(?P<nanoseconds>.*) ns"
39      regex:
40        - "PROJECT EXECUTION SUCCESSFUL"
41
42  # Obtain the benchmark results for various user thread / kernel thread
43  # configurations on platforms that support user space.
44  benchmark.kernel.latency.userspace:
45    filter: CONFIG_ARCH_HAS_USERSPACE
46    timeout: 300
47    extra_configs:
48      - CONFIG_USERSPACE=y
49    harness: console
50    integration_platforms:
51      - qemu_x86
52      - qemu_cortex_a53
53    harness_config:
54      type: one_line
55      record:
56        regex: "(?P<metric>.*) - (?P<description>.*):(?P<cycles>.*) cycles ,(?P<nanoseconds>.*) ns"
57      regex:
58        - "PROJECT EXECUTION SUCCESSFUL"
59
60  benchmark.kernel.latency.objcore:
61    # FIXME: no DWT and no RTC_TIMER for qemu_cortex_m0
62    platform_exclude:
63      - qemu_cortex_m0
64      - m2gl025_miv
65    filter: CONFIG_PRINTK and not CONFIG_SOC_FAMILY_STM32
66    timeout: 300
67    extra_configs:
68      - CONFIG_OBJ_CORE=y
69      - CONFIG_OBJ_CORE_STATS=y
70    harness: console
71    integration_platforms:
72      - qemu_x86
73      - qemu_arc/qemu_arc_em
74      - qemu_riscv64/qemu_virt_riscv64/smp
75    harness_config:
76      type: one_line
77      record:
78        regex: "(?P<metric>.*) - (?P<description>.*):(?P<cycles>.*) cycles ,(?P<nanoseconds>.*) ns"
79      regex:
80        - "PROJECT EXECUTION SUCCESSFUL"
81