Hello! On Feb 2, 2015, at 12:37 AM, Dave Chinner wrote: > On Sun, Feb 01, 2015 at 10:59:54PM -0500, green@xxxxxxxxxxxxxx wrote: >> From: Oleg Drokin <green@xxxxxxxxxxxxxx> >> >> leaf_dealloc uses vzalloc as a fallback to kzalloc(GFP_NOFS), so >> it clearly does not want any shrinker activity within the fs itself. >> convert vzalloc into __vmalloc(GFP_NOFS|__GFP_ZERO) to better achieve >> this goal. >> >> Signed-off-by: Oleg Drokin <green@xxxxxxxxxxxxxx> >> --- >> fs/gfs2/dir.c | 3 ++- >> 1 file changed, 2 insertions(+), 1 deletion(-) >> >> diff --git a/fs/gfs2/dir.c b/fs/gfs2/dir.c >> index c5a34f0..6371192 100644 >> --- a/fs/gfs2/dir.c >> +++ b/fs/gfs2/dir.c >> @@ -1896,7 +1896,8 @@ static int leaf_dealloc(struct gfs2_inode *dip, u32 index, u32 len, >> >> ht = kzalloc(size, GFP_NOFS | __GFP_NOWARN); >> if (ht == NULL) >> - ht = vzalloc(size); >> + ht = __vmalloc(size, GFP_NOFS | __GFP_NOWARN | __GFP_ZERO, >> + PAGE_KERNEL); > That, in the end, won't help as vmalloc still uses GFP_KERNEL > allocations deep down in the PTE allocation code. See the hacks in > the DM and XFS code to work around this. i.e. go look for callers of > memalloc_noio_save(). It's ugly and grotesque, but we've got no > other way to limit reclaim context because the MM devs won't pass > the vmalloc gfp context down the stack to the PTE allocations.... Hm, interesting. So all the other code in the kernel that does this sort of thing (and there's quite a bit outside of xfs and ocfs2) would not get the desired effect? So, I did some digging in archives and found this thread from 2010 onward with various patches and rants. Not sure how I missed that before. Should we have another run at this I wonder? Bye, Oleg -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href