drivers/acpi/cppc_acpi.c | 2 -- drivers/acpi/processor_driver.c | 1 + 2 files changed, 1 insertion(+), 2 deletions(-)
From: Mario Limonciello <mario.limonciello@amd.com>
arch_init_invariance_cppc() is called at the end of
acpi_cppc_processor_probe() in order to configure frequency invariance
based upon the values from _CPC.
This however doesn't work on AMD CPPC shared memory designs that have
AMD preferred cores enabled because _CPC needs to be analyzed from all
cores to judge if preferred cores are enabled.
This issue manifests to users as a warning since commit 21fb59ab4b97
("ACPI: CPPC: Adjust debug messages in amd_set_max_freq_ratio() to warn"):
```
Could not retrieve highest performance (-19)
```
However the warning isn't the cause of this, it was actually
commit 279f838a61f9 ("x86/amd: Detect preferred cores in
amd_get_boost_ratio_numerator()") which exposed the issue.
To fix this problem, push the call to the arch_init_invariance_cppc()
macro to the end of acpi_processor_driver_init().
Fixes: 279f838a61f9 ("x86/amd: Detect preferred cores in amd_get_boost_ratio_numerator()")
Reported-by: Ivan Shapovalov <intelfx@intelfx.name>
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=219431
Tested-by: Oleksandr Natalenko <oleksandr@natalenko.name>
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
---
drivers/acpi/cppc_acpi.c | 2 --
drivers/acpi/processor_driver.c | 1 +
2 files changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/acpi/cppc_acpi.c b/drivers/acpi/cppc_acpi.c
index c3fc2c05d8687..f8614771bf32b 100644
--- a/drivers/acpi/cppc_acpi.c
+++ b/drivers/acpi/cppc_acpi.c
@@ -905,8 +905,6 @@ int acpi_cppc_processor_probe(struct acpi_processor *pr)
goto out_free;
}
- arch_init_invariance_cppc();
-
kfree(output.pointer);
return 0;
diff --git a/drivers/acpi/processor_driver.c b/drivers/acpi/processor_driver.c
index cb52dd000b958..59620e7bc6647 100644
--- a/drivers/acpi/processor_driver.c
+++ b/drivers/acpi/processor_driver.c
@@ -270,6 +270,7 @@ static int __init acpi_processor_driver_init(void)
NULL, acpi_soft_cpu_dead);
acpi_processor_throttling_init();
+ arch_init_invariance_cppc();
return 0;
err:
driver_unregister(&acpi_processor_driver);
--
2.43.0
Hi Mario, kernel test robot noticed the following build errors: [auto build test ERROR on rafael-pm/linux-next] [also build test ERROR on rafael-pm/bleeding-edge linus/master v6.12-rc5 next-20241031] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Mario-Limonciello/ACPI-processor-Move-arch_init_invariance_cppc-call-later/20241030-015107 base: https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git linux-next patch link: https://lore.kernel.org/r/20241029174910.600482-1-superm1%40kernel.org patch subject: [PATCH] ACPI: processor: Move arch_init_invariance_cppc() call later config: riscv-randconfig-r071-20241031 (https://download.01.org/0day-ci/archive/20241031/202410311801.4Cjd0Myc-lkp@intel.com/config) compiler: riscv64-linux-gcc (GCC) 14.1.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241031/202410311801.4Cjd0Myc-lkp@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202410311801.4Cjd0Myc-lkp@intel.com/ All errors (new ones prefixed by >>): drivers/acpi/processor_driver.c: In function 'acpi_processor_driver_init': >> drivers/acpi/processor_driver.c:273:9: error: implicit declaration of function 'arch_init_invariance_cppc' [-Wimplicit-function-declaration] 273 | arch_init_invariance_cppc(); | ^~~~~~~~~~~~~~~~~~~~~~~~~ Kconfig warnings: (for reference only) WARNING: unmet direct dependencies detected for GET_FREE_REGION Depends on [n]: SPARSEMEM [=n] Selected by [m]: - RESOURCE_KUNIT_TEST [=m] && RUNTIME_TESTING_MENU [=y] && KUNIT [=y] vim +/arch_init_invariance_cppc +273 drivers/acpi/processor_driver.c 239 240 /* 241 * We keep the driver loaded even when ACPI is not running. 242 * This is needed for the powernow-k8 driver, that works even without 243 * ACPI, but needs symbols from this driver 244 */ 245 static enum cpuhp_state hp_online; 246 static int __init acpi_processor_driver_init(void) 247 { 248 int result = 0; 249 250 if (acpi_disabled) 251 return 0; 252 253 if (!cpufreq_register_notifier(&acpi_processor_notifier_block, 254 CPUFREQ_POLICY_NOTIFIER)) { 255 acpi_processor_cpufreq_init = true; 256 acpi_processor_ignore_ppc_init(); 257 } 258 259 result = driver_register(&acpi_processor_driver); 260 if (result < 0) 261 return result; 262 263 result = cpuhp_setup_state(CPUHP_AP_ONLINE_DYN, 264 "acpi/cpu-drv:online", 265 acpi_soft_cpu_online, NULL); 266 if (result < 0) 267 goto err; 268 hp_online = result; 269 cpuhp_setup_state_nocalls(CPUHP_ACPI_CPUDRV_DEAD, "acpi/cpu-drv:dead", 270 NULL, acpi_soft_cpu_dead); 271 272 acpi_processor_throttling_init(); > 273 arch_init_invariance_cppc(); 274 return 0; 275 err: 276 driver_unregister(&acpi_processor_driver); 277 return result; 278 } 279 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
Hi Mario, kernel test robot noticed the following build errors: [auto build test ERROR on rafael-pm/linux-next] [also build test ERROR on rafael-pm/bleeding-edge linus/master v6.12-rc5 next-20241031] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Mario-Limonciello/ACPI-processor-Move-arch_init_invariance_cppc-call-later/20241030-015107 base: https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git linux-next patch link: https://lore.kernel.org/r/20241029174910.600482-1-superm1%40kernel.org patch subject: [PATCH] ACPI: processor: Move arch_init_invariance_cppc() call later config: i386-randconfig-141-20241031 (https://download.01.org/0day-ci/archive/20241031/202410311924.XtRR5d9M-lkp@intel.com/config) compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241031/202410311924.XtRR5d9M-lkp@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202410311924.XtRR5d9M-lkp@intel.com/ All errors (new ones prefixed by >>): >> drivers/acpi/processor_driver.c:273:2: error: call to undeclared function 'arch_init_invariance_cppc'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 273 | arch_init_invariance_cppc(); | ^ 1 error generated. vim +/arch_init_invariance_cppc +273 drivers/acpi/processor_driver.c 239 240 /* 241 * We keep the driver loaded even when ACPI is not running. 242 * This is needed for the powernow-k8 driver, that works even without 243 * ACPI, but needs symbols from this driver 244 */ 245 static enum cpuhp_state hp_online; 246 static int __init acpi_processor_driver_init(void) 247 { 248 int result = 0; 249 250 if (acpi_disabled) 251 return 0; 252 253 if (!cpufreq_register_notifier(&acpi_processor_notifier_block, 254 CPUFREQ_POLICY_NOTIFIER)) { 255 acpi_processor_cpufreq_init = true; 256 acpi_processor_ignore_ppc_init(); 257 } 258 259 result = driver_register(&acpi_processor_driver); 260 if (result < 0) 261 return result; 262 263 result = cpuhp_setup_state(CPUHP_AP_ONLINE_DYN, 264 "acpi/cpu-drv:online", 265 acpi_soft_cpu_online, NULL); 266 if (result < 0) 267 goto err; 268 hp_online = result; 269 cpuhp_setup_state_nocalls(CPUHP_ACPI_CPUDRV_DEAD, "acpi/cpu-drv:dead", 270 NULL, acpi_soft_cpu_dead); 271 272 acpi_processor_throttling_init(); > 273 arch_init_invariance_cppc(); 274 return 0; 275 err: 276 driver_unregister(&acpi_processor_driver); 277 return result; 278 } 279 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
© 2016 - 2024 Red Hat, Inc.