Re: [PATCH 1/3] mm/hugetlb: Pre-allocate pgtable pages for uffd wr-protects

From: James Houghton
Date: Wed Jan 04 2023 - 20:51:04 EST


On Wed, Jan 4, 2023 at 10:52 PM Peter Xu <peterx@xxxxxxxxxx> wrote:
>
> Userfaultfd-wp uses pte markers to mark wr-protected pages for both shmem
> and hugetlb. Shmem has pre-allocation ready for markers, but hugetlb path
> was overlooked.
>
> Doing so by calling huge_pte_alloc() if the initial pgtable walk fails to
> find the huge ptep. It's possible that huge_pte_alloc() can fail with high
> memory pressure, in that case stop the loop immediately and fail silently.
> This is not the most ideal solution but it matches with what we do with
> shmem meanwhile it avoids the splat in dmesg.
>
> Cc: linux-stable <stable@xxxxxxxxxxxxxxx> # 5.19+
> Fixes: 60dfaad65aa9 ("mm/hugetlb: allow uffd wr-protect none ptes")
> Reported-by: James Houghton <jthoughton@xxxxxxxxxx>
> Signed-off-by: Peter Xu <peterx@xxxxxxxxxx>
> ---
> mm/hugetlb.c | 13 +++++++++++--
> 1 file changed, 11 insertions(+), 2 deletions(-)

Acked-by: James Houghton <jthoughton@xxxxxxxxxx>