History log of /dpdk/doc/guides/prog_guide/power_man.rst (Results 1 – 22 of 22)
Revision Date Author Comments
# b3477a6b 13-Nov-2024 Huisong Li <lihuisong@huawei.com>

power: fix typo in PM QoS doc

The typo in the guide is hard to understand. Necessary to fix it.

Fixes: dd6fd75bf662 ("power: introduce PM QoS API on CPU wide")

Signed-off-by: Huisong Li <lihuisong

power: fix typo in PM QoS doc

The typo in the guide is hard to understand. Necessary to fix it.

Fixes: dd6fd75bf662 ("power: introduce PM QoS API on CPU wide")

Signed-off-by: Huisong Li <lihuisong@huawei.com>

show more ...


# dd6fd75b 11-Nov-2024 Huisong Li <lihuisong@huawei.com>

power: introduce PM QoS API on CPU wide

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 ti

power: introduce PM QoS API on CPU wide

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. 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 by setting strict resume latency (zero value).

Signed-off-by: Huisong Li <lihuisong@huawei.com>
Acked-by: Morten Brørup <mb@smartsharesystems.com>
Acked-by: Chengwen Feng <fengchengwen@huawei.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@huawei.com>
Acked-by: Sivaprasad Tummala <sivaprasad.tummala@amd.com>

show more ...


# da4d64d0 28-Oct-2024 Sivaprasad Tummala <sivaprasad.tummala@amd.com>

power/amd_uncore: add uncore for AMD EPYC processors

This patch introduces driver support for power management of uncore
components in AMD EPYC processors.

Signed-off-by: Sivaprasad Tummala <sivapr

power/amd_uncore: add uncore for AMD EPYC processors

This patch introduces driver support for power management of uncore
components in AMD EPYC processors.

Signed-off-by: Sivaprasad Tummala <sivaprasad.tummala@amd.com>

show more ...


# ebe99d35 28-Oct-2024 Sivaprasad Tummala <sivaprasad.tummala@amd.com>

power: refactor uncore power management

This patch refactors the power management library, addressing uncore
power management. The primary changes involve the creation of dedicated
directories for e

power: refactor uncore power management

This patch refactors the power management library, addressing uncore
power management. The primary changes involve the creation of dedicated
directories for each driver within 'drivers/power/uncore/*'. The
adjustment of meson.build files enables the selective activation
of individual drivers.

This refactor significantly improves code organization, enhances
clarity and boosts maintainability. It lays the foundation for more
focused development on individual drivers and facilitates seamless
integration of future enhancements, particularly the AMD uncore driver.

Signed-off-by: Sivaprasad Tummala <sivaprasad.tummala@amd.com>
Acked-by: Huisong Li <lihuisong@huawei.com>

show more ...


# 9c75ff42 08-Feb-2023 David Hunt <david.hunt@intel.com>

power: remove experimental empty poll API

The API "empty poll" is removed,
which has been in an experimental state since it was added.

This API is no longer needed as it is superseded by the
PMD Po

power: remove experimental empty poll API

The API "empty poll" is removed,
which has been in an experimental state since it was added.

This API is no longer needed as it is superseded by the
PMD Power Management monitor/pause/scale callback mechanism.

Signed-off-by: David Hunt <david.hunt@intel.com>
Acked-by: Reshma Pattan <reshma.pattan@intel.com>

show more ...


# b0058c83 02-Nov-2022 Reshma Pattan <reshma.pattan@intel.com>

doc: add removal warning for power empty poll API

Add removal warning for experimental empty poll API.

Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Acked-by: David Hunt <david.hunt@intel.

doc: add removal warning for power empty poll API

Add removal warning for experimental empty poll API.

Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Acked-by: David Hunt <david.hunt@intel.com>

show more ...


# 60b8a661 06-Oct-2022 Tadhg Kearney <tadhg.kearney@intel.com>

power: add Intel uncore frequency control

Add API to allow uncore frequency adjustment.

Uncore is a term used by Intel to describe function
of a microprocessor that are closely connected
to the cor

power: add Intel uncore frequency control

Add API to allow uncore frequency adjustment.

Uncore is a term used by Intel to describe function
of a microprocessor that are closely connected
to the core to achieve high performance.

This is done through manipulating related uncore frequency control
sysfs entries to adjust the minimum and maximum uncore frequency values
and works on Linux for Intel hardware.

