Back to Zephyr

CPU load

doc/services/debugging/cpu_load.rst

4.4.0971 B
Original Source

.. _cpu_load:

CPU load ########

Module can be used to track how much time is spent in idle. It is using tracing hooks which are called before and after CPU goes to idle. Compared to :ref:thread_analyzer it is more accurate since it takes into account time spent in the interrupt context as well.

Function :c:func:cpu_load_get is used to get the latest value. It is also used to reset the measurement. By default, module is using :c:func:k_cycle_get_32 but in cases when higher precision is needed a :ref:counter_api device can be used.

Load can also be reported periodically using a logging message. Period is configured using :kconfig:option:CONFIG_CPU_LOAD_LOG_PERIODICALLY.

Using counter device


In order to use :ref:counter_api device :kconfig:option:CONFIG_CPU_LOAD_USE_COUNTER must be enabled and chosen in devicetree must be set.

.. code-block:: devicetree

chosen { zephyr,cpu-load-counter = &counter_device; };