power: enable CPPC support in power library
A message that is not in the archive (sent off-list or not yet received): 20240906210637.630356
PATCH v3 1/2 power: enable CPPC support in power library
Power library already supports Linux CPPC driver. Enable its use and fix the name of the CPPC driver name.
Signed-off-by Wathsala Vithanage <[email protected]>
Reviewed-by Dhruv Tripathi <[email protected]>
--- lib/power/power_cppc_cpufreq.c | 2 +- lib/power/rte_power_pmd_mgmt.c | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-)
lib/power/power_cppc_cpufreq.c +1 -1
@@ -36,7 +36,7 @@#define POWER_SYSFILE_SYS_MAX \ "/sys/devices/system/cpu/cpu%u/cpufreq/cpuinfo_max_freq" -#define POWER_CPPC_DRIVER "cppc-cpufreq" +#define POWER_CPPC_DRIVER "cppc_cpufreq"#define BUS_FREQ 100000enum power_state {
lib/power/rte_power_pmd_mgmt.c +6 -5
@@ -419,11 +419,12 @@ check_scale(unsigned int lcore) {enum power_management_env env; -/* only PSTATE and ACPI modes are supported */ +/* only PSTATE, AMD-PSTATE, ACPI and CPPC modes are supported */ if (!rte_power_check_env_supported (PM_ENV_ACPI_CPUFREQ ) && !rte_power_check_env_supported (PM_ENV_PSTATE_CPUFREQ ) && - !rte_power_check_env_supported (PM_ENV_AMD_PSTATE_CPUFREQ )) { -POWER_LOG (DEBUG ,"Neither ACPI nor PSTATE modes are supported" ); + !rte_power_check_env_supported (PM_ENV_AMD_PSTATE_CPUFREQ ) && + !rte_power_check_env_supported (PM_ENV_CPPC_CPUFREQ )) { +POWER_LOG (DEBUG ,"Only ACPI, PSTATE, AMD-PSTATE, or CPPC modes are supported" );return -ENOTSUP ; }/* ensure we could initialize the power library */
@@ -433,8 +434,8 @@ check_scale(unsigned int lcore)/* ensure we initialized the correct env */ env =rte_power_get_env ();if (env !=PM_ENV_ACPI_CPUFREQ && env !=PM_ENV_PSTATE_CPUFREQ && - env !=PM_ENV_AMD_PSTATE_CPUFREQ ) { -POWER_LOG (DEBUG ,"Neither ACPI nor PSTATE modes were initialized" ); + env !=PM_ENV_AMD_PSTATE_CPUFREQ && env !=PM_ENV_CPPC_CPUFREQ ) { +POWER_LOG (DEBUG ,"Unable to initialize ACPI, PSTATE, AMD-PSTATE, or CPPC modes" );return -ENOTSUP ; }
Signature · 1 line
2.34.1
PATCH v3 2/2 power: detect supported driver
Check if the frequency scaling driver is supported before attempting to initialize.
Signed-off-by Wathsala Vithanage <[email protected]>
Reviewed-by Dhruv Tripathi <[email protected]>
--- lib/power/power_acpi_cpufreq.c | 6 ++++++ lib/power/power_amd_pstate_cpufreq.c | 6 ++++++ lib/power/power_cppc_cpufreq.c | 6 ++++++ lib/power/power_pstate_cpufreq.c | 6 ++++++ 4 files changed, 24 insertions(+)
lib/power/power_acpi_cpufreq.c +6 -0
@@ -236,6 +236,12 @@ power_acpi_cpufreq_init(unsigned int lcore_id)struct acpi_power_info *pi;uint32_t exp_state; +if (!power_acpi_cpufreq_check_supported ()) { +POWER_LOG (ERR ,"%s driver is not supported" , +POWER_ACPI_DRIVER ); +return -1 ; + } +if (lcore_id >=RTE_MAX_LCORE ) {POWER_LOG (ERR ,"Lcore id %u can not exceeds %u" , lcore_id,RTE_MAX_LCORE -1U );
lib/power/power_amd_pstate_cpufreq.c +6 -0
@@ -354,6 +354,12 @@ power_amd_pstate_cpufreq_init(unsigned int lcore_id)struct amd_pstate_power_info *pi;uint32_t exp_state; +if (!power_amd_pstate_cpufreq_check_supported ()) { +POWER_LOG (ERR ,"%s driver is not supported" , +POWER_AMD_PSTATE_DRIVER ); +return -1 ; + } +if (lcore_id >=RTE_MAX_LCORE ) {POWER_LOG (ERR ,"Lcore id %u can not exceeds %u" , lcore_id,RTE_MAX_LCORE -1U );
lib/power/power_cppc_cpufreq.c +6 -0
@@ -340,6 +340,12 @@ power_cppc_cpufreq_init(unsigned int lcore_id)struct cppc_power_info *pi;uint32_t exp_state; +if (!power_cppc_cpufreq_check_supported ()) { +POWER_LOG (ERR ,"%s driver is not supported" , +POWER_CPPC_DRIVER ); +return -1 ; + } +if (lcore_id >=RTE_MAX_LCORE ) {POWER_LOG (ERR ,"Lcore id %u can not exceeds %u" , lcore_id,RTE_MAX_LCORE -1U );
lib/power/power_pstate_cpufreq.c +6 -0
@@ -542,6 +542,12 @@ power_pstate_cpufreq_init(unsigned int lcore_id)struct pstate_power_info *pi;uint32_t exp_state; +if (!power_pstate_cpufreq_check_supported ()) { +POWER_LOG (ERR ,"%s driver is not supported" , +POWER_PSTATE_DRIVER ); +return -1 ; + } +if (lcore_id >=RTE_MAX_LCORE ) {POWER_LOG (ERR ,"Lcore id %u can not exceed %u" , lcore_id,RTE_MAX_LCORE -1U );
Signature · 1 line
2.34.1
10/10/2024 16:17, Wathsala Vithanage:
Quoted 5 lines
Power library already supports Linux CPPC driver. Enable its use and fix the name of the CPPC driver name.
Signed-off-by Wathsala Vithanage <[email protected]>Reviewed-by Dhruv Tripathi <[email protected]>
Series applied with a little more details about being a real fix.
Quoted 8 lines
Quoted 4 lines
fix the name of the CPPC driver name.
Signed-off-by Wathsala Vithanage <[email protected]>Reviewed-by Dhruv Tripathi <[email protected]>Series applied with a little more details about being a real fix.
Thanks you Thomas.