acpi_perf error, powerd exiting

Philip S. Schulz ph.schulz at gmx.de
Sat Aug 27 14:52:42 GMT 2005


Stefan Farfeleder wrote:
> Hi,
> 
> on my ThinkPad R32 (dmesg attached), acpi_perf reports the following
> error at times, usually after a period of inactivity:
> 
> acpi_perf0: Px transition to 1200 failed
> acpi_perf0: set freq failed, err 6
> 
> This causes powerd to terminate.  It seems to be a temporary error,
> because if I restart powerd, it works again.  Should powerd be more
> fault-tolerant, is this an acpi_perf bug or my hardware broken?
> 

  powerd does not recover from such errors, so the fact that it "dies" 
(actually it prints an error message to stderr and exits) is expected. I 
guess powerd can easily sort of recover (i.e. continue to run and 
re-attempt the frequency the next time the frequency needs to be 
adjusted) from the error you're seeing, but I think that really is no 
real fix for your problem.
  See the patch included in this message but please note that I haven't 
tested it since I don't use acpi_perf and also please note that I don't 
know what effects this has in interaction with cpufreq and acpi_perf.

As to whether you're seeing a acpi_perf bug or experience hardware 
problems: I don't know.

Regards,

Phil.

Index: powerd.c
===================================================================
RCS file: /home/ncvs/src/usr.sbin/powerd/powerd.c,v
retrieving revision 1.11
diff -u -r1.11 powerd.c
--- powerd.c	24 Aug 2005 19:42:40 -0000	1.11
+++ powerd.c	27 Aug 2005 14:46:48 -0000
@@ -462,7 +462,7 @@
  				    cpu_running_mark, curfreq, freqs[i]);
  			}
  			if (set_freq(freqs[i]))
-				err(1, "error setting CPU frequency %d",
+				warn("error setting CPU frequency %d",
  				    freqs[i]);
  		} else if (idle > (total * cpu_idle_mark) / 100 &&
  		    curfreq > freqs[numfreqs - 1]) {
@@ -473,7 +473,7 @@
  				    cpu_idle_mark, curfreq, freqs[i]);
  			}
  			if (set_freq(freqs[i]))
-				err(1, "error setting CPU frequency %d",
+				warn("error setting CPU frequency %d",
  				    freqs[i]);
  		}
  	}

-- 
Don't fix it if it ain't broke.


More information about the freebsd-mobile mailing list