[PATCH v11 2/2] examples/l3fwd-power: add PM QoS configuration

Konstantin Ananyev konstantin.ananyev at huawei.com
Tue Oct 22 11:10:59 CEST 2024



> 
> Add PM QoS configuration to declease the delay after sleep in case of
> entering deeper idle state.

I still think it is worth to mention this behavior change somewhere in the docs.
Probably release_notes or sample app guides.
> 
> 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);
> +		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