From patchwork Wed Dec 14 08:14:28 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Feifei Wang X-Patchwork-Id: 120874 Return-Path: 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 826F5A0543; Wed, 14 Dec 2022 09:14:40 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3DF33400D6; Wed, 14 Dec 2022 09:14:40 +0100 (CET) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mails.dpdk.org (Postfix) with ESMTP id BF89C4003F for ; Wed, 14 Dec 2022 09:14:39 +0100 (CET) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id BF2D8FEC; Wed, 14 Dec 2022 00:15:19 -0800 (PST) Received: from net-x86-dell-8268.shanghai.arm.com (net-x86-dell-8268.shanghai.arm.com [10.169.210.116]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id C9BC83F73B; Wed, 14 Dec 2022 00:14:37 -0800 (PST) From: Feifei Wang To: Cc: dev@dpdk.org, nd@arm.com, Feifei Wang Subject: [PATCH v5 0/2] Enable PMD power management on Arm Date: Wed, 14 Dec 2022 16:14:28 +0800 Message-Id: <20221214081430.1717903-1-feifei.wang2@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220825064251.2637274-1-feifei.wang2@arm.com> References: <20220825064251.2637274-1-feifei.wang2@arm.com> MIME-Version: 1.0 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 For Arm aarch, use WFE instructions to enable PMD power management. Test Results: dynamic instructions over 1sec without wfe with wfe percentage ampere-altra 6,298,483,712 9,117,624 -99.855% thunderx2 6,990,909,373 3,247,226 -99.954% When power efficient PMD is enabled by using WFE on Arm, if no pkts received, the instructions that CPU executes is reduced by 99%. V2: 1. move rte_wake_up API out of signal_exit(David Marchand, Thomas, Stephen) 2. Add test results when using wfe on ARM server v3: 1. make code cleaner (Stephen) v4: 1. add support check in API (Thomas) v5: 1. delete v4 check patch and l3fwd-power change. This is due to that WFE instructions can be applied into all lcores. When all cores are in 'WFE' state, kernal can run normally and receive interrupt signal to send it to the l3fwd-power thread. Thus core in 'WFE' state can exit from sleeping by interrupt event. Feifei Wang (2): eal: add 8 bits case for wait scheme eal: add power mgmt support on Arm lib/eal/arm/include/rte_pause_64.h | 32 +++++++++++-- lib/eal/arm/rte_cpuflags.c | 5 +++ lib/eal/arm/rte_power_intrinsics.c | 72 ++++++++++++++++++++++++++++-- 3 files changed, 102 insertions(+), 7 deletions(-)