Signed-off-by: Tadhg Kearney <tadhg.kearney@intel.com>
Reviewed-by: David Hunt <david.hunt@intel.com>
Acked-by: David Hunt <david.hunt@intel.com>

show more ...


# 42651168 02-Jun-2022 Kevin Laatz <kevin.laatz@intel.com>

power: add get/set min/max scaling frequencies API

Add new get/set API to allow the user or application to set the minimum
and maximum frequencies to use when scaling.
Previously, the frequency rang

power: add get/set min/max scaling frequencies API

Add new get/set API to allow the user or application to set the minimum
and maximum frequencies to use when scaling.
Previously, the frequency range was determined by the HW capabilities of
the CPU. With this new API, the user or application can constrain this
if required.

Signed-off-by: Kevin Laatz <kevin.laatz@intel.com>
Acked-by: Ray Kinsella <mdr@ashroe.eu>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
Tested-by: David Hunt <david.hunt@intel.com>

show more ...


# 4a8fbc28 02-Jun-2022 Kevin Laatz <kevin.laatz@intel.com>

power: add get/set pause duration API

Add new get/set API for configuring 'pause_duration' which used to adjust
the pause mode callback duration.

Signed-off-by: Kevin Laatz <kevin.laatz@intel.com>

power: add get/set pause duration API

Add new get/set API for configuring 'pause_duration' which used to adjust
the pause mode callback duration.

Signed-off-by: Kevin Laatz <kevin.laatz@intel.com>
Acked-by: Ray Kinsella <mdr@ashroe.eu>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
Tested-by: David Hunt <david.hunt@intel.com>

show more ...


# 9e9e945b 02-Jun-2022 Kevin Laatz <kevin.laatz@intel.com>

power: add get/set empty-poll maximum API

Add new get/set APIs to configure emptypoll max which is used to
determine when a queue can go into sleep state.

Signed-off-by: Kevin Laatz <kevin.laatz@in

power: add get/set empty-poll maximum API

Add new get/set APIs to configure emptypoll max which is used to
determine when a queue can go into sleep state.

Signed-off-by: Kevin Laatz <kevin.laatz@intel.com>
Acked-by: Ray Kinsella <mdr@ashroe.eu>
Tested-by: David Hunt <david.hunt@intel.com>

show more ...


# 7580f973 24-Nov-2021 David Hunt <david.hunt@intel.com>

doc: add power management scale mode reaction time note

When using PMD Power Management, scale mode reacts slower than
monitor mode and pause mode. Add note in user guide to this
effect.

Signed-off

doc: add power management scale mode reaction time note

When using PMD Power Management, scale mode reacts slower than
monitor mode and pause mode. Add note in user guide to this
effect.

Signed-off-by: David Hunt <david.hunt@intel.com>

show more ...


# f53fe635 09-Jul-2021 Anatoly Burakov <anatoly.burakov@intel.com>

power: support monitoring multiple Rx queues

Use the new multi-monitor intrinsic to allow monitoring multiple ethdev
Rx queues while entering the energy efficient power state. The multi
version will

power: support monitoring multiple Rx queues

Use the new multi-monitor intrinsic to allow monitoring multiple ethdev
Rx queues while entering the energy efficient power state. The multi
version will be used unconditionally if supported, and the UMWAIT one
will only be used when multi-monitor is not supported by the hardware.

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Tested-by: David Hunt <david.hunt@intel.com>

show more ...


# 5dff9a72 09-Jul-2021 Anatoly Burakov <anatoly.burakov@intel.com>

power: support callbacks for multiple Rx queues

Currently, there is a hard limitation on the PMD power management
support that only allows it to support a single queue per lcore. This is
not ideal a

power: support callbacks for multiple Rx queues

Currently, there is a hard limitation on the PMD power management
support that only allows it to support a single queue per lcore. This is
not ideal as most DPDK use cases will poll multiple queues per core.

The PMD power management mechanism relies on ethdev Rx callbacks, so it
is very difficult to implement such support because callbacks are
effectively stateless and have no visibility into what the other ethdev
devices are doing. This places limitations on what we can do within the
framework of Rx callbacks, but the basics of this implementation are as
follows:

