All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] scop GFP_NOFS api
@ 2016-04-26 11:56 ` Michal Hocko
  0 siblings, 0 replies; 144+ messages in thread
From: Michal Hocko @ 2016-04-26 11:56 UTC (permalink / raw)
  To: linux-mm, linux-fsdevel
  Cc: Andrew Morton, Dave Chinner, Theodore Ts'o, Chris Mason,
	Jan Kara, ceph-devel, cluster-devel, linux-nfs, logfs, xfs,
	linux-ext4, linux-btrfs, linux-mtd, reiserfs-devel,
	linux-ntfs-dev, linux-f2fs-devel, linux-afs, LKML

Hi,
we have discussed this topic at LSF/MM this year. There was a general
interest in the scope GFP_NOFS allocation context among some FS
developers. For those who are not aware of the discussion or the issue
I am trying to sort out (or at least start in that direction) please
have a look at patch 1 which adds memalloc_nofs_{save,restore} api
which basically copies what we have for the scope GFP_NOIO allocation
context. I haven't converted any of the FS myself because that is way
beyond my area of expertise but I would be happy to help with further
changes on the MM front as well as in some more generic code paths.

Dave had an idea on how to further improve the reclaim context to be
less all-or-nothing wrt. GFP_NOFS. In short he was suggesting an opaque
and FS specific cookie set in the FS allocation context and consumed
by the FS reclaim context to allow doing some provably save actions
that would be skipped due to GFP_NOFS normally.  I like this idea and
I believe we can go that direction regardless of the approach taken here.
Many filesystems simply need to cleanup their NOFS usage first before
diving into a more complex changes.

The patch 2 is a debugging aid which warns about explicit allocation
requests from the scope context. This is should help to reduce the
direct usage of the NOFS flags to bare minimum in favor of the scope
API. It is not aimed to be merged upstream. I would hope Andrew took it
into mmotm tree to give it linux-next exposure and allow developers to
do further cleanups.  There is a new kernel command line parameter which
has to be used for the debugging to be enabled.

I think the GFP_NOIO should be seeing the same clean up.

Any feedback is highly appreciated.


^ permalink raw reply	[flat|nested] 144+ messages in thread

end of thread, other threads:[~2016-05-06  3:21 UTC | newest]

Thread overview: 144+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-04-26 11:56 [PATCH 0/2] scop GFP_NOFS api Michal Hocko
2016-04-26 11:56 ` [Cluster-devel] " Michal Hocko
2016-04-26 11:56 ` Michal Hocko
2016-04-26 11:56 ` Michal Hocko
2016-04-26 11:56 ` Michal Hocko
2016-04-26 11:56 ` [PATCH 1/2] mm: add PF_MEMALLOC_NOFS Michal Hocko
2016-04-26 11:56   ` [Cluster-devel] " Michal Hocko
2016-04-26 11:56   ` Michal Hocko
2016-04-26 11:56   ` Michal Hocko
2016-04-26 11:56   ` Michal Hocko
2016-04-26 23:07   ` Dave Chinner
2016-04-26 23:07     ` [Cluster-devel] " Dave Chinner
2016-04-26 23:07     ` Dave Chinner
2016-04-26 23:07     ` Dave Chinner
2016-04-27  7:51     ` Michal Hocko
2016-04-27  7:51       ` [Cluster-devel] " Michal Hocko
2016-04-27  7:51       ` Michal Hocko
2016-04-27  7:51       ` Michal Hocko
2016-04-27 10:53   ` Tetsuo Handa
2016-04-27 10:53     ` Tetsuo Handa
2016-04-27 11:15     ` Michal Hocko
2016-04-27 11:15       ` Michal Hocko
2016-04-27 14:44       ` Tetsuo Handa
2016-04-27 14:44         ` Tetsuo Handa
2016-04-27 20:05         ` Michal Hocko
2016-04-27 20:05           ` Michal Hocko
2016-04-27 11:54   ` [PATCH 1.1/2] xfs: abstract PF_FSTRANS to PF_MEMALLOC_NOFS Michal Hocko
2016-04-27 11:54     ` [Cluster-devel] " Michal Hocko
2016-04-27 11:54     ` Michal Hocko
2016-04-27 11:54     ` Michal Hocko
2016-04-27 11:54     ` Michal Hocko
2016-04-27 11:54     ` [PATCH 1.2/2] mm: introduce memalloc_nofs_{save,restore} API Michal Hocko
2016-04-27 11:54       ` [Cluster-devel] [PATCH 1.2/2] mm: introduce memalloc_nofs_{save, restore} API Michal Hocko
2016-04-27 11:54       ` [PATCH 1.2/2] mm: introduce memalloc_nofs_{save,restore} API Michal Hocko
2016-04-27 11:54       ` Michal Hocko
2016-04-27 11:54       ` Michal Hocko
2016-04-27 11:54       ` Michal Hocko
2016-04-27 13:07       ` Michal Hocko
2016-04-27 13:07         ` [Cluster-devel] [PATCH 1.2/2] mm: introduce memalloc_nofs_{save, restore} API Michal Hocko
2016-04-27 13:07         ` [PATCH 1.2/2] mm: introduce memalloc_nofs_{save,restore} API Michal Hocko
2016-04-27 13:07         ` Michal Hocko
2016-04-27 20:09       ` Michal Hocko
2016-04-27 20:09         ` [Cluster-devel] [PATCH 1.2/2] mm: introduce memalloc_nofs_{save, restore} API Michal Hocko
2016-04-27 20:09         ` [PATCH 1.2/2] mm: introduce memalloc_nofs_{save,restore} API Michal Hocko
2016-04-27 20:09         ` Michal Hocko
2016-04-27 20:30         ` Michal Hocko
2016-04-27 20:30           ` [Cluster-devel] [PATCH 1.2/2] mm: introduce memalloc_nofs_{save, restore} API Michal Hocko
2016-04-27 20:30           ` [PATCH 1.2/2] mm: introduce memalloc_nofs_{save,restore} API Michal Hocko
2016-04-27 20:30           ` Michal Hocko
2016-04-27 21:14       ` Michal Hocko
2016-04-27 21:14         ` [Cluster-devel] [PATCH 1.2/2] mm: introduce memalloc_nofs_{save, restore} API Michal Hocko
2016-04-27 21:14         ` [PATCH 1.2/2] mm: introduce memalloc_nofs_{save,restore} API Michal Hocko
2016-04-27 21:14         ` Michal Hocko
2016-04-27 21:14         ` Michal Hocko
2016-04-27 21:14         ` Michal Hocko
2016-04-27 17:41     ` [PATCH 1.1/2] xfs: abstract PF_FSTRANS to PF_MEMALLOC_NOFS Andreas Dilger
2016-04-27 17:41       ` [Cluster-devel] " Andreas Dilger
2016-04-27 17:41       ` Andreas Dilger
2016-04-27 19:43       ` Michal Hocko
2016-04-27 19:43         ` [Cluster-devel] " Michal Hocko
2016-04-27 19:43         ` Michal Hocko
2016-04-27 19:43         ` Michal Hocko
2016-04-26 11:56 ` [PATCH 2/2] mm, debug: report when GFP_NO{FS,IO} is used explicitly from memalloc_no{fs,io}_{save,restore} context Michal Hocko
2016-04-26 11:56   ` [Cluster-devel] [PATCH 2/2] mm, debug: report when GFP_NO{FS, IO} is used explicitly from memalloc_no{fs, io}_{save, restore} context Michal Hocko
2016-04-26 11:56   ` Michal Hocko
2016-04-26 11:56   ` [PATCH 2/2] mm, debug: report when GFP_NO{FS,IO} is used explicitly from memalloc_no{fs,io}_{save,restore} context Michal Hocko
2016-04-26 11:56   ` [PATCH 2/2] mm, debug: report when GFP_NO{FS, IO} is used explicitly from memalloc_no{fs, io}_{save, restore} context Michal Hocko
2016-04-26 11:56   ` [PATCH 2/2] mm, debug: report when GFP_NO{FS,IO} is used explicitly from memalloc_no{fs,io}_{save,restore} context Michal Hocko
2016-04-26 22:58   ` Dave Chinner
2016-04-26 22:58     ` [Cluster-devel] [PATCH 2/2] mm, debug: report when GFP_NO{FS, IO} is used explicitly from memalloc_no{fs, io}_{save, restore} context Dave Chinner
2016-04-26 22:58     ` [PATCH 2/2] mm, debug: report when GFP_NO{FS,IO} is used explicitly from memalloc_no{fs,io}_{save,restore} context Dave Chinner
2016-04-26 22:58     ` Dave Chinner
2016-04-27  8:03     ` Michal Hocko
2016-04-27  8:03       ` [Cluster-devel] [PATCH 2/2] mm, debug: report when GFP_NO{FS, IO} is used explicitly from memalloc_no{fs, io}_{save, restore} context Michal Hocko
2016-04-27  8:03       ` [PATCH 2/2] mm, debug: report when GFP_NO{FS,IO} is used explicitly from memalloc_no{fs,io}_{save,restore} context Michal Hocko
2016-04-27  8:03       ` Michal Hocko
2016-04-27 22:55       ` Dave Chinner
2016-04-27 22:55         ` [Cluster-devel] [PATCH 2/2] mm, debug: report when GFP_NO{FS, IO} is used explicitly from memalloc_no{fs, io}_{save, restore} context Dave Chinner
2016-04-27 22:55         ` [PATCH 2/2] mm, debug: report when GFP_NO{FS,IO} is used explicitly from memalloc_no{fs,io}_{save,restore} context Dave Chinner
2016-04-27 22:55         ` Dave Chinner
2016-04-28  8:17     ` Michal Hocko
2016-04-28  8:17       ` Michal Hocko
2016-04-28  8:17       ` Michal Hocko
2016-04-28 21:51       ` Dave Chinner
2016-04-28 21:51         ` Dave Chinner
2016-04-28 21:51         ` Dave Chinner
2016-04-29 12:12         ` Michal Hocko
2016-04-29 12:12           ` Michal Hocko
2016-04-29 12:12           ` Michal Hocko
2016-04-29 23:40           ` Dave Chinner
2016-04-29 23:40             ` Dave Chinner
2016-04-29 23:40             ` Dave Chinner
2016-05-03 15:38             ` Michal Hocko
2016-05-03 15:38               ` Michal Hocko
2016-05-03 15:38               ` Michal Hocko
2016-05-04  0:07               ` Dave Chinner
2016-05-04  0:07                 ` Dave Chinner
2016-05-04  0:07                 ` Dave Chinner
2016-04-29  5:35 ` [PATCH 0/2] scop GFP_NOFS api NeilBrown
2016-04-29  5:35   ` [Cluster-devel] " NeilBrown
2016-04-29  5:35   ` NeilBrown
2016-04-29 10:20   ` [Cluster-devel] " Steven Whitehouse
2016-04-29 10:20     ` Steven Whitehouse
2016-04-29 10:20     ` Steven Whitehouse
2016-04-29 10:20     ` Steven Whitehouse
2016-04-29 10:20     ` Steven Whitehouse
2016-04-30 21:17     ` NeilBrown
2016-04-30 21:17       ` NeilBrown
2016-04-30 21:17       ` NeilBrown
2016-04-30 21:17       ` NeilBrown
2016-04-30 21:17       ` NeilBrown
2016-04-30 21:17       ` NeilBrown
2016-04-29 12:04   ` Michal Hocko
2016-04-29 12:04     ` [Cluster-devel] " Michal Hocko
2016-04-29 12:04     ` Michal Hocko
2016-04-29 12:04     ` Michal Hocko
2016-04-30  0:24     ` Dave Chinner
2016-04-30  0:24       ` [Cluster-devel] " Dave Chinner
2016-04-30  0:24       ` Dave Chinner
2016-04-30  0:24       ` Dave Chinner
2016-04-30 21:55     ` NeilBrown
2016-04-30 21:55       ` [Cluster-devel] " NeilBrown
2016-04-30 21:55       ` NeilBrown
2016-05-03 15:13       ` Michal Hocko
2016-05-03 15:13         ` [Cluster-devel] " Michal Hocko
2016-05-03 15:13         ` Michal Hocko
2016-05-03 15:13         ` Michal Hocko
2016-05-03 23:26         ` NeilBrown
2016-05-03 23:26           ` [Cluster-devel] " NeilBrown
2016-05-03 23:26           ` NeilBrown
2016-04-30  0:11   ` Dave Chinner
2016-04-30  0:11     ` [Cluster-devel] " Dave Chinner
2016-04-30  0:11     ` Dave Chinner
2016-04-30  0:11     ` Dave Chinner
2016-04-30 22:19     ` NeilBrown
2016-04-30 22:19       ` [Cluster-devel] " NeilBrown
2016-04-30 22:19       ` NeilBrown
2016-05-04  1:00       ` Dave Chinner
2016-05-04  1:00         ` [Cluster-devel] " Dave Chinner
2016-05-04  1:00         ` Dave Chinner
2016-05-04  1:00         ` Dave Chinner
2016-05-06  3:20         ` NeilBrown
2016-05-06  3:20           ` [Cluster-devel] " NeilBrown
2016-05-06  3:20           ` NeilBrown

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.