Re: [RFC][PATCH -mm] PM: Do not sync filesystems from within the freezer

Rafael J. Wysocki
2007-07-06T09:53:12Z

On Friday, 6 July 2007 11:31, Miklos Szeredi wrote:
> > > > On Fri, 2007-07-06 at 09:13 +0200, Miklos Szeredi wrote:
> > > > >
> > > > > Another myth, that has been debunked already. The problem is: how do
> > > > > you define fuse processes? There's no theoretical or even practial
> > > > > way to do that.
> > > >
> > > > It could if they told the kernel via some black magic ...
> > > >
> > > > But that still suck. The freezer sucks :-)
> > >
> > > Yeah, and it wouldn't work in practice, since the auxilary tasks might
> > > be part of a library which is not even aware of being used by a "fuse
> > > task".
> >
> > This is why I think the whole concept of filesystems in userspace is broken.
> > Trying to shift things that need special privilege and special handling to
> > userspace is just asking for trouble.
>
> I'm not claiming fuse doesn't introduce problems. I've been tackling
> those problems for a number of years now. Suspend/hibernate is just
> the next thing that needs looking at.
>
> Just blaming either suspend or fuse for these problems is unproductive
> and stupid.

Well, the "stupid" part is a bit offensive, don't you think?

> The problems _are_ solvable if not always simply.

Agreed.

> > You can say it's the kernel code's fault, but then you have to
> > explain why it's only fuse (yeah ok, and XFS) that have problems.
>
> I'm not faulting anythig. My opinion, is that the freezer is not
> needed for suspend, and removing it will not just solve the problems
> with fuse but several others. It probably needs a lot of work, but
> hey, that's why we are here.
>
> The patch posted by Rafael, which lets the freezer skip uninterrupible
> tasks is a step in the right direction.

Thanks.

BTW, I think that this is just less radical than the change proposed by Matthew
and it should address the underlying problems.

Greetings,
Rafael

--
"Premature optimization is the root of all evil." - Donald Knuth