[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <200707051439.37737.rjw@sisk.pl>
Date: Thu, 5 Jul 2007 14:39:36 +0200
From: "Rafael J. Wysocki" <rjw@...k.pl>
To: Miklos Szeredi <miklos@...redi.hu>
Cc: stern@...land.harvard.edu, oliver@...kum.org, paulus@...ba.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 10:37, Miklos Szeredi wrote:
> > > Pro-freezers say:
> > >
> > > - don't remove the freezer, otherwise we'll have to deal with
> > > numerous problems in drivers
> >
> > And these problems will generally be difficult to reproduce reliably
> > and debug.
>
> I see exactly the opposite.
>
> With the freezer I can have very rarely occuring failures, due to
> freeze ordering effects.
The "freezer ordering effects" only affect uninterruptible tasks.
> And without the freezer I have a 100% reproducable problem, that is
> not hard to fix according to Alan Stern. OK, I don't know what the
> next problem would be, but the powermac experience shows, that it's
> not nearly as bad as you and Oliver try to make it out.
The powermac need not be a good example due to the different code ordering
(it's run on one CPU only, which makes the probability of triggering a race
be quite low).
> > > Can this be fixed?
> > >
> > > It seems to be a fundamental problem with the freezer: while it does
> > > make sure that user processes are not calling into drivers during
> > > suspend, it also disallows perfectly harmless non-driver calls as
> > > well.
> >
> > The problem is that when the freezer was designed (I didn't do that, BTW),
> > there was no FUSE and similar things, so it's not prepared to cope with
> > such interdependencies between user space tasks.
> >
> > We had an analogous problem with vfork() and it was solved by using the
> > PF_FREEZER_SKIP flag. Perhaps we can do similar thing with FUSE.
>
> It cannot be just worked around in fuse, as a task might be sleeping
> on a number of VFS mutexes as well (i_mutex, s_vfs_rename_mutex, etc).
> It would be a gigantic hack, possible at all.
Well, obviously FUSE and the freezer don't play well together, but that's FUSE
who's late in the game (the freezer was here before). ;-)
If you give me some time, I'll see what can be done.
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