lkml.org 
[lkml]   [2018]   [Jul]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH -mm -v4 08/21] mm, THP, swap: Support to read a huge swap cluster for swapin a THP
On Fri, Jun 22, 2018 at 11:51:38AM +0800, Huang, Ying wrote:
> @@ -411,14 +414,32 @@ struct page *__read_swap_cache_async(swp_entry_t entry, gfp_t gfp_mask,
...
> + if (thp_swap_supported() && huge_cluster) {
> + gfp_t gfp = alloc_hugepage_direct_gfpmask(vma);
> +
> + new_page = alloc_hugepage_vma(gfp, vma,
> + addr, HPAGE_PMD_ORDER);

When allocating a huge page, we ignore the gfp_mask argument.

That doesn't matter right now since AFAICT we're not losing any flags: gfp_mask
from existing callers of __read_swap_cache_async seems to always be a subset of
GFP_HIGHUSER_MOVABLE and alloc_hugepage_direct_gfpmask always returns a
superset of that.

But maybe we should warn here in case we end up violating a restriction from a
future caller. Something like this?:

> + gfp_t gfp = alloc_hugepage_direct_gfpmask(vma);
VM_WARN_ONCE((gfp | gfp_mask) != gfp,
"ignoring gfp_mask bits");

\
 
 \ /
  Last update: 2018-07-04 02:13    [W:0.387 / U:0.144 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site