On 2022/7/14 23:52, Peter Xu wrote: > On Thu, Jul 14, 2022 at 05:59:53PM +0800, Miaohe Lin wrote: >> On 2022/7/14 1:23, Andrew Morton wrote: >>> On Tue, 12 Jul 2022 21:05:42 +0800 Miaohe Lin <linmiaohe@xxxxxxxxxx> wrote: >>> >>>> In MCOPY_ATOMIC_CONTINUE case with a non-shared VMA, pages in the page >>>> cache are installed in the ptes. But hugepage_add_new_anon_rmap is called >>>> for them mistakenly because they're not vm_shared. This will corrupt the >>>> page->mapping used by page cache code. >>> >>> Well that sounds bad. And theories on why this has gone unnoticed for >>> over a year? I assume this doesn't have coverage in our selftests? >> >> As discussed in another thread, when minor fault handling is proposed, only >> VM_SHARED vma is expected to be supported. And the test case is also missing. > > Yes, after this patch applied it'll be great to have the test case covering > private mappings too. > > It's just that it'll be a bit more than setting test_uffdio_minor=1 for > "hugetlb" test. In hugetlb_allocate_area() we'll need to setup the alias > too for !shared case, it'll be a bit challenging since currently we're > using anonymous hugetlb mappings for private tests, and I'm not sure > whether we'll need the hugetlb path back just like what we have with > "hugetlb_shared" tests. I'm afraid not. When minor fault handling is proposed, only VM_SHARED vma is expected to be supported. It seems it's hard to image how one might benefit from using it with a private mapping. But I'm not sure as I'm still a layman in userfaultfd now. Any further suggestions? > Thanks!