Re: 2.6.31-rc2+: Interrupts enabled after cpufreq_suspend

From: Dave Jones
Date: Fri Jul 10 2009 - 19:47:48 EST


On Sat, Jul 11, 2009 at 08:23:37AM +1000, Ben Herrenschmidt wrote:
> On Fri, 2009-07-10 at 15:25 -0400, Dave Jones wrote:
>
> > The answer seems to be in 42d4dc3f4e1ec1396371aac89d0dccfdd977191b
> > which introduced all this code to work around some failure that only happens
> > on PPC...
> >
> > [PATCH] Add suspend method to cpufreq core
> >
> > In order to properly fix some issues with cpufreq vs. sleep on
> > PowerBooks, I had to add a suspend callback to the pmac_cpufreq driver.
> > I must force a switch to full speed before sleep and I switch back to
> > previous speed on resume.
> >
> >
> > Ben, is there something better we can do here ?
> >
> > I really don't want to add an #ifdef __powerpc__ to core code if we can help it.
> > I'd rather we didn't call into driver guts at all from the suspend path.
>
> Wait a minute ... having a suspend/resume method in cpufreq is one
> thing, having it muck around with SMP is another :-) The ppc code
> doesn't do that.
>
> There's nothing fundamentally "fail" in requiring a switch to a given
> frequency before suspend. I don't know what kind of major FAIL the K8
> code is doing here though :-)

The fail part comes from the fact that interrupts get reenabled.
And that's something that can easily happen out of our control if
we call into acpi_cpufreq's ->get method for example, so powernow-k8 isn't
the sole reason.

> I'm happy instead of #ifdef's however to push the logic into the ppc
> driver, or use a flag that the ppc driver sets to enable that logic.

Cool.

Dave

--
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/