Re: removing refrigerator does not help with s2ram vs. fuse deadlocks (was Re: [linux-pm] Re: [PATCH] Remove process freezer from suspend to RAM pathway)

Pavel Machek
2007-07-07T11:57:19Z

Hi!

> > > > You have processes that don't react to signals, because some
> > > > other user land task is misbehaving. I'd call that ugly at the
> > > > very least.
> > >
> > > It already happens with, say, NFS. Don't think about it in terms of a
> > > userland task misbehaving - think of it in terms of a resource becoming
> > > unavailable.
> >
> > I think there's a difference between a userland task playing the role of a
> > resource and a "real" external resource the kernel doesn't control.
> >
> > IMO, userland tasks should not have the power to affect each other as though
> > they were parts of the kernel.
>
> One task doing ptrace() can basically do whatever it wants with the
> task being traced. This is not an exact analogy to what fuse does,
> but close.

Well, IMO userland tasks should not have power to grab VFS mutexes for
indefinite ammount of time. ("fused is allowed to deadlock kernel, in
a way only write to special file helps" is ugly). Unfortunately, I
don't think there's a way to work around that deadlock within fuse
design limits... (coda was able to get around it by working on whole
files granularity, AFAICT), so we'll have to live with that.

I think we have two separate problems here, and both are
solvable, without major changes to fuse or suspend framework.
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html