Date: Sat, 27 Aug 2005 16:52:17 +0200 From: "Philip S. Schulz" <ph.schulz@gmx.de> To: Stefan Farfeleder <stefan@fafoe.narf.at> Cc: freebsd-mobile@freebsd.org Subject: Re: acpi_perf error, powerd exiting Message-ID: <43107E21.5010400@gmx.de> In-Reply-To: <20050827140129.GB595@wombat.fafoe.narf.at> References: <20050827140129.GB595@wombat.fafoe.narf.at>
next in thread | previous in thread | raw e-mail | index | archive | help
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.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?43107E21.5010400>