]> git.droids-corp.org - dpdk.git/commitdiff
power: do not skip saving original P-state governor
authorAnatoly Burakov <anatoly.burakov@intel.com>
Fri, 2 Apr 2021 09:26:45 +0000 (09:26 +0000)
committerThomas Monjalon <thomas@monjalon.net>
Tue, 6 Apr 2021 08:36:49 +0000 (10:36 +0200)
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: stable@dpdk.org
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Reshma Pattan <reshma.pattan@intel.com>
lib/librte_power/power_pstate_cpufreq.c

index c4639e4b8a309dd812b98ee7595f3e1bcf36ec5c..1cb0e4d917a068b5fefe3e6b573552d8e7b0d6fc 100644 (file)
@@ -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);