From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 1B3BCA0548; Fri, 9 Jul 2021 17:54:00 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 66B1A416E6; Fri, 9 Jul 2021 17:53:56 +0200 (CEST) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 059204014D for ; Fri, 9 Jul 2021 17:53:53 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10039"; a="270836203" X-IronPort-AV: E=Sophos;i="5.84,226,1620716400"; d="scan'208";a="270836203" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Jul 2021 08:53:31 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,226,1620716400"; d="scan'208";a="566030992" Received: from silpixa00399498.ir.intel.com (HELO silpixa00399498.ger.corp.intel.com) ([10.237.223.53]) by fmsmga001.fm.intel.com with ESMTP; 09 Jul 2021 08:53:29 -0700 From: Anatoly Burakov To: dev@dpdk.org Cc: david.hunt@intel.com, ciara.loftus@intel.com, konstantin.ananyev@intel.com Date: Fri, 9 Jul 2021 15:53:20 +0000 Message-Id: X-Mailer: git-send-email 2.25.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-dev] [PATCH v9 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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 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/default.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 + 22 files changed, 847 insertions(+), 262 deletions(-) -- 2.25.1 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id B1D89A0548; Fri, 9 Jul 2021 18:02:31 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BB8154014D; Fri, 9 Jul 2021 18:02:20 +0200 (CEST) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mails.dpdk.org (Postfix) with ESMTP id 5EF53410F7 for ; Fri, 9 Jul 2021 18:02:17 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10039"; a="190101660" X-IronPort-AV: E=Sophos;i="5.84,226,1620716400"; d="scan'208";a="190101660" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Jul 2021 09:00:19 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,226,1620716400"; d="scan'208";a="458316199" 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:00:17 -0700 From: Anatoly Burakov To: dev@dpdk.org Cc: david.hunt@intel.com, ciara.loftus@intel.com, konstantin.ananyev@intel.com Date: Fri, 9 Jul 2021 16:00:08 +0000 Message-ID: X-Mailer: git-send-email 2.25.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-dev] [PATCH v9 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Message-ID: <20210709160008.50EPdUsfz0umfjgYJDGSWlcPRM_0RSFE56KGjjEIuTw@z> 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 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/default.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 + 22 files changed, 847 insertions(+), 262 deletions(-) -- 2.25.1