• Mike Kravetz's avatar
    madvise: use zap_page_range_single for madvise dontneed · 21b85b09
    Mike Kravetz authored
    This series addresses the issue first reported in [1], and fully described
    in patch 2.  Patches 1 and 2 address the user visible issue and are tagged
    for stable backports.
    
    While exploring solutions to this issue, related problems with mmu
    notification calls were discovered.  This is addressed in the patch
    "hugetlb: remove duplicate mmu notifications:".  Since there are no user
    visible effects, this third is not tagged for stable backports.
    
    Previous discussions suggested further cleanup by removing the
    routine zap_page_range.  This is possible because zap_page_range_single
    is now exported, and all callers of zap_page_range pass ranges entirely
    within a single vma.  This work will be done in a later patch so as not
    to distract from this bug fix.
    
    [1] https://lore.kernel.org/lkml/CAO4mrfdLMXsao9RF4fUE8-Wfde8xmjsKrTNMNC9wjUb6JudD0g@mail.gmail.com/
    
    
    This patch (of 2):
    
    Expose the routine zap_page_range_single to zap a range within a single
    vma.  The madvise routine madvise_dontneed_single_vma can use this routine
    as it explicitly operates on a single vma.  Also, update the mmu
    notification range in zap_page_range_single to take hugetlb pmd sharing
    into account.  This is required as MADV_DONTNEED supports hugetlb vmas.
    
    Link: https://lkml.kernel.org/r/20221114235507.294320-1-mike.kravetz@oracle.com
    Link: https://lkml.kernel.org/r/20221114235507.294320-2-mike.kravetz@oracle.com
    Fixes: 90e7e7f5 ("mm: enable MADV_DONTNEED for hugetlb mappings")
    Signed-off-by: default avatarMike Kravetz <mike.kravetz@oracle.com>
    Reported-by: default avatarWei Chen <harperchen1110@gmail.com>
    Cc: Axel Rasmussen <axelrasmussen@google.com>
    Cc: David Hildenbrand <david@redhat.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Mina Almasry <almasrymina@google.com>
    Cc: Nadav Amit <nadav.amit@gmail.com>
    Cc: Naoya Horiguchi <naoya.horiguchi@linux.dev>
    Cc: Peter Xu <peterx@redhat.com>
    Cc: Rik van Riel <riel@surriel.com>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    21b85b09
madvise.c 38.2 KB