[PATCH v10 2/2] examples/l3fwd-power: add PM QoS configuration
lihuisong (C)
lihuisong at huawei.com
Tue Oct 15 09:32:34 CEST 2024
Hi Konstantin Ananyev,
在 2024/10/14 16:24, Konstantin Ananyev 写道:
>
>> Add PM QoS configuration to declease the delay after sleep in case of
>> entering deeper idle state.
>>
>> Signed-off-by: Huisong Li <lihuisong at huawei.com>
>> Acked-by: Morten Brørup <mb at smartsharesystems.com>
>> ---
>> examples/l3fwd-power/main.c | 24 ++++++++++++++++++++++++
>> 1 file changed, 24 insertions(+)
>>
>> diff --git a/examples/l3fwd-power/main.c b/examples/l3fwd-power/main.c
>> index 2bb6b092c3..b0ddb54ee2 100644
>> --- a/examples/l3fwd-power/main.c
>> +++ b/examples/l3fwd-power/main.c
>> @@ -47,6 +47,7 @@
>> #include <rte_telemetry.h>
>> #include <rte_power_pmd_mgmt.h>
>> #include <rte_power_uncore.h>
>> +#include <rte_power_qos.h>
>>
>> #include "perf_core.h"
>> #include "main.h"
>> @@ -2260,6 +2261,22 @@ init_power_library(void)
>> return -1;
>> }
>> }
>> +
>> + RTE_LCORE_FOREACH(lcore_id) {
>> + /*
>> + * Set the worker lcore's to have strict latency limit to allow
>> + * the CPU to enter the shallowest idle state.
>> + */
>> + ret = rte_power_qos_set_cpu_resume_latency(lcore_id,
>> + RTE_POWER_QOS_STRICT_LATENCY_VALUE);
> I wonder why it is set to all worker cores silently and unconditionally?
> Wouldn't it be a change from current behavior of the power library?
L3fwd-power uses Rx interrupt to receive packet. Do you mean this
setting should be for the core of Rx queue, right?
This setting doesn't change the behavior of l3fwd-power. It is just for
getting low resume latency when worker core wakes up from sleeping.
>
>> + if (ret != 0) {
>> + RTE_LOG(ERR, L3FWD_POWER,
>> + "Failed to set strict resume latency on core%u.\n",
>> + lcore_id);
>> + return ret;
>> + }
>> + }
>> +
>> return ret;
>> }
>>
>> @@ -2299,6 +2316,13 @@ deinit_power_library(void)
>> }
>> }
>> }
>> +
>> + RTE_LCORE_FOREACH(lcore_id) {
>> + /* Restore the original value in kernel. */
>> + rte_power_qos_set_cpu_resume_latency(lcore_id,
>> + RTE_POWER_QOS_RESUME_LATENCY_NO_CONSTRAINT);
>> + }
>> +
>> return ret;
>> }
>>
>> --
>> 2.22.0
More information about the dev
mailing list