• David Hildenbrand's avatar
    mm/ksm: convert scan_get_next_rmap_item() from follow_page() to folio_walk · b1d3e9bb
    David Hildenbrand authored
    Let's use folio_walk instead, for example avoiding taking temporary folio
    references if the folio does obviously not even apply and getting rid of
    one more follow_page() user.  We cannot move all handling under the PTL,
    so leave the rmap handling (which implies an allocation) out.
    
    Note that zeropages obviously don't apply: old code could just have
    specified FOLL_DUMP.  Further, we don't care about losing the secretmem
    check in follow_page(): these are never anon pages and
    vma_ksm_compatible() would never consider secretmem vmas (VM_SHARED |
    VM_MAYSHARE must be set for secretmem, see secretmem_mmap()).
    
    Link: https://lkml.kernel.org/r/20240802155524.517137-7-david@redhat.comSigned-off-by: default avatarDavid Hildenbrand <david@redhat.com>
    Cc: Alexander Gordeev <agordeev@linux.ibm.com>
    Cc: Christian Borntraeger <borntraeger@linux.ibm.com>
    Cc: Claudio Imbrenda <imbrenda@linux.ibm.com>
    Cc: Gerald Schaefer <gerald.schaefer@linux.ibm.com>
    Cc: Heiko Carstens <hca@linux.ibm.com>
    Cc: Janosch Frank <frankja@linux.ibm.com>
    Cc: Jonathan Corbet <corbet@lwn.net>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Sven Schnelle <svens@linux.ibm.com>
    Cc: Vasily Gorbik <gor@linux.ibm.com>
    Cc: Ryan Roberts <ryan.roberts@arm.com>
    Cc: Zi Yan <ziy@nvidia.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    b1d3e9bb
ksm.c 106 KB