[dpdk-dev] [PATCH v3 3/6] power: add simple power management API and callback
Stephen Hemminger
stephen at networkplumber.org
Fri Sep 4 18:36:46 CEST 2020
On Fri, 4 Sep 2020 11:18:57 +0100
Liang Ma <liang.j.ma at intel.com> wrote:
> 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 is limited to 1 core 1 port 1 queue use case as there is
> no coordination between queues/cores in ethdev. 1 port map to multiple
> core will be supported in next version.
The common way to express is this is:
This API is not thread-safe and not preempt-safe.
There is also no mechanism for a single thread to wait on multiple queues.
>
> This design leverage RX Callback mechnaism which allow three
> different power management methodology co exist.
nit coexist is one word
>
> 1. umwait/umonitor:
>
> The TSC timestamp is automatically calculated using current
> link speed and RX descriptor ring size, such that the sleep
> time is not longer than it would take for a NIC to fill its
> entire RX descriptor ring.
>
> 2. Pause instruction
>
> Instead of move the core into deeper C state, this lightweight
> method use Pause instruction to releaf the processor from
> busy polling.
Wording here is a problem, and "releaf" should be "relief"?
Rewording into active voice grammar would be easier.
Use Pause instruction to allow processor to go into deeper C
state when busy polling.
>
> 3. Frequency Scaling
> Reuse exist rte power library to scale up/down core frequency
> depend on traffic volume.
More information about the dev
mailing list