X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=doc%2Fguides%2Fsample_app_ug%2Fl3_forward_power_man.rst;h=eb0c6d42f4de026ad082300be6774cb93af9a2c8;hb=71b09bd95096610aaddb69497297103a129e0e7c;hp=831f2bf58f99770b6ddf74bc85a25a85c5e0e756;hpb=db27370b57202632ad8830352c1c0ee2dde4542f;p=dpdk.git diff --git a/doc/guides/sample_app_ug/l3_forward_power_man.rst b/doc/guides/sample_app_ug/l3_forward_power_man.rst index 831f2bf58f..eb0c6d42f4 100644 --- a/doc/guides/sample_app_ug/l3_forward_power_man.rst +++ b/doc/guides/sample_app_ug/l3_forward_power_man.rst @@ -49,7 +49,7 @@ to set the CPUFreq governor and set the frequency of specific cores. This application includes a P-state power management algorithm to generate a frequency hint to be sent to CPUFreq. The algorithm uses the number of received and available Rx packets on recent polls to make a heuristic decision to scale frequency up/down. -Specifically, some thresholds are checked to see whether a specific core running an DPDK polling thread needs to increase frequency +Specifically, some thresholds are checked to see whether a specific core running a DPDK polling thread needs to increase frequency a step up based on the near to full trend of polled Rx queues. Also, it decreases frequency a step if packet processed per loop is far less than the expected threshold or the thread's sleeping time exceeds a threshold. @@ -109,6 +109,8 @@ where, * --telemetry: Telemetry mode. +* --pmd-mgmt: PMD power management mode. + See :doc:`l3_forward` for details. The L3fwd-power example reuses the L3fwd command line options. @@ -456,3 +458,44 @@ reference cycles and accordingly busy rate is set to either 0% or The new stats ``empty_poll`` , ``full_poll`` and ``busy_percent`` can be viewed by running the script ``/usertools/dpdk-telemetry-client.py`` and selecting the menu option ``Send for global Metrics``. + +PMD power management Mode +------------------------- + +The PMD power management mode support for ``l3fwd-power`` is a standalone mode. +In this mode, ``l3fwd-power`` does simple l3fwding +along with enabling the power saving scheme on specific port/queue/lcore. +Main purpose for this mode is to demonstrate +how to use the PMD power management API. + +.. code-block:: console + + ./build/examples/dpdk-l3fwd-power -l 1-3 -- --pmd-mgmt -p 0x0f --config="(0,0,2),(0,1,3)" + +PMD Power Management Mode +------------------------- + +There is also a traffic-aware operating mode that, +instead of using explicit power management, +will use automatic PMD power management. +This mode is limited to one queue per core, +and has three available power management schemes: + +``monitor`` + This will use ``rte_power_monitor()`` function to enter + a power-optimized state (subject to platform support). + +``pause`` + This will use ``rte_power_pause()`` or ``rte_pause()`` + to avoid busy looping when there is no traffic. + +``scale`` + This will use frequency scaling routines + available in the ``librte_power`` library. + +See :doc:`Power Management<../prog_guide/power_man>` chapter +in the DPDK Programmer's Guide for more details on PMD power management. + +.. code-block:: console + + .//examples/dpdk-l3fwd-power -l 1-3 -- -p 0x0f --config="(0,0,2),(0,1,3)" --pmd-mgmt=scale