* [nacked] fs-proc-page-use-a-folio-in-stable_page_flags.patch removed from -mm tree
@ 2023-11-10 18:20 Andrew Morton
0 siblings, 0 replies; only message in thread
From: Andrew Morton @ 2023-11-10 18:20 UTC (permalink / raw)
To: mm-commits, willy, gregory.price, david, wangkefeng.wang, akpm
The quilt patch titled
Subject: fs/proc/page: use a folio in stable_page_flags()
has been removed from the -mm tree. Its filename was
fs-proc-page-use-a-folio-in-stable_page_flags.patch
This patch was dropped because it was nacked
------------------------------------------------------
From: Kefeng Wang <wangkefeng.wang@huawei.com>
Subject: fs/proc/page: use a folio in stable_page_flags()
Date: Fri, 10 Nov 2023 11:33:19 +0800
Replace nine compound_head() calls with one page_folio().
Link: https://lkml.kernel.org/r/20231110033324.2455523-3-wangkefeng.wang@huawei.com
Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
Cc: David Hildenbrand <david@redhat.com>
Cc: Gregory Price <gregory.price@memverge.com>
Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
fs/proc/page.c | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
--- a/fs/proc/page.c~fs-proc-page-use-a-folio-in-stable_page_flags
+++ a/fs/proc/page.c
@@ -109,6 +109,7 @@ static inline u64 kpf_copy_bit(u64 kflag
u64 stable_page_flags(struct page *page)
{
+ struct folio *folio;
u64 k;
u64 u;
@@ -119,6 +120,7 @@ u64 stable_page_flags(struct page *page)
if (!page)
return 1 << KPF_NOPAGE;
+ folio = page_folio(page);
k = page->flags;
u = 0;
@@ -128,11 +130,11 @@ u64 stable_page_flags(struct page *page)
* Note that page->_mapcount is overloaded in SLAB, so the
* simple test in page_mapped() is not enough.
*/
- if (!PageSlab(page) && page_mapped(page))
+ if (!folio_test_slab(folio) && folio_mapped(folio))
u |= 1 << KPF_MMAP;
- if (PageAnon(page))
+ if (folio_test_anon(folio))
u |= 1 << KPF_ANON;
- if (PageKsm(page))
+ if (folio_test_ksm(folio))
u |= 1 << KPF_KSM;
/*
@@ -152,11 +154,9 @@ u64 stable_page_flags(struct page *page)
* to make sure a given page is a thp, not a non-huge compound page.
*/
else if (PageTransCompound(page)) {
- struct page *head = compound_head(page);
-
- if (PageLRU(head) || PageAnon(head))
+ if (folio_test_lru(folio) || folio_test_anon(folio))
u |= 1 << KPF_THP;
- else if (is_huge_zero_page(head)) {
+ else if (is_huge_zero_page(&folio->page)) {
u |= 1 << KPF_ZERO_PAGE;
u |= 1 << KPF_THP;
}
@@ -170,7 +170,7 @@ u64 stable_page_flags(struct page *page)
*/
if (PageBuddy(page))
u |= 1 << KPF_BUDDY;
- else if (page_count(page) == 0 && is_free_buddy_page(page))
+ else if (folio_ref_count(folio) == 0 && is_free_buddy_page(page))
u |= 1 << KPF_BUDDY;
if (PageOffline(page))
@@ -178,7 +178,7 @@ u64 stable_page_flags(struct page *page)
if (PageTable(page))
u |= 1 << KPF_PGTABLE;
- if (page_is_idle(page))
+ if (folio_test_idle(folio))
u |= 1 << KPF_IDLE;
u |= kpf_copy_bit(k, KPF_LOCKED, PG_locked);
@@ -194,7 +194,7 @@ u64 stable_page_flags(struct page *page)
u |= kpf_copy_bit(k, KPF_ACTIVE, PG_active);
u |= kpf_copy_bit(k, KPF_RECLAIM, PG_reclaim);
- if (PageSwapCache(page))
+ if (folio_test_swapcache(folio))
u |= 1 << KPF_SWAPCACHE;
u |= kpf_copy_bit(k, KPF_SWAPBACKED, PG_swapbacked);
_
Patches currently in -mm which might be from wangkefeng.wang@huawei.com are
fs-proc-page-respect-folio-head-page-flag-placement.patch
mm-huge_memory-use-more-folio-api-in-__split_huge_page_tail.patch
mm-task_mmu-use-a-folio-in-smaps_account.patch
mm-task_mmu-use-a-folio-in-clear_refs_pte_range.patch
page_idle-kill-page-idle-and-young-wrapper.patch
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2023-11-10 19:44 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-11-10 18:20 [nacked] fs-proc-page-use-a-folio-in-stable_page_flags.patch removed from -mm tree Andrew Morton
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.