Fix processor_get_freq
PATCH 1/1 Fix processor_get_freq
The core cpufreq code doesn't appear to understand returning -EAGAIN
for the get() function of the cpufreq_driver. If PAL_GET_PSTATE returns -1, such as when running on Xen, scaling_cur_freq is happy to return 4294967285 kHz (ie. (unsigned)-11). The other drivers appear to return 0 for a failure, and doing so gives me the max frequency from scaling_cur_frequency and "<unknown>" from cpuinfo_cur_frequency. I believe that's the desired behavior. Thanks,
Alex
---
arch/ia64/kernel/cpufreq/acpi-cpufreq.c +2 -4
@@ -113,10 +113,8 @@ processor_get_freq ( saved_mask = current->cpus_allowed;set_cpus_allowed (current,cpumask_of_cpu (cpu)); -if (smp_processor_id () != cpu) { - ret = -EAGAIN ; +if (smp_processor_id () != cpu) goto migrate_end; - }/* processor_get_pstate gets the instantaneous frequency */ ret =processor_get_pstate (&value);
@@ -125,7 +123,7 @@ processor_get_freq (set_cpus_allowed (current, saved_mask);printk (KERN_WARNING "get performance failed with error %d\n" , ret); - ret = -EAGAIN ; + ret =0 ; goto migrate_end; } clock_freq =extract_clock (data, value, cpu);
Ack.
Thanks,
Venki
Quoted 58 lines
-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Alex Williamson
Sent: Monday, August 13, 2007 2:50 PM
To: Pallipadi, Venkatesh
Cc: linux-ia64
Subject: [PATCH] Fixprocessor_get_freqThe core cpufreq code doesn't appear to understand returning
-EAGAIN
for theget()function of thecpufreq_driver. IfPAL_GET_PSTATEreturns
-1, such as when running on Xen,scaling_cur_freqis happy to return 4294967285 kHz (ie. (unsigned)-11). The other drivers appear to return 0 for a failure, and doing so gives me the max frequency fromscaling_cur_frequencyand "<unknown>" fromcpuinfo_cur_frequency. I believe that's the desired behavior. Thanks,Alex
Signed-off-by Alex Williamson <[email protected]>---
diff -r
1559df81a153arch/ia64/kernel/cpufreq/acpi-cpufreq.c
---a/arch/ia64/kernel/cpufreq/acpi-cpufreq.cMon Aug 13
05:00:33 2007 +0000
+++b/arch/ia64/kernel/cpufreq/acpi-cpufreq.cMon Aug 13
15:41:29 2007 -0600arch/ia64/kernel/cpufreq/acpi-cpufreq.c +2
-4@@ -113,10 +113,8 @@ processor_get_freq ( saved_mask = current->cpus_allowed;set_cpus_allowed (current,cpumask_of_cpu (cpu)); -if (smp_processor_id () != cpu) { - ret = -EAGAIN ; +if (smp_processor_id () != cpu) goto migrate_end; - }/* processor_get_pstate gets the instantaneous frequency */ ret =processor_get_pstate (&value);@@ -125,7 +123,7 @@ processor_get_freq (set_cpus_allowed (current, saved_mask); printk(KERN_WARNING "get performance failed with error %d\n", ret); - ret = -EAGAIN ; + ret =0 ; goto migrate_end; }clock_freq = extract_clock(data, value, cpu);-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html