Re: suspend2 merge (was Re: [Suspend2-devel] Re: CFS and suspend2: hang in atomic copy)

Rafael J. Wysocki
2007-04-26T18:58:36Z

On Thursday, 26 April 2007 20:40, Johannes Berg wrote:
> On Thu, 2007-04-26 at 20:40 +0200, Rafael J. Wysocki wrote:
>
> > > * it surfaces kernel implementation details about pm_ops and thus makes
> > > the whole thing very fragile
> >
> > Can you elaborate?
>
> Well it tells userspace about pm_ops->enter/prepare/finish etc.
> Also, it seems that it needs a "release memory now" operation instead of
> just releasing it when the fd is closed?

Yes. That's because we want to be able to repeat creating the image
without closing the fd in some situations.

> > > * it has yet another interface (yuck) to determine whether to reboot,
> > > shut down etc, doesn't use /sys/power/disk
> >
> > Yes. In fact it was meant as a replacement for /sys/power/disk at one point.
>
> Heh.
>
> > > * I generally had no idea wtf it is doing in some places
> >
> > I could have told you if you had asked. :-)
>
> I was offline ;)
>
> > Do we need hibernate_ops at all? There's only one user anyway and I'm not
> > sure there will be more of them in the future.
>
> I'm pretty sure there won't be, but there's no way to do it cleanly
> without pm_ops since even acpi doesn't do this all the time but only
> when some set of conditions is true. Hence, it needs to be able to
> determine the availability of the platform mode at run time rather than
> build time (build time => we could use weak symbols, arch hooks, ...)

Still, we could use a global var 'platform_hibernation' or something like this,
I think. Then, we can do

#define platform_hibernation 0

on the architectures that don't need it and make ACPI use it instead of this
"dynamic linking".

Greetings,
Rafael