[v4,2/2] power: do not skip saving original pstate governor

Message ID 20210402092645.258257-2-anatoly.burakov@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Thomas Monjalon
Headers
Series [v3,1/2] power: fix pstate base frequency handling |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/iol-testing success Testing PASS

Commit Message

Burakov, Anatoly April 2, 2021, 9:26 a.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 `rte_strscpy`.

Fixes: e6c6dc0f96c8 ("power: add p-state driver compatibility")
Cc: david.hunt@intel.com

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 April 2, 2021, 9:34 a.m. UTC | #1
On 02-Apr-21 10:26 AM, 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`.
> 
> Fixes: e6c6dc0f96c8 ("power: add p-state driver compatibility")
> Cc: david.hunt@intel.com
> 
> 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 c4639e4b8a..1cb0e4d917 100644
> --- a/lib/librte_power/power_pstate_cpufreq.c
> +++ b/lib/librte_power/power_pstate_cpufreq.c

Apologies for wrong threading, i'm sending patches from a new machine so 
it's been a while since i've run git commands manually...
  
Pattan, Reshma April 2, 2021, 11:12 a.m. UTC | #2
> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Burakov, Anatoly
> Sent: Friday, April 2, 2021 10:34 AM
> To: dev@dpdk.org
> Cc: Hunt, David <david.hunt@intel.com>
> Subject: Re: [dpdk-dev] [PATCH v4 2/2] power: do not skip saving original pstate
> governor
> 
> On 02-Apr-21 10:26 AM, 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.
> >
> > Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>

Acked-by: Reshma Pattan <reshma.pattan@intel.com>
  
Thomas Monjalon April 6, 2021, 8:38 a.m. UTC | #3
02/04/2021 13:12, Pattan, Reshma:
> > From: dev <dev-bounces@dpdk.org> On Behalf Of Burakov, Anatoly
> > On 02-Apr-21 10:26 AM, 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.
> > >
> > > Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
> 
> Acked-by: Reshma Pattan <reshma.pattan@intel.com>

Applied, thanks
  

Patch

diff --git a/lib/librte_power/power_pstate_cpufreq.c b/lib/librte_power/power_pstate_cpufreq.c
index c4639e4b8a..1cb0e4d917 100644
--- a/lib/librte_power/power_pstate_cpufreq.c
+++ b/lib/librte_power/power_pstate_cpufreq.c
@@ -382,6 +382,9 @@  power_set_governor_performance(struct pstate_power_info *pi)
 	/* Strip off terminating '\n' */
 	strtok(buf, "\n");
 
+	/* 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) {
@@ -390,8 +393,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 */
 	val = fseek(f, 0, SEEK_SET);