[dpdk-dev] [PATCH v2 3/3] power: do not skip saving original pstate governor

Burakov, Anatoly anatoly.burakov at intel.com
Tue Mar 30 18:51:58 CEST 2021


On 30-Mar-21 3:25 PM, Anatoly Burakov wrote:
> Currently, when we set the pstate governor to "performance", we check if
> it is already set to this value, and if it is, we skip setting it.
> 
> However, we never save this value anywhere, so that next time we come
> back and request the governor to be set to its original value, the
> original value is empty.
> 
> Fix it by saving the original pstate governor first. While we're at it,
> replace `strlcpy` with `rte_strscpy`.
> 
> Signed-off-by: Anatoly Burakov <anatoly.burakov at intel.com>
> ---
>   lib/librte_power/power_pstate_cpufreq.c | 5 +++--
>   1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/lib/librte_power/power_pstate_cpufreq.c b/lib/librte_power/power_pstate_cpufreq.c
> index 7ea1bf677a..db7856dadc 100644
> --- a/lib/librte_power/power_pstate_cpufreq.c
> +++ b/lib/librte_power/power_pstate_cpufreq.c
> @@ -450,6 +450,9 @@ power_set_governor_performance(struct pstate_power_info *pi)
>   	ret = read_core_sysfs_s(f_governor, buf, sizeof(buf));
>   	FOPS_OR_ERR_GOTO(ret, out);
>   
> +	/* Save the original governor */
> +	rte_strscpy(pi->governor_ori, buf, sizeof(pi->governor_ori));
> +
>   	/* Check if current governor is performance */
>   	if (strncmp(buf, POWER_GOVERNOR_PERF,
>   			sizeof(POWER_GOVERNOR_PERF)) == 0) {
> @@ -458,8 +461,6 @@ power_set_governor_performance(struct pstate_power_info *pi)
>   				"already performance\n", pi->lcore_id);
>   		goto out;
>   	}
> -	/* Save the original governor */
> -	strlcpy(pi->governor_ori, buf, sizeof(pi->governor_ori));
>   
>   	/* Write 'performance' to the governor */
>   	ret = write_core_sysfs_s(f_governor, POWER_GOVERNOR_PERF);
> 

Fixes: e6c6dc0f96c8 ("power: add p-state driver compatibility")

-- 
Thanks,
Anatoly


More information about the dev mailing list