lkml.org 
[lkml]   [2023]   [Nov]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 05/10] mm: memory: use a folio in copy_nonpresent_pte()
    Date
    Use a folio in copy_nonpresent_pte() to save one compound_head() call.

    Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
    ---
    mm/memory.c | 14 +++++++-------
    1 file changed, 7 insertions(+), 7 deletions(-)

    diff --git a/mm/memory.c b/mm/memory.c
    index 1f18ed4a5497..d9314dee355e 100644
    --- a/mm/memory.c
    +++ b/mm/memory.c
    @@ -779,7 +779,7 @@ copy_nonpresent_pte(struct mm_struct *dst_mm, struct mm_struct *src_mm,
    unsigned long vm_flags = dst_vma->vm_flags;
    pte_t orig_pte = ptep_get(src_pte);
    pte_t pte = orig_pte;
    - struct page *page;
    + struct folio *folio;
    swp_entry_t entry = pte_to_swp_entry(orig_pte);

    if (likely(!non_swap_entry(entry))) {
    @@ -801,9 +801,9 @@ copy_nonpresent_pte(struct mm_struct *dst_mm, struct mm_struct *src_mm,
    }
    rss[MM_SWAPENTS]++;
    } else if (is_migration_entry(entry)) {
    - page = pfn_swap_entry_to_page(entry);
    + folio = pfn_swap_entry_to_folio(entry);

    - rss[mm_counter(page)]++;
    + rss[mm_counter(&folio->page)]++;

    if (!is_readable_migration_entry(entry) &&
    is_cow_mapping(vm_flags)) {
    @@ -822,7 +822,7 @@ copy_nonpresent_pte(struct mm_struct *dst_mm, struct mm_struct *src_mm,
    set_pte_at(src_mm, addr, src_pte, pte);
    }
    } else if (is_device_private_entry(entry)) {
    - page = pfn_swap_entry_to_page(entry);
    + folio = pfn_swap_entry_to_folio(entry);

    /*
    * Update rss count even for unaddressable pages, as
    @@ -833,10 +833,10 @@ copy_nonpresent_pte(struct mm_struct *dst_mm, struct mm_struct *src_mm,
    * for unaddressable pages, at some point. But for now
    * keep things as they are.
    */
    - get_page(page);
    - rss[mm_counter(page)]++;
    + folio_get(folio);
    + rss[mm_counter(&folio->page)]++;
    /* Cannot fail as these pages cannot get pinned. */
    - BUG_ON(page_try_dup_anon_rmap(page, false, src_vma));
    + BUG_ON(page_try_dup_anon_rmap(&folio->page, false, src_vma));

    /*
    * We do not preserve soft-dirty information, because so
    --
    2.27.0
    \
     
     \ /
      Last update: 2023-11-20 13:48    [W:4.646 / U:0.036 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site