zephyr/samples/subsys/pm/latency/sample.yaml
Gerard Marull-Paretas 37c956ffb9 samples: pm: demonstrate usage of the policy latency APIs
Even though we have unit tests that cover the PM policy latency APIs, it
may not be obvious on how to use it in practice. This patch adds a new
sample where both the application and a device driver impose latency
requirements. The sample illustrates how latency requirements are
aggregated and are taken into account when choosing the CPU power state.
The test has been designed to run on native_posix, since it only serves
for demonstration purposes.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2022-09-07 10:28:55 +02:00

56 lines
2.9 KiB
YAML

sample:
name: Demonstrate usage of the PM policy latency APIs
tests:
sample.pm.latency:
platform_allow: native_posix
tags: pm
harness: console
harness_config:
type: multi_line
regex:
- "<inf> app: Sleeping for 1.1 seconds, we should enter RUNTIME_IDLE"
- "<inf> soc_pm: Entering RUNTIME_IDLE{0}"
- "<inf> app: Sleeping for 1.2 seconds, we should enter SUSPEND_TO_IDLE"
- "<inf> soc_pm: Entering SUSPEND_TO_IDLE{0}"
- "<inf> app: Sleeping for 1.3 seconds, we should enter STANDBY"
- "<inf> soc_pm: Entering STANDBY{0}"
- "<inf> app: Setting latency constraint: 30ms"
- "<inf> app: Sleeping for 1.1 seconds, we should enter RUNTIME_IDLE"
- "<inf> soc_pm: Entering RUNTIME_IDLE{0}"
- "<inf> app: Sleeping for 1.2 seconds, we should enter SUSPEND_TO_IDLE"
- "<inf> soc_pm: Entering SUSPEND_TO_IDLE{0}"
- "<inf> app: Sleeping for 1.3 seconds, we should enter SUSPEND_TO_IDLE"
- "<inf> soc_pm: Entering SUSPEND_TO_IDLE{0}"
- "<inf> app: Opening test device"
- "<inf> dev_test: Adding latency constraint: 20ms"
- "<inf> app: Latency constraint changed: 20ms"
- "<inf> app: Sleeping for 1.1 seconds, we should enter RUNTIME_IDLE"
- "<inf> soc_pm: Entering RUNTIME_IDLE{0}"
- "<inf> app: Sleeping for 1.2 seconds, we should enter RUNTIME_IDLE"
- "<inf> soc_pm: Entering RUNTIME_IDLE{0}"
- "<inf> app: Sleeping for 1.3 seconds, we should enter RUNTIME_IDLE"
- "<inf> soc_pm: Entering RUNTIME_IDLE{0}"
- "<inf> app: Updating latency constraint: 10ms"
- "<inf> app: Latency constraint changed: 10ms"
- "<inf> dev_test: Latency constraint changed: 10ms"
- "<inf> app: Sleeping for 1.1 seconds, we should stay ACTIVE"
- "<inf> app: Sleeping for 1.2 seconds, we should stay ACTIVE"
- "<inf> app: Sleeping for 1.3 seconds, we should stay ACTIVE"
- "<inf> app: Updating latency constraint: 30ms"
- "<inf> app: Latency constraint changed: 20ms"
- "<inf> dev_test: Latency constraint changed: 20ms"
- "<inf> app: Closing test device"
- "<inf> dev_test: Removing latency constraint"
- "<inf> app: Latency constraint changed: 30ms"
- "<inf> dev_test: Latency constraint changed: 30ms"
- "<inf> app: Sleeping for 1.1 seconds, we should enter RUNTIME_IDLE"
- "<inf> soc_pm: Entering RUNTIME_IDLE{0}"
- "<inf> app: Sleeping for 1.2 seconds, we should enter SUSPEND_TO_IDLE"
- "<inf> soc_pm: Entering SUSPEND_TO_IDLE{0}"
- "<inf> app: Sleeping for 1.3 seconds, we should enter SUSPEND_TO_IDLE"
- "<inf> soc_pm: Entering SUSPEND_TO_IDLE{0}"
- "<inf> app: Removing latency constraint"
- "<inf> app: Latency constraint changed: none"
- "<inf> app: Finished, we should now enter STANDBY"
- "<inf> soc_pm: Entering STANDBY{0}"