Re: cpufreq problem wrt suspend/resume on Athlon64

From: Pavel Machek
Date: Thu Feb 03 2005 - 09:43:54 EST


Hi!

> > > So, would it be acceptable to check in _suspend() if the state is S4
> > > and drop the frequency in that case or do nothing otherwise?
> >
> > No. The point is that this is _very_ system-specific. Some systems resume
> > always at full speed, some always at low speed; for S4 the behaviour may be
> > completely unpredictable. And in fact I wouldn't want my desktop P4 drop th
> > 12.5 % frequency if I ask it to suspend to disk, too. "Ignoring" the warning
> > seems to be the best thing to me. The good thing is, after all, that cpufreq
> > detected this situation and tries to correct for it.
>
> Well, the warning is not a big problem, as far as I'm concerned. The problem is
> that the box often reboots when it's woken up on batteries and this certainly
> is related to cpufreq (ie it does not happen if cpufreq is not compiled in).
>
> Pavel has suggested that it may happen when the frequency of
> the CPU is too high on resume, so I'm trying to verify if this is the case. If so,
> which I'm not entirely convinced about yet, I'll be going to provide a fix
> for it, but I wouldn't like to do anything that's not acceptable from the
> start.

Well, try to force your machine to 2GHz while it is on battery. If it
crashes, you have verified it is indeed the problem. [Insert standard
disclaimer about exploding batteries here.]

> I'm currently thinking that the proper approach may be to add a ->suspend()
> routine to struct cpufreq_driver and call the driver-specific ->suspend()
> (if one is defined) from cpufreq_suspend(). Then, it'll be possible to do
> whatever-is-necessary on a per-driver basis. Just a thought. :-)

Yes, that seems like right solution.
Pavel
--
People were complaining that M$ turns users into beta-testers...
...jr ghea gurz vagb qrirybcref, naq gurl frrz gb yvxr vg gung jnl!
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/