- Replace per-queue structures with per-lcore ones, so that any device
polled from the same lcore can share data
- Any queue that is going to be polled from a specific lcore has to be
added to the list of queues to poll, so that the callback is aware of
other queues being polled by the same lcore
- Both the empty poll counter and the actual power saving mechanism is
shared between all queues polled on a particular lcore, and is only
activated when all queues in the list were polled and were determined
to have no traffic.
- The limitation on UMWAIT-based polling is not removed because UMWAIT
is incapable of monitoring more than one address.

Also, while we're at it, update and improve the docs.

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Tested-by: David Hunt <david.hunt@intel.com>

show more ...


# 682a6454 22-Jan-2021 Liang Ma <liang.j.ma@intel.com>

power: add ethdev power management

Add a simple on/off switch that will enable saving power when no
packets are arriving. It is based on counting the number of empty
polls and, when the number reach

power: add ethdev power management

Add a simple on/off switch that will enable saving power when no
packets are arriving. It is based on counting the number of empty
polls and, when the number reaches a certain threshold, entering an
architecture-defined optimized power state that will either wait
until a TSC timestamp expires, or when packets arrive.

This API mandates a core-to-single-queue mapping (that is, multiple
queued per device are supported, but they have to be polled on different
cores).

This design is using PMD RX callbacks.

1. UMWAIT/UMONITOR:

When a certain threshold of empty polls is reached, the core will go
into a power optimized sleep while waiting on an address of next RX
descriptor to be written to.

2. TPAUSE/Pause instruction

This method uses the pause (or TPAUSE, if available) instruction to
avoid busy polling.

3. Frequency scaling
Reuse existing DPDK power library to scale up/down core frequency
depending on traffic volume.

Signed-off-by: Liang Ma <liang.j.ma@intel.com>
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: David Hunt <david.hunt@intel.com>

show more ...


# fa77f80f 18-Jan-2019 David Hunt <david.hunt@intel.com>

doc: fix references in power management guide

In the References section in the Power Management overview,
both links pointed to the same l3fwd-power app. Fix the links
so that one points to l3fwd-po

doc: fix references in power management guide

In the References section in the Power Management overview,
both links pointed to the same l3fwd-power app. Fix the links
so that one points to l3fwd-power, and the other points to
the vm_power_manager sample app.

Signed-off-by: David Hunt <david.hunt@intel.com>
Acked-by: Marko Kovacevic <marko.kovacevic@intel.com>

show more ...


# 50360349 07-Jan-2019 Yong Wang <wang.yong19@zte.com.cn>

doc: fix a typo in power management guide

This patch fixes a typo in programmer's guide. It should be Frequency,
not Fequence.

Fixes: 450f0791312c ("power: add traffic pattern aware power control")

doc: fix a typo in power management guide

This patch fixes a typo in programmer's guide. It should be Frequency,
not Fequence.

Fixes: 450f0791312c ("power: add traffic pattern aware power control")
Cc: stable@dpdk.org

Signed-off-by: Yong Wang <wang.yong19@zte.com.cn>

show more ...


# 450f0791 19-Oct-2018 Liang Ma <liang.j.ma@intel.com>

power: add traffic pattern aware power control

1. Abstract

For packet processing workloads such as DPDK polling is continuous.
This means CPU cores always show 100% busy independent of how much wor

power: add traffic pattern aware power control

1. Abstract

For packet processing workloads such as DPDK polling is continuous.
This means CPU cores always show 100% busy independent of how much work
those cores are doing. It is critical to accurately determine how busy
a core is hugely important for the following reasons:

* No indication of overload conditions.

* User does not know how much real load is on a system, resulting
in wasted energy as no power management is utilized.

Compared to the original l3fwd-power design, instead of going to sleep
after detecting an empty poll, the new mechanism just lowers the core
frequency. As a result, the application does not stop polling the device,
which leads to improved handling of bursts of traffic.

When the system become busy, the empty poll mechanism can also increase the
core frequency (including turbo) to do best effort for intensive traffic.
This gives us more flexible and balanced traffic awareness over the
standard l3fwd-power application.

2. Proposed solution

The proposed solution focuses on how many times empty polls are executed.
The less the number of empty polls, means current core is busy with
processing workload, therefore, the higher frequency is needed. The high
empty poll number indicates the current core not doing any real work
therefore, we can lower the frequency to safe power.

In the current implementation, each core has 1 empty-poll counter which
assume 1 core is dedicated to 1 queue. This will need to be expanded in the
future to support multiple queues per core.

