On 06/13/23 17:53, Peter Xu wrote: > Firstly, the no_page_table() is meaningless for hugetlb which is a no-op > there, because a hugetlb page always satisfies: > > - vma_is_anonymous() == false > - vma->vm_ops->fault != NULL > > So we can already safely remove it in hugetlb_follow_page_mask(), alongside > with the page* variable. > > Meanwhile, what we do in follow_hugetlb_page() actually makes sense for a > dump: we try to fault in the page only if the page cache is already > allocated. Let's do the same here for follow_page_mask() on hugetlb. > > It should so far has zero effect on real dumps, because that still goes > into follow_hugetlb_page(). But this may start to influence a bit on > follow_page() users who mimics a "dump page" scenario, but hopefully in a > good way. This also paves way for unifying the hugetlb gup-slow. > > Signed-off-by: Peter Xu <peterx@xxxxxxxxxx> > --- > mm/gup.c | 9 ++------- > mm/hugetlb.c | 9 +++++++++ > 2 files changed, 11 insertions(+), 7 deletions(-) Thanks Peter! Reviewed-by: Mike Kravetz <mike.kravetz@xxxxxxxxxx> -- Mike Kravetz