Messages in this thread | | | Date | Wed, 22 Aug 2012 15:39:40 +0200 | From | Andre Przywara <> | Subject | Re: [PATCH 7/8] cpufreq: Remove support for hardware P-state chips from powernow-k8 |
| |
On 08/22/2012 03:00 AM, Thomas Renninger wrote: > On Monday 20 August 2012 22:49:16 Rafael J. Wysocki wrote: >> On Monday, August 20, 2012, Andre Przywara wrote: >>> On 08/05/2012 11:33 PM, Rafael J. Wysocki wrote: >>>> On Thursday, July 26, 2012, Andre Przywara wrote: > ... >>> >>> If you insist, I can keep the code in powernow-k8, but it probably >>> wouldn't receive any support anymore and would increase confusion on the >>> user side. >> >> I'm not afraid of that. And as I said, you can just add info messages to >> powernow-k8 saying that the feature is deprecated and will be removed in the >> future and _then_ you actually _can_ remove it in the future (say, 2-3 major >> kernel releasew from now). > > Full code duplication in powernow-k8 and acpi-cpufreq does not make sense > to me. > You would need extra logic that only the first is successfully loaded etc. > IMO this has more risk of introducing new bugs than any good. > A message like that might be useful though: > if (boot_cpu_has(X86_FEATURE_HW_PSTATE)) > { > printk("powernowk8 does not serve MSR based frequency switching anymore, use acpi-cpufreq instead\n"); > return -1; > }
Matthew had something even better, that is patch 3/8: + if (static_cpu_has(X86_FEATURE_HW_PSTATE)) + request_module("acpi_cpufreq");
So if someone tries to load powernow-k8 on a recent CPU, it will automatically load acpi-cpufreq instead. I just realized that this doesn't work as expected, because powernow-k8 bails out early due to only family 0xf being in the matching CPUID family list. Will fix this.
I will do some tests now to check our options: 1. A combination of Matthew's and Thomas' ideas: if powernow-k8 is loaded on newer CPUs, request acpi-cpufreq to load _plus_ write a warning that powernow-k8 is obsolete for this hardware. Don't load powernow-k8 (which has support removed anyway). My favorite.
2. Add code (probably to the generic cpufreq framework) to avoid loading two drivers. Print a warning if tried anyways. Leave h/w P-state support in powernow-k8. It seems like that acpi-cpufreq takes precedence over powernow-k8 in distribution's module load list, so this should work as expected even with keeping the support in powernow-k8 (as a fallback in case of trouble).
Regards, Andre.
> This would show people with init scripts that try to load cpufreq drivers > manually that they are not needed anymore. acpi-cpufreq should have been > loaded automatically already and cpufreq should be active. > > Thomas >
-- Andre Przywara AMD-Operating System Research Center (OSRC), Dresden, Germany
| |