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 398BE45491; Thu, 20 Jun 2024 04:22:51 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id EB26B427B0; Thu, 20 Jun 2024 04:22:50 +0200 (CEST) Received: from szxga03-in.huawei.com (szxga03-in.huawei.com [45.249.212.189]) by mails.dpdk.org (Postfix) with ESMTP id B072E40273 for ; Thu, 20 Jun 2024 04:22:46 +0200 (CEST) Received: from mail.maildlp.com (unknown [172.19.163.174]) by szxga03-in.huawei.com (SkyGuard) with ESMTP id 4W4PLl1vPhzPrd9; Thu, 20 Jun 2024 10:19:11 +0800 (CST) Received: from kwepemm600004.china.huawei.com (unknown [7.193.23.242]) by mail.maildlp.com (Postfix) with ESMTPS id B39251400D6; Thu, 20 Jun 2024 10:22:44 +0800 (CST) Received: from [10.67.121.59] (10.67.121.59) 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; Thu, 20 Jun 2024 10:22:44 +0800 Message-ID: <5f08da26-80df-999a-a67d-43f7304b832c@huawei.com> Date: Thu, 20 Jun 2024 10:22:09 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.2.0 Subject: Re: [PATCH v3 1/2] power: introduce PM QoS API on CPU wide To: Stephen Hemminger CC: , , , , , , , , References: <20240320105529.5626-1-lihuisong@huawei.com> <20240619063144.20733-1-lihuisong@huawei.com> <20240619063144.20733-2-lihuisong@huawei.com> <20240619075658.78ccb370@hermes.local> From: "lihuisong (C)" In-Reply-To: <20240619075658.78ccb370@hermes.local> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [10.67.121.59] X-ClientProxiedBy: dggems706-chm.china.huawei.com (10.3.19.183) 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 Hi Stephen, Thanks for your review. 在 2024/6/19 22:56, Stephen Hemminger 写道: > On Wed, 19 Jun 2024 14:31:43 +0800 > Huisong Li wrote: > >> +PM QoS >> +------ >> + >> +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. 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 set and get the CPU resume latency. >> + >> +The ``rte_power_qos_set_cpu_resume_latency()`` function can effect the work >> +CPU's idle state selection and just allow to enter the shallowest idle state >> +if set to zero (strict resume latency) for this CPU. >> + >> +The ``rte_power_qos_get_cpu_resume_latency()`` function can obtain the resume >> +latency on specified CPU. >> + > Wording of this is hard to read and needs to be reworded for clarity. > Explain more what PM QoS is to the user. Yes, it's very important. How do you feel about the following description? --> 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. 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 set and get the CPU resume latency based on this sysfs. The ``rte_power_qos_set_cpu_resume_latency()`` function can control the CPU's idle state selection in Linux and limit just to enter the shallowest idle state to low the delay of resuming service after sleeping by setting strict resume latency (zero value). The ``rte_power_qos_get_cpu_resume_latency()`` function can get the resume latency on specified CPU. > Also, not sure if details about sysfs implementation is helpful. It's just a short background. IMO, it is helpful for user to make sense of this API. > Should also say this is Linux only. > .