From: Zhenhua Huang <quic_zhenhuah@quicinc.com>
To: <akpm@linux-foundation.org>, <mgorman@techsingularity.net>
Cc: Zhenhua Huang <quic_zhenhuah@quicinc.com>, <linux-mm@kvack.org>,
<quic_tingweiz@quicinc.com>
Subject: [PATCH v2] mm/page_owner.c: remove redudant drain_all_pages
Date: Thu, 8 Sep 2022 18:33:24 +0800 [thread overview]
Message-ID: <1662633204-10044-1-git-send-email-quic_zhenhuah@quicinc.com> (raw)
Remove an expensive and unnecessary operation as PCP pages are safely
skipped when reading page owner. PCP pages can be skipped because
PAGE_EXT_OWNER_ALLOCATED is cleared.
With draining PCP pages, these pages are moved to buddy list so they
can be identified as buddy pages and skipped quickly. Although it improved
efficiency of PFN walker, the drain is guaranteed expensive that is
unlikely to be offset by a slight increase in efficiency when skipping
free pages.
PAGE_EXT_OWNER_ALLOCATED is cleared in the page owner reset path below:
free_unref_page
-> free_unref_page_prepare
-> free_pcp_prepare
-> free_pages_prepare which do page owner
reset
-> free_unref_page_commit which add pages into pcp list
Acked-by: Mel Gorman <mgorman@techsingularity.net>
Signed-off-by: Zhenhua Huang <quic_zhenhuah@quicinc.com>
---
mm/page_owner.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/mm/page_owner.c b/mm/page_owner.c
index 90023f9..54f3e03 100644
--- a/mm/page_owner.c
+++ b/mm/page_owner.c
@@ -524,8 +524,6 @@ read_page_owner(struct file *file, char __user *buf, size_t count, loff_t *ppos)
while (!pfn_valid(pfn) && (pfn & (MAX_ORDER_NR_PAGES - 1)) != 0)
pfn++;
- drain_all_pages(NULL);
-
/* Find an allocated page */
for (; pfn < max_pfn; pfn++) {
/*
--
2.7.4
next reply other threads:[~2022-09-08 10:33 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-08 10:33 Zhenhua Huang [this message]
2022-09-08 14:55 ` Mel Gorman
2022-09-09 6:18 ` Zhenhua Huang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1662633204-10044-1-git-send-email-quic_zhenhuah@quicinc.com \
--to=quic_zhenhuah@quicinc.com \
--cc=akpm@linux-foundation.org \
--cc=linux-mm@kvack.org \
--cc=mgorman@techsingularity.net \
--cc=quic_tingweiz@quicinc.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox