[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <200707051449.55004.rjw@sisk.pl>
Date: Thu, 5 Jul 2007 14:49:54 +0200
From: "Rafael J. Wysocki" <rjw@...k.pl>
To: Paul Mackerras <paulus@...ba.org>
Cc: Miklos Szeredi <miklos@...redi.hu>, stern@...land.harvard.edu,
oliver@...kum.org, mjg59@...f.ucam.org,
linux-pm@...ts.linux-foundation.org, linux-kernel@...r.kernel.org
Subject: Re: [linux-pm] [PATCH] Remove process freezer from suspend to RAM pathway
On Thursday, 5 July 2007 02:43, Paul Mackerras wrote:
> Miklos Szeredi writes:
>
> > OK, let me summarize the situation as I see it now: there are two
> > camps, the pro-freezers and the anti-freezers.
> >
> > Pro-freezers say:
> >
> > - don't remove the freezer, otherwise we'll have to deal with
> > numerous problems in drivers
> >
> > Anti-freezers say:
> >
> > - let's remove the freezer, which causes numerous problems
> >
> > Alan summerized the pro-freezer arguments well I think. What are the
> > anti-freezer arguments then?
>
> 1. The freezer cannot be guaranteed deadlock-free without constructing
> a dependency graph between tasks (both user and kernel), which is
> virtually impossible since the dependencies are not externally
> observable.
I don't agree with that.
The freezer only fails to handle uninterruptible tasks, so we need to take
the situations in which an uninterruptible task waits for a frozen task into
consideration. Now, if both tasks are from the user land, this is highly
unusual.
> 2. As a consequence of (1), we try to make a crude approximation of
> the graph by saying "only kernel threads that want to be frozen
> will be frozen" or some other similar statement.
No. The rule is that kernel threads should not be freezable, but there are
some for which that is useful.
> 3. However, (2) means that we can no longer guarantee that drivers
> will not get any I/O requests after their suspend method has been
> called, and therefore the freezer fails in its main objective.
This is a very general statement. Can you please give some examples?
> 4. We have an existence proof that reliable suspend can be achieved
> without the freezer.
No. We only know that it might work if the nonboot CPUs are disabled before
suspending devices, which is not the case in the generic suspend code.
> To summarize, the argument is that the freezer is deadlock-prone and
> ineffective.
I remain unconvinced. ;-)
Greetings,
Rafael
--
"Premature optimization is the root of all evil." - Donald Knuth
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists