From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from dpdk.org (dpdk.org [92.243.14.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 77053A04B0;
	Sat, 24 Oct 2020 01:09:53 +0200 (CEST)
Received: from [92.243.14.124] (localhost [127.0.0.1])
	by dpdk.org (Postfix) with ESMTP id 700D772E1;
	Sat, 24 Oct 2020 01:07:13 +0200 (CEST)
Received: from mga12.intel.com (mga12.intel.com [192.55.52.136])
 by dpdk.org (Postfix) with ESMTP id 9A95F2B84
 for <dev@dpdk.org>; Sat, 24 Oct 2020 01:06:57 +0200 (CEST)
IronPort-SDR: 0LcvYQM8quvVEBwZya+ZM8kWupXmxRGUQtpZKmYmKy6QHhO8J0xXI43322lkfY7zDePjCdJiF/
 KsXTX0zn1kHg==
X-IronPort-AV: E=McAfee;i="6000,8403,9783"; a="147031971"
X-IronPort-AV: E=Sophos;i="5.77,410,1596524400"; d="scan'208";a="147031971"
X-Amp-Result: SKIPPED(no attachment in message)
X-Amp-File-Uploaded: False
Received: from orsmga006.jf.intel.com ([10.7.209.51])
 by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 23 Oct 2020 16:06:56 -0700
IronPort-SDR: iIIvc10xoHEVFNp7uJPCNR+HLT80mzXQ/ON+QK4kVW6OkY0UvVRfGD8q/JMkFKOkDYTzjqYE3p
 R4x2Z2QrAumw==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.77,410,1596524400"; d="scan'208";a="321896187"
Received: from irvmail001.ir.intel.com ([163.33.26.43])
 by orsmga006.jf.intel.com with ESMTP; 23 Oct 2020 16:06:53 -0700
Received: from sivswdev09.ir.intel.com (sivswdev09.ir.intel.com
 [10.237.217.48])
 by irvmail001.ir.intel.com (8.14.3/8.13.6/MailSET/Hub) with ESMTP id
 09NN6q4Z016562; Sat, 24 Oct 2020 00:06:52 +0100
Received: from sivswdev09.ir.intel.com (localhost [127.0.0.1])
 by sivswdev09.ir.intel.com with ESMTP id 09NN6qIa007465;
 Sat, 24 Oct 2020 00:06:52 +0100
Received: (from lma25@localhost)
 by sivswdev09.ir.intel.com with LOCAL id 09NN6qtN007461;
 Sat, 24 Oct 2020 00:06:52 +0100
From: Liang Ma <liang.j.ma@intel.com>
To: dev@dpdk.org
Cc: anatoly.burakov@intel.com, viktorin@rehivetech.com, qi.z.zhang@intel.com, 
 ruifeng.wang@arm.com, beilei.xing@intel.com, jia.guo@intel.com,
 qiming.yang@intel.com, haiyue.wang@intel.com,
 bruce.richardson@intel.com, konstantin.ananyev@intel.com,
 david.hunt@intel.com, jerinjacobk@gmail.com, nhorman@tuxdriver.com,
 thomas@monjalon.net, timothy.mcdaniel@intel.com, gage.eads@intel.com,
 drc@linux.vnet.ibm.com, Liang Ma <liang.j.ma@intel.com>
Date: Sat, 24 Oct 2020 00:06:32 +0100
Message-Id: <1603494392-7181-11-git-send-email-liang.j.ma@intel.com>
X-Mailer: git-send-email 1.7.7.4
In-Reply-To: <1603494392-7181-1-git-send-email-liang.j.ma@intel.com>
References: <n>
 <1603494392-7181-1-git-send-email-liang.j.ma@intel.com>
In-Reply-To: <1603473432-11153-1-git-send-email-liang.j.ma@intel.com>
References: <1603473432-11153-1-git-send-email-liang.j.ma@intel.com>
Subject: [dpdk-dev] [PATCH v9 10/10] doc: update programmer's guide for
	power library
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org
Sender: "dev" <dev-bounces@dpdk.org>

Update programmer's guide to document PMD power management usage.

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>
---
 doc/guides/prog_guide/power_man.rst | 42 +++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/doc/guides/prog_guide/power_man.rst b/doc/guides/prog_guide/power_man.rst
index 0a3755a901..38c64d31e4 100644
--- a/doc/guides/prog_guide/power_man.rst
+++ b/doc/guides/prog_guide/power_man.rst
@@ -192,6 +192,45 @@ User Cases
 ----------
 The mechanism can applied to any device which is based on polling. e.g. NIC, FPGA.
 
+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.
+
+  * UMWAIT/UMONITOR
+
+   This power saving scheme will put the CPU into optimized power state and use
+   the UMWAIT/UMONITOR instructions to monitor the Ethernet PMD RX descriptor
+   address, and wake the CPU up whenever there's new traffic.
+
+  * Pause
+
+   This power saving scheme will use the `rte_pause` function to avoid busy
+   polling.
+
+  * Frequency scaling
+
+   This power saving scheme will use existing 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 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
 ----------
 
@@ -200,3 +239,6 @@ References
 
 *   The :doc:`../sample_app_ug/vm_power_management`
     chapter in the :doc:`../sample_app_ug/index` section.
+
+*   The :doc:`../sample_app_ug/rxtx_callbacks`
+    chapter in the :doc:`../sample_app_ug/index` section.
-- 
2.17.1