X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=doc%2Fguides%2Fprog_guide%2Fpower_man.rst;h=c70ae128acf0db171a7a79ee97812061b37e86d3;hb=d1355fcc4607de529359c671c908bfbd2a5ffd0c;hp=f55436bc9bc82e5cca9a2f3ee40ed55f3c39cccc;hpb=50360349245c7eafaac4aef94be1c85948fe5690;p=dpdk.git diff --git a/doc/guides/prog_guide/power_man.rst b/doc/guides/prog_guide/power_man.rst index f55436bc9b..c70ae128ac 100644 --- a/doc/guides/prog_guide/power_man.rst +++ b/doc/guides/prog_guide/power_man.rst @@ -192,9 +192,53 @@ User Cases ---------- The mechanism can applied to any device which is based on polling. e.g. NIC, FPGA. +Ethernet PMD Power Management API +--------------------------------- + +Abstract +~~~~~~~~ + +Existing power management mechanisms require developers +to change application design or change code to make use of it. +The PMD power management API provides a convenient alternative +by utilizing Ethernet PMD RX callbacks, +and triggering power saving whenever empty poll count reaches a certain number. + +Monitor + This power saving scheme will put the CPU into optimized power state + and use the ``rte_power_monitor()`` function + to monitor the Ethernet PMD RX descriptor address, + and wake the CPU up whenever there's new traffic. + +Pause + This power saving scheme will avoid busy polling + by either entering power-optimized sleep state + with ``rte_power_pause()`` function, + or, if it's not available, use ``rte_pause()``. + +Frequency scaling + This power saving scheme will use ``librte_power`` library + functionality to scale the core frequency up/down + depending on traffic volume. + +.. note:: + + Currently, this power management API is limited to mandatory mapping + of 1 queue to 1 core (multiple queues are supported, + but they must be polled from different cores). + +API Overview for Ethernet PMD Power Management +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +* **Queue Enable**: Enable specific power scheme for certain queue/port/core. + +* **Queue Disable**: Disable power scheme for certain queue/port/core. + References ---------- -* l3fwd-power: The sample application in DPDK that performs L3 forwarding with power management. +* The :doc:`../sample_app_ug/l3_forward_power_man` + chapter in the :doc:`../sample_app_ug/index` section. -* The "L3 Forwarding with Power Management Sample Application" chapter in the *DPDK Sample Application's User Guide*. +* The :doc:`../sample_app_ug/vm_power_management` + chapter in the :doc:`../sample_app_ug/index` section.