On Thu 19-01-17 10:44:05, Michal Hocko wrote: > On Thu 19-01-17 10:22:36, Jan Kara wrote: > > On Thu 19-01-17 09:39:56, Michal Hocko wrote: > > > On Tue 17-01-17 18:29:25, Jan Kara wrote: > > > > On Tue 17-01-17 17:16:19, Michal Hocko wrote: > > > > > > > But before going to play with that I am really wondering whether we need > > > > > > > all this with no journal at all. AFAIU what Jack told me it is the > > > > > > > journal lock(s) which is the biggest problem from the reclaim recursion > > > > > > > point of view. What would cause a deadlock in no journal mode? > > > > > > > > > > > > We still have the original problem for why we need GFP_NOFS even in > > > > > > ext2. If we are in a writeback path, and we need to allocate memory, > > > > > > we don't want to recurse back into the file system's writeback path. > > > > > > > > > > But we do not enter the writeback path from the direct reclaim. Or do > > > > > you mean something other than pageout()'s mapping->a_ops->writepage? > > > > > There is only try_to_release_page where we get back to the filesystems > > > > > but I do not see any NOFS protection in ext4_releasepage. > > > > > > > > Maybe to expand a bit: These days, direct reclaim can call ->releasepage() > > > > callback, ->evict_inode() callback (and only for inodes with i_nlink > 0), > > > > shrinkers. That's it. So the recursion possibilities are rather more limited > > > > than they used to be several years ago and we likely do not need as much > > > > GFP_NOFS protection as we used to. > > > > > > Thanks for making my remark more clear Jack! I would just want to add > > > that I was playing with the patch below (it is basically > > > GFP_NOFS->GFP_KERNEL for all allocations which trigger warning from the > > > debugging patch which means they are called from within transaction) and > > > it didn't hit the lockdep when running xfstests both with or without the > > > enabled journal. > > > > > > So am I still missing something or the nojournal mode is safe and the > > > current series is OK wrt. ext*? > > > > I'm convinced the current series is OK, only real life will tell us whether > > we missed something or not ;) > > I would like to extend the changelog of "jbd2: mark the transaction > context with the scope GFP_NOFS context". > > " > Please note that setups without journal do not suffer from potential > recursion problems and so they do not need the scope protection because > neither ->releasepage nor ->evict_inode (which are the only fs entry > points from the direct reclaim) can reenter a locked context which is > doing the allocation currently. > " Could you comment on this Ted, please? -- Michal Hocko SUSE Labs -- To unsubscribe from this list: send the line "unsubscribe reiserfs-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html