Messages in this thread | | | Subject | Re: [BUG?] possible recursive locking detected | From | Anton Altaparmakov <> | Date | Thu, 27 Jul 2006 13:30:34 +0100 |
| |
On Thu, 2006-07-27 at 20:02 +1000, Nick Piggin wrote: > Anton Altaparmakov wrote: > > On Thu, 2006-07-27 at 19:18 +1000, Nick Piggin wrote: > > > >>Anton Altaparmakov wrote: > > >>>I beg to differ. It is a bug. You cannot reenter the file system when > >>>the file system is trying to allocate memory. Otherwise you can never > >>>allocate memory with any locks held or you are bound to introduce an > >>>A->B B->A deadlock somewhere. > >> > >>I don't think it is a bug in general. It really depends on the allocation: > >> > >>- If it is a path that might be required in order to writeout a page, then > >>yes GFP_NOFS is going to help prevent deadlocks. > >> > >>- If it is a path where you'll take the same locks as page reclaim requires, > >>then again GFP_NOFS is required. > >> > >>For NTFS case, it seems like holding i_mutex on the write path falls foul > >>of the second problem. But I agree with Andrew that this is a critical case > >>where we do have to enter the fs. GFP_NOFS is too big a hammer to use. > >> > >>I guess you'd have to change NTFS to do something sane privately, or come > >>up with a nice general solution that doesn't harm the common filesystems > >>that apparently don't have a problem here... can you just add GFP_NOFS to > >>NTFS's mapping_gfp_mask to start with? > > > > > > I don't think NTFS has a problem either. It is a theoretical problem > > No, I mean: *really* doesn't have a problem. If Andrew says ext2 doesn't > need i_mutex in reclaim, then I tend to believe him. > > > with an extremely small chance of being hit. I am happy to have such a > > problem for now. There are more pressing problems to solve. The only > > thing that needs to happen is for the messages to stop so people stop > > complaining / getting worried about them... > > I guess the memory deadlock issue is probably mostly theoretical, although > it is still nice to get them fixed. I'd imagine a deadlock condition -- if > one really exists -- could be hit without much problem though. Page reclaim > will readily get kicked from the write(2) path, and will potentially free > *lots* of stuff from there. > > If it isn't a problem for you, I'd suspect it might be due to some other > conditions which happen to mean it is avoided. For example, the inode who's > i_mutex you are holding will have a raised refcount AFAIK, so it will not > get reclaimed and so may get around your problem.
That is true, yes. So at least in that respect it should be safe.
> This would be a valid solution IMO. It probably could do with documentation > to outline the issues, though.
That is true.
Best regards,
Anton -- Anton Altaparmakov <aia21 at cam.ac.uk> (replace at with @) Unix Support, Computing Service, University of Cambridge, CB2 3QH, UK Linux NTFS maintainer / IRC: #ntfs on irc.freenode.net WWW: http://www.linux-ntfs.org/ & http://www-stu.christs.cam.ac.uk/~aia21/
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |