Messages in this thread | | | From | "Rafael J. Wysocki" <> | Subject | Re: LOCKDEP: 3.9-rc1: mount.nfs/4272 still has locks held! | Date | Thu, 07 Mar 2013 21:55:13 +0100 |
| |
On Thursday, March 07, 2013 08:25:10 AM Linus Torvalds wrote: > On Thu, Mar 7, 2013 at 7:59 AM, Myklebust, Trond > <Trond.Myklebust@netapp.com> wrote: > > > > It _shouldn't_ be an interruption unless the filesystem can't make > > progress. > > So how can we tell? Calling "freezable_schedule()" if you're not ready > to be frozen is not good. And nobody but the NFS code can know. > > You might want to introduce some counter that counts number of > outstanding non-interruptible events, and only call the "freezable" > version if that counter is zero. > > A better alternative might be to *never* call the freezable version. > Because those freezable_*() things are really quite disgusting, and > are wrong - they don't actually freeze the process, they say "I don't > care if you freeze me while I sleep", and you might actually wake up > *while* the system is being frozen. I think the whole concept is > broken. Rafaei - comments?
Well, the only comment I have is that the source of these functions was commit d310310c (Freezer / sunrpc / NFS: don't allow TASK_KILLABLE sleeps to block the freezer) and they were added because people were complaining that they couldn't suspend while their NFS servers were not responding, IIRC.
I agree that they are not really nice.
Thanks, Rafael
-- I speak only for myself. Rafael J. Wysocki, Intel Open Source Technology Center.
| |