• David Hildenbrand's avatar
    mm: convert page_try_share_anon_rmap() to folio_try_share_anon_rmap_[pte|pmd]() · e3b4b137
    David Hildenbrand authored
    Let's convert it like we converted all the other rmap functions.  Don't
    introduce folio_try_share_anon_rmap_ptes() for now, as we don't have a
    user that wants rmap batching in sight.  Pretty easy to add later.
    
    All users are easy to convert -- only ksm.c doesn't use folios yet but
    that is left for future work -- so let's just do it in a single shot.
    
    While at it, turn the BUG_ON into a WARN_ON_ONCE.
    
    Note that page_try_share_anon_rmap() so far didn't care about pte/pmd
    mappings (no compound parameter).  We're changing that so we can perform
    better sanity checks and make the code actually more readable/consistent. 
    For example, __folio_rmap_sanity_checks() will make sure that a PMD range
    actually falls completely into the folio.
    
    Link: https://lkml.kernel.org/r/20231220224504.646757-39-david@redhat.comSigned-off-by: default avatarDavid Hildenbrand <david@redhat.com>
    Cc: Hugh Dickins <hughd@google.com>
    Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
    Cc: Muchun Song <muchun.song@linux.dev>
    Cc: Muchun Song <songmuchun@bytedance.com>
    Cc: Peter Xu <peterx@redhat.com>
    Cc: Ryan Roberts <ryan.roberts@arm.com>
    Cc: Yin Fengwei <fengwei.yin@intel.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    e3b4b137
rmap.c 78.6 KB