Message ID | cover.1625846394.git.anatoly.burakov@intel.com (mailing list archive) |
---|---|
Headers |
Return-Path: <dev-bounces@dpdk.org> X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 7E660A0548; Fri, 9 Jul 2021 18:08:23 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 37C374014D; Fri, 9 Jul 2021 18:08:23 +0200 (CEST) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mails.dpdk.org (Postfix) with ESMTP id CA7764003F for <dev@dpdk.org>; Fri, 9 Jul 2021 18:08:21 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10039"; a="209767577" X-IronPort-AV: E=Sophos;i="5.84,226,1620716400"; d="scan'208";a="209767577" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Jul 2021 09:08:19 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,226,1620716400"; d="scan'208";a="458319503" Received: from silpixa00399498.ir.intel.com (HELO silpixa00399498.ger.corp.intel.com) ([10.237.223.53]) by orsmga008.jf.intel.com with ESMTP; 09 Jul 2021 09:08:18 -0700 From: Anatoly Burakov <anatoly.burakov@intel.com> To: dev@dpdk.org Cc: david.hunt@intel.com, konstantin.ananyev@intel.com, ciara.loftus@intel.com Date: Fri, 9 Jul 2021 16:08:09 +0000 Message-Id: <cover.1625846394.git.anatoly.burakov@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <cover.1625845967.git.anatoly.burakov@intel.com> References: <cover.1625845967.git.anatoly.burakov@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-dev] [PATCH v10 0/8] Enhancements for PMD power management X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 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> |
Series |
Enhancements for PMD power management
|
|
Message
Anatoly Burakov
July 9, 2021, 4:08 p.m. UTC
This patchset introduces several changes related to PMD power management: - Changed monitoring intrinsics to use callbacks as a comparison function, based on previous patchset [1] but incorporating feedback [2] - this hopefully will make it possible to add support for .get_monitor_addr in virtio - Add a new intrinsic to monitor multiple addresses, based on RTM instruction set and the TPAUSE instruction - Add support for PMD power management on multiple queues, as well as all accompanying infrastructure and example apps changes v10: - Added missing changes to NIC feature .ini files v9: - Added all missing Acks and Tests - Added a new commit with NIC features - Addressed minor issues raised in review v8: - Fixed checkpatch issue - Added comment explaining empty poll handling (Konstantin) v7: - Fixed various bugs v6: - Improved the algorithm for multi-queue sleep - Fixed segfault and addressed other feedback v5: - Removed "power save queue" API and replaced with mechanism suggested by Konstantin - Addressed other feedback v4: - Replaced raw number with a macro - Fixed all the bugs found by Konstantin - Some other minor corrections v3: - Moved some doc updates to NIC features list v2: - Changed check inversion to callbacks - Addressed feedback from Konstantin - Added doc updates where necessary [1] http://patches.dpdk.org/project/dpdk/list/?series=16930&state=* [2] http://patches.dpdk.org/project/dpdk/patch/819ef1ace187365a615d3383e54579e3d9fb216e.1620747068.git.anatoly.burakov@intel.com/#133274 Anatoly Burakov (8): eal: use callbacks for power monitoring comparison net/af_xdp: add power monitor support doc: add PMD power management NIC feature eal: add power monitor for multiple events power: remove thread safety from PMD power API's power: support callbacks for multiple Rx queues power: support monitoring multiple Rx queues examples/l3fwd-power: support multiq in PMD modes doc/guides/nics/features.rst | 10 + doc/guides/nics/features/af_xdp.ini | 1 + doc/guides/nics/features/default.ini | 1 + doc/guides/nics/features/i40e.ini | 1 + doc/guides/nics/features/i40e_vf.ini | 1 + doc/guides/nics/features/iavf.ini | 1 + doc/guides/nics/features/ice.ini | 1 + doc/guides/nics/features/ixgbe.ini | 1 + doc/guides/nics/features/ixgbe_vf.ini | 1 + doc/guides/nics/features/mlx5.ini | 1 + doc/guides/prog_guide/power_man.rst | 74 +- doc/guides/rel_notes/release_21_08.rst | 11 + drivers/event/dlb2/dlb2.c | 17 +- drivers/net/af_xdp/rte_eth_af_xdp.c | 34 + drivers/net/i40e/i40e_rxtx.c | 20 +- drivers/net/iavf/iavf_rxtx.c | 20 +- drivers/net/ice/ice_rxtx.c | 20 +- drivers/net/ixgbe/ixgbe_rxtx.c | 20 +- drivers/net/mlx5/mlx5_rx.c | 17 +- examples/l3fwd-power/main.c | 6 - lib/eal/arm/rte_power_intrinsics.c | 11 + lib/eal/include/generic/rte_cpuflags.h | 2 + .../include/generic/rte_power_intrinsics.h | 68 +- lib/eal/ppc/rte_power_intrinsics.c | 11 + lib/eal/version.map | 3 + lib/eal/x86/rte_cpuflags.c | 2 + lib/eal/x86/rte_power_intrinsics.c | 90 ++- lib/power/meson.build | 3 + lib/power/rte_power_pmd_mgmt.c | 663 +++++++++++++----- lib/power/rte_power_pmd_mgmt.h | 6 + 30 files changed, 855 insertions(+), 262 deletions(-)
Comments
On Fri, Jul 9, 2021 at 6:08 PM Anatoly Burakov <anatoly.burakov@intel.com> wrote: > > This patchset introduces several changes related to PMD power management: > > - Changed monitoring intrinsics to use callbacks as a comparison function, based > on previous patchset [1] but incorporating feedback [2] - this hopefully will > make it possible to add support for .get_monitor_addr in virtio > - Add a new intrinsic to monitor multiple addresses, based on RTM instruction > set and the TPAUSE instruction > - Add support for PMD power management on multiple queues, as well as all > accompanying infrastructure and example apps changes > > v10: > - Added missing changes to NIC feature .ini files > > v9: > - Added all missing Acks and Tests > - Added a new commit with NIC features > - Addressed minor issues raised in review > > v8: > - Fixed checkpatch issue > - Added comment explaining empty poll handling (Konstantin) > > v7: > - Fixed various bugs > > v6: > - Improved the algorithm for multi-queue sleep > - Fixed segfault and addressed other feedback > > v5: > - Removed "power save queue" API and replaced with mechanism suggested by > Konstantin > - Addressed other feedback > > v4: > - Replaced raw number with a macro > - Fixed all the bugs found by Konstantin > - Some other minor corrections > > v3: > - Moved some doc updates to NIC features list > > v2: > - Changed check inversion to callbacks > - Addressed feedback from Konstantin > - Added doc updates where necessary > > [1] http://patches.dpdk.org/project/dpdk/list/?series=16930&state=* > [2] http://patches.dpdk.org/project/dpdk/patch/819ef1ace187365a615d3383e54579e3d9fb216e.1620747068.git.anatoly.burakov@intel.com/#133274 > > Anatoly Burakov (8): > eal: use callbacks for power monitoring comparison > net/af_xdp: add power monitor support > doc: add PMD power management NIC feature > eal: add power monitor for multiple events > power: remove thread safety from PMD power API's > power: support callbacks for multiple Rx queues > power: support monitoring multiple Rx queues > examples/l3fwd-power: support multiq in PMD modes Overall, the series lgtm. I still have a comment on the opaque pointer passed in callbacks. This is not blocking, we can still go with followup patches in this release. It would be great if drivers maintainers could implement this new ops in their driver or give feedback on what should be enhanced. Series applied, thanks.