Re: [patch] power, xen64: fix PM_SLEEP build dependencies

From: Rafael J. Wysocki
Date: Wed Jul 09 2008 - 16:31:20 EST


On Wednesday, 9 of July 2008, Jeremy Fitzhardinge wrote:
> Rafael J. Wysocki wrote:
> > On Wednesday, 9 of July 2008, Ingo Molnar wrote:
> >
> >> * Rafael J. Wysocki <rjw@xxxxxxx> wrote:
> >>
> >>
> >>>> This combination actually doesn't make sense whatsoever.
> >>>>
> >>>> PM_SLEEP depends (indirectly) on PM and the fact that it's possible
> >>>> to use a .config violating this dependency is a build system
> >>>> problem, really.
> >>>>
> >>> Your patch is correct, though. :-)
> >>>
> >> yes, that combination doesnt make sense in -git, but tip/xen64 tries the
> >> !PM && PM_SLEEP combination - see the patch below.
> >>
> >
> > It shouldn't. There are many things compiled if PM is set that PM_SLEEP
> > depends on, most importantly ->suspend() and ->resume() callbacks of almost
> > all drivers. Ignoring this dependency is asking for trouble.
> >
>
> Doesn't that mean that PM_SLEEP should depend on PM?

It does. And it depends on PM, because HIBERNATION and SUSPEND both depend
on PM.

> > I don't like this.
> >
> > I'll have a look at the remaining related patches and see what can be done.
> >
> > Jeremy, what exactly do you need the !PM && PM_SLEEP combination for, BTW?
> >
>
> See drivers/xen/manage.c. On the Xen save/restore path, I call
> device_(suspend|resume|power_down|power_up)(), primarily to get the
> system timers into a good state after the machine has been away for a
> while. Xen doesn't have a general dependency on the rest of the PM
> infrastructure.

Well, device drivers' ->suspend() and ->resume() callbacks generally depend on
PM instead of PM_SLEEP (historical thing), so in fact you need the dependency
on PM.

In future we may be able to clean that up, but only after the new
suspend/hibernation framework reaches the mainline and drivers start to use it.

Thanks,
Rafael
--
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/