| # Copyright (c) 2024 Intel Corporation |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| mainmenu "Eclipse ThreadX Thread-Metric RTOS Test Suite" |
| |
| source "Kconfig.zephyr" |
| |
| choice TM_TEST |
| prompt "Select a Thread-Metric test to execute" |
| default TM_PREEMPTIVE |
| help |
| The Thread-Metric benchmark suite consists of eight RTOS tests. |
| These tests measure the total number of RTOS events that can be |
| processed during a 30 second time interval. |
| |
| config TM_BASIC |
| bool "Baseline basic benchmark" |
| help |
| The baseline basic benchmark consists of a single thread that counts |
| the number of times it performs a set of calculations. This number |
| is reported every 30 seconds. |
| |
| config TM_COOPERATIVE |
| bool "Cooperative context switching" |
| help |
| The cooperative context switching benchmark spawns five (5) threads |
| of equal priority that yield to each other and increment counters |
| on each context switch. The sum total of the counters is reported |
| every 30 seconds. |
| |
| config TM_INTERRUPT |
| bool "Interrupt processing" |
| select TEST |
| select IRQ_OFFLOAD |
| select IRQ_OFFLOAD_NESTED |
| help |
| The interrupt processing benchmark has a single thread that causes |
| an interrupt which results in its ISR incrementing a counter and then |
| posting a semaphore. The thread then increments its own counter and |
| takes that semaphore. The sum total of the counters is reported |
| every 30 seconds. |
| |
| config TM_INTERRUPT_PREEMPTION |
| bool "Interrupt processing preemption" |
| select TEST |
| select IRQ_OFFLOAD |
| select IRQ_OFFLOAD_NESTED |
| help |
| The interrupt preemption benchmark counts the number of times that |
| an ISR from a software generated interrupt results in the preemption |
| of a thread. The total number of context switches is reported every |
| 30 seconds. |
| |
| config TM_MEMORY_ALLOCATION |
| bool "Memory allocation" |
| help |
| The memory allocation benchmark counts the number of times a thread |
| is able to allocate and then release a 128-byte block. This number |
| is reported every 30 seconds. |
| |
| config TM_MESSAGE |
| bool "Message processing" |
| help |
| The message processing benchmark counts the number of times that a |
| thread can send and receive a 16-byte message from a message queue. |
| This number is reported every 30 seconds. |
| |
| config TM_PREEMPTIVE |
| bool "Preemptive context switching" |
| help |
| The preemptive context switching benchmark creates five (5) threads |
| of different priorities that suspend and resume each other in a |
| cyclical pattern. The total number of context switches is reported |
| every 30 seconds. |
| |
| config TM_SYNCHRONIZATION |
| bool "Synchronization" |
| help |
| The synchronization benchmark counts the number of times that a |
| thread can give and take a semaphore without blocking. This number |
| is reported every 30 seconds. |
| |
| endchoice |