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