[PATCH v14 0/3] power: introduce PM QoS interface

lihuisong (C) lihuisong at huawei.com
Mon Nov 4 10:13:25 CET 2024


Hi Ferruh and Thomas,

Kindly ping for merge.


在 2024/10/29 21:28, Huisong Li 写道:
> The deeper the idle state, the lower the power consumption, but the longer
> the resume time. Some service are delay sensitive and very except the low
> resume time, like interrupt packet receiving mode.
>
> And the "/sys/devices/system/cpu/cpuX/power/pm_qos_resume_latency_us" sysfs
> interface is used to set and get the resume latency limit on the cpuX for
> userspace. Please see the description in kernel document[1].
> Each cpuidle governor in Linux select which idle state to enter based on
> this CPU resume latency in their idle task.
>
> The per-CPU PM QoS API can be used to control this CPU's idle state
> selection and limit just enter the shallowest idle state to low the delay
> when wake up from idle state by setting strict resume latency (zero value).
>
> [1] https://www.kernel.org/doc/html/latest/admin-guide/abi-testing.html?highlight=pm_qos_resume_latency_us#abi-sys-devices-power-pm-qos-resume-latency-us
>
> ---
>   v14:
>    - use parse_uint to parse --cpu-resume-latency instead of adding a new
>      parse_int()
>   v13:
>    - not allow negative value for --cpu-resume-latency.
>    - restore to the original value as Konstantin suggested.
>   v12:
>    - add Acked-by Chengwen and Konstantin
>    - fix overflow issue in l3fwd-power when parse command line
>    - add a command parameter to set CPU resume latency
>   v11:
>    - operate the cpu id the lcore mapped by the new function
>      power_get_lcore_mapped_cpu_id().
>   v10:
>    - replace LINE_MAX with a custom macro and fix two typos.
>   v9:
>    - move new feature description from release_24_07.rst to release_24_11.rst.
>   v8:
>    - update the latest code to resolve CI warning
>   v7:
>    - remove a dead code rte_lcore_is_enabled in patch[2/2]
>   v6:
>    - update release_24_07.rst based on dpdk repo to resolve CI warning.
>   v5:
>    - use LINE_MAX to replace BUFSIZ, and use snprintf to replace sprintf.
>   v4:
>    - fix some comments basd on Stephen
>    - add stdint.h include
>    - add Acked-by Morten Brørup <mb at smartsharesystems.com>
>   v3:
>    - add RTE_POWER_xxx prefix for some macro in header
>    - add the check for lcore_id with rte_lcore_is_enabled
>   v2:
>    - use PM QoS on CPU wide to replace the one on system wide
>
>
> Huisong Li (3):
>    power: introduce PM QoS API on CPU wide
>    examples/l3fwd-power: fix data overflow when parse command line
>    examples/l3fwd-power: add PM QoS configuration
>
>   doc/guides/prog_guide/power_man.rst           |  19 +++
>   doc/guides/rel_notes/release_24_11.rst        |   5 +
>   .../sample_app_ug/l3_forward_power_man.rst    |   5 +-
>   examples/l3fwd-power/main.c                   |  96 +++++++++++---
>   lib/power/meson.build                         |   2 +
>   lib/power/rte_power_qos.c                     | 123 ++++++++++++++++++
>   lib/power/rte_power_qos.h                     |  73 +++++++++++
>   lib/power/version.map                         |   4 +
>   8 files changed, 306 insertions(+), 21 deletions(-)
>   create mode 100644 lib/power/rte_power_qos.c
>   create mode 100644 lib/power/rte_power_qos.h
>


More information about the dev mailing list