The patch titled Subject: mm: replace init_page_accessed by __SetPageReferenced has been removed from the -mm tree. Its filename was mm-replace-init_page_accessed-by-__setpagereferenced.patch This patch was dropped because it was merged into mainline or a subsystem tree ------------------------------------------------------ From: Hugh Dickins <hughd@xxxxxxxxxx> Subject: mm: replace init_page_accessed by __SetPageReferenced Do we really need an exported alias for __SetPageReferenced()? Its callers better know what they're doing, in which case the page would not be already marked referenced. Kill init_page_accessed(), just __SetPageReferenced() inline. Signed-off-by: Hugh Dickins <hughd@xxxxxxxxxx> Acked-by: Mel Gorman <mgorman@xxxxxxx> Cc: Johannes Weiner <hannes@xxxxxxxxxxx> Cc: Vlastimil Babka <vbabka@xxxxxxx> Cc: Michal Hocko <mhocko@xxxxxxx> Cc: Dave Hansen <dave.hansen@xxxxxxxxx> Cc: Prabhakar Lad <prabhakar.csengg@xxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- include/linux/swap.h | 1 - mm/filemap.c | 4 ++-- mm/shmem.c | 2 +- mm/swap.c | 14 +++----------- 4 files changed, 6 insertions(+), 15 deletions(-) diff -puN include/linux/swap.h~mm-replace-init_page_accessed-by-__setpagereferenced include/linux/swap.h --- a/include/linux/swap.h~mm-replace-init_page_accessed-by-__setpagereferenced +++ a/include/linux/swap.h @@ -311,7 +311,6 @@ extern void lru_add_page_tail(struct pag struct lruvec *lruvec, struct list_head *head); extern void activate_page(struct page *); extern void mark_page_accessed(struct page *); -extern void init_page_accessed(struct page *page); extern void lru_add_drain(void); extern void lru_add_drain_cpu(int cpu); extern void lru_add_drain_all(void); diff -puN mm/filemap.c~mm-replace-init_page_accessed-by-__setpagereferenced mm/filemap.c --- a/mm/filemap.c~mm-replace-init_page_accessed-by-__setpagereferenced +++ a/mm/filemap.c @@ -1091,9 +1091,9 @@ no_page: if (WARN_ON_ONCE(!(fgp_flags & FGP_LOCK))) fgp_flags |= FGP_LOCK; - /* Init accessed so avoit atomic mark_page_accessed later */ + /* Init accessed so avoid atomic mark_page_accessed later */ if (fgp_flags & FGP_ACCESSED) - init_page_accessed(page); + __SetPageReferenced(page); err = add_to_page_cache_lru(page, mapping, offset, radix_gfp_mask); if (unlikely(err)) { diff -puN mm/shmem.c~mm-replace-init_page_accessed-by-__setpagereferenced mm/shmem.c --- a/mm/shmem.c~mm-replace-init_page_accessed-by-__setpagereferenced +++ a/mm/shmem.c @@ -1166,7 +1166,7 @@ repeat: __SetPageSwapBacked(page); __set_page_locked(page); if (sgp == SGP_WRITE) - init_page_accessed(page); + __SetPageReferenced(page); error = mem_cgroup_charge_file(page, current->mm, gfp & GFP_RECLAIM_MASK); diff -puN mm/swap.c~mm-replace-init_page_accessed-by-__setpagereferenced mm/swap.c --- a/mm/swap.c~mm-replace-init_page_accessed-by-__setpagereferenced +++ a/mm/swap.c @@ -589,6 +589,9 @@ static void __lru_cache_activate_page(st * inactive,unreferenced -> inactive,referenced * inactive,referenced -> active,unreferenced * active,unreferenced -> active,referenced + * + * When a newly allocated page is not yet visible, so safe for non-atomic ops, + * __SetPageReferenced(page) may be substituted for mark_page_accessed(page). */ void mark_page_accessed(struct page *page) { @@ -614,17 +617,6 @@ void mark_page_accessed(struct page *pag } EXPORT_SYMBOL(mark_page_accessed); -/* - * Used to mark_page_accessed(page) that is not visible yet and when it is - * still safe to use non-atomic ops - */ -void init_page_accessed(struct page *page) -{ - if (!PageReferenced(page)) - __SetPageReferenced(page); -} -EXPORT_SYMBOL(init_page_accessed); - static void __lru_cache_add(struct page *page) { struct pagevec *pvec = &get_cpu_var(lru_add_pvec); _ Patches currently in -mm which might be from hughd@xxxxxxxxxx are origin.patch mm-memcontrol-rewrite-charge-api.patch mm-memcontrol-rewrite-uncharge-api.patch mm-memcontrol-use-page-lists-for-uncharge-batching.patch mm-memcontrol-use-page-lists-for-uncharge-batching-fix-hugetlb-page-lru.patch vmstat-on-demand-vmstat-workers-v8.patch vmstat-on-demand-vmstat-workers-v8-do-not-open-code-alloc_cpumask_var.patch mm-hugetlb-take-refcount-under-page-table-lock-in-follow_huge_pmd.patch mm-hugetlb-use-get_page_unless_zero-in-hugetlb_fault.patch mm-hugetlb-add-migration-entry-check-in-hugetlb_change_protection.patch mm-memcontrol-avoid-charge-statistics-churn-during-page-migration.patch mm-hugetlb-remove-unused-argument-of-follow_huge_pmdpud.patch linux-next.patch mm-allow-drivers-to-prevent-new-writable-mappings.patch shm-add-sealing-api.patch shm-add-memfd_create-syscall.patch selftests-add-memfd_create-sealing-tests.patch selftests-add-memfd-sealing-page-pinning-tests.patch shm-wait-for-pins-to-be-released-when-sealing.patch timer-provide-an-api-for-deferrable-timeout.patch ksm-provide-support-to-use-deferrable-timers-for-scanner-thread.patch ksm-provide-support-to-use-deferrable-timers-for-scanner-thread-fix.patch ksm-provide-support-to-use-deferrable-timers-for-scanner-thread-fix-fix-2.patch mm-replace-remap_file_pages-syscall-with-emulation-fix-3.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html