2.1 Power state definition:

LOW: Not currently used, reserved for future use.

MED: the frequency is used to process modest traffic workload.

HIGH: the frequency is used to process busy traffic workload.

2.2 There are two phases to establish the power management system:

a.Initialization/Training phase. The training phase is necessary
in order to figure out the system polling baseline numbers from
idle to busy. The highest poll count will be during idle, where
all polls are empty. These poll counts will be different between
systems due to the many possible processor micro-arch, cache
and device configurations, hence the training phase.
In the training phase, traffic is blocked so the training
algorithm can average the empty-poll numbers for the LOW, MED and
HIGH power states in order to create a baseline.
The core's counter are collected every 10ms, and the Training
phase will take 2 seconds.
Training is disabled as default configuration. The default
parameter is applied. Sample App still can trigger training
if that's needed. Once the training phase has been executed once on
a system, the application can then be started with the relevant
thresholds provided on the command line, allowing the application
to start passing start traffic immediately

b.Normal phase. Traffic starts immediately based on the default
thresholds, or based on the user supplied thresholds via the
command line parameters. The run-time poll counts are compared with
the baseline and the decision will be taken to move to MED power
state or HIGH power state. The counters are calculated every 10ms.

3. Proposed API

1. rte_power_empty_poll_stat_init(struct ep_params **eptr,
uint8_t *freq_tlb, struct ep_policy *policy);
which is used to initialize the power management system.
 
2. rte_power_empty_poll_stat_free(void);
which is used to free the resource hold by power management system.
 
3. rte_power_empty_poll_stat_update(unsigned int lcore_id);
which is used to update specific core empty poll counter, not thread safe
 
4. rte_power_poll_stat_update(unsigned int lcore_id, uint8_t nb_pkt);
which is used to update specific core valid poll counter, not thread safe
 
5. rte_power_empty_poll_stat_fetch(unsigned int lcore_id);
which is used to get specific core empty poll counter.
 
6. rte_power_poll_stat_fetch(unsigned int lcore_id);
which is used to get specific core valid poll counter.

7. rte_empty_poll_detection(struct rte_timer *tim, void *arg);
which is used to detect empty poll state changes then take action.

Signed-off-by: Liang Ma <liang.j.ma@intel.com>
Reviewed-by: Lei Yao <lei.a.yao@intel.com>
Acked-by: David Hunt <david.hunt@intel.com>

show more ...


# 5630257f 01-Feb-2018 Ferruh Yigit <ferruh.yigit@intel.com>

doc: convert Intel license headers to SPDX tags

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>


# d9e71f52 31-Jan-2018 David Hunt <david.hunt@intel.com>

doc: add hyperthreading note to power library guide

Signed-off-by: David Hunt <david.hunt@intel.com>
Acked-by: Marko Kovacevic <marko.kovacevic@intel.com>


# 94608a0f 13-Sep-2017 David Hunt <david.hunt@intel.com>

power: add per-core turbo boost API

Adds a new set of APIs to allow per-core turbo
enable-disable.

Signed-off-by: David Hunt <david.hunt@intel.com>


# 48624fd9 19-Dec-2014 Siobhan Butler <siobhan.a.butler@intel.com>

doc: remove Intel references from prog guide

Removed redundant references to Intel(R) DPDK in Programmers Guide.

Signed-off-by: Siobhan Butler <siobhan.a.butler@intel.com>
Acked-by: Bernard Iremong

doc: remove Intel references from prog guide

Removed redundant references to Intel(R) DPDK in Programmers Guide.

Signed-off-by: Siobhan Butler <siobhan.a.butler@intel.com>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>

show more ...


# fc1f2750 14-Nov-2014 Bernard Iremonger <bernard.iremonger@intel.com>

doc: programmers guide

The 1.7 DPDK_Prog_Guide document in MSWord has been converted to rst format for
use with Sphinx. There is an rst file for each chapter and an index.rst file
which contains the

doc: programmers guide

The 1.7 DPDK_Prog_Guide document in MSWord has been converted to rst format for
use with Sphinx. There is an rst file for each chapter and an index.rst file
which contains the table of contents.
The top level index file has been modified to include this guide.

This document contains some png image files. If any of these png files are modified
they should be replaced with an svg file.

This is the sixth document from a set of 6 documents.

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>

show more ...