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 89B22455CB; Tue, 9 Jul 2024 04:38:32 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 75F0D402B8; Tue, 9 Jul 2024 04:38:32 +0200 (CEST) Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188]) by mails.dpdk.org (Postfix) with ESMTP id B065E40269 for ; Tue, 9 Jul 2024 04:38:30 +0200 (CEST) Received: from mail.maildlp.com (unknown [172.19.163.252]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4WJ4rH6f8yzdgwC; Tue, 9 Jul 2024 10:36:47 +0800 (CST) Received: from kwepemm600004.china.huawei.com (unknown [7.193.23.242]) by mail.maildlp.com (Postfix) with ESMTPS id B6E4D18007E; Tue, 9 Jul 2024 10:38:27 +0800 (CST) Received: from localhost.localdomain (10.28.79.22) by kwepemm600004.china.huawei.com (7.193.23.242) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.39; Tue, 9 Jul 2024 10:38:27 +0800 From: Huisong Li To: CC: , , , , , , , , , Subject: [PATCH v6 0/2] power: introduce PM QoS interface Date: Tue, 9 Jul 2024 10:29:25 +0800 Message-ID: <20240709022927.26625-1-lihuisong@huawei.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20240320105529.5626-1-lihuisong@huawei.com> References: <20240320105529.5626-1-lihuisong@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit X-Originating-IP: [10.28.79.22] X-ClientProxiedBy: dggems705-chm.china.huawei.com (10.3.19.182) To kwepemm600004.china.huawei.com (7.193.23.242) 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 The deeper the idle state, the lower the power consumption, but the longer the resume time. Some service are delay sensitive and very except the low resume time, like interrupt packet receiving mode. And the "/sys/devices/system/cpu/cpuX/power/pm_qos_resume_latency_us" sysfs interface is used to set and get the resume latency limit on the cpuX for userspace. Please see the description in kernel document[1]. Each cpuidle governor in Linux select which idle state to enter based on this CPU resume latency in their idle task. The per-CPU PM QoS API can be used to control this CPU's idle state selection and limit just enter the shallowest idle state to low the delay after sleep by setting strict resume latency (zero value). [1] https://www.kernel.org/doc/html/latest/admin-guide/abi-testing.html?highlight=pm_qos_resume_latency_us#abi-sys-devices-power-pm-qos-resume-latency-us --- v6: - update release_24_07.rst based on dpdk repo to resolve CI warning. v5: - use LINE_MAX to replace BUFSIZ, and use snprintf to replace sprintf. v4: - fix some comments basd on Stephen - add stdint.h include - add Acked-by Morten Brørup v3: - add RTE_POWER_xxx prefix for some macro in header - add the check for lcore_id with rte_lcore_is_enabled v2: - use PM QoS on CPU wide to replace the one on system wide Huisong Li (2): power: introduce PM QoS API on CPU wide examples/l3fwd-power: add PM QoS configuration doc/guides/prog_guide/power_man.rst | 24 ++++++ doc/guides/rel_notes/release_24_07.rst | 4 + examples/l3fwd-power/main.c | 28 ++++++ lib/power/meson.build | 2 + lib/power/rte_power_qos.c | 114 +++++++++++++++++++++++++ lib/power/rte_power_qos.h | 73 ++++++++++++++++ lib/power/version.map | 2 + 7 files changed, 247 insertions(+) create mode 100644 lib/power/rte_power_qos.c create mode 100644 lib/power/rte_power_qos.h -- 2.22.0