diff mbox series

[3/3] power: do not skip saving original pstate governor

Message ID 33bdcdb912b4a2e3e9cb743dd93385fad78ece86.1617113740.git.anatoly.burakov@intel.com (mailing list archive)
State Superseded
Headers show
Series [1/3] power: refactor base frequency detection | expand

Checks

Context Check Description
ci/Intel-compilation fail Compilation issues
ci/checkpatch success coding style OK

Commit Message

Burakov, Anatoly March 30, 2021, 2:15 p.m. UTC
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 `strscpy`.

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
---
 lib/librte_power/power_pstate_cpufreq.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Burakov, Anatoly March 30, 2021, 4:52 p.m. UTC | #1
On 30-Mar-21 3:15 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 `strscpy`.
> 
> Signed-off-by: Anatoly Burakov <anatoly.burakov@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..a7a44df23f 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 */
> +	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);
> 

Forgot rte_ with strscpy...
diff mbox series

Patch

diff --git a/lib/librte_power/power_pstate_cpufreq.c b/lib/librte_power/power_pstate_cpufreq.c
index 7ea1bf677a..a7a44df23f 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 */
+	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);