On Wed 12-09-18 16:21:26, Michal Hocko wrote: > On Wed 12-09-18 09:54:17, Andrea Arcangeli wrote: [...] > > I wasn't particularly happy about your patch because it still swaps > > with certain defrag settings which is still allowing things that > > shouldn't happen without some kind of privileged capability. > > Well, I am not really sure about defrag=always. I would rather care > about the default behavior to plug the regression first. And think about > `always' mode on top. Or is this a no-go from your POV? In other words the following on top diff --git a/mm/huge_memory.c b/mm/huge_memory.c index 56c9aac4dc86..723e8d77c5ef 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -644,7 +644,7 @@ static inline gfp_t alloc_hugepage_direct_gfpmask(struct vm_area_struct *vma, un #endif if (test_bit(TRANSPARENT_HUGEPAGE_DEFRAG_DIRECT_FLAG, &transparent_hugepage_flags)) - return GFP_TRANSHUGE | (vma_madvised ? 0 : __GFP_NORETRY | this_node); + return GFP_TRANSHUGE | (vma_madvised ? 0 : __GFP_NORETRY); if (test_bit(TRANSPARENT_HUGEPAGE_DEFRAG_KSWAPD_FLAG, &transparent_hugepage_flags)) return GFP_TRANSHUGE_LIGHT | __GFP_KSWAPD_RECLAIM | this_node; if (test_bit(TRANSPARENT_HUGEPAGE_DEFRAG_KSWAPD_OR_MADV_FLAG, &transparent_hugepage_flags)) -- Michal Hocko SUSE Labs