[merged mm-stable] mm-page_ownerc-remove-redudant-drain_all_pages.patch removed from -mm tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The quilt patch titled
     Subject: mm/page_owner.c: remove redundant drain_all_pages
has been removed from the -mm tree.  Its filename was
     mm-page_ownerc-remove-redudant-drain_all_pages.patch

This patch was dropped because it was merged into the mm-stable branch
of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm

------------------------------------------------------
From: Zhenhua Huang <quic_zhenhuah@xxxxxxxxxxx>
Subject: mm/page_owner.c: remove redundant drain_all_pages
Date: Wed, 7 Sep 2022 16:01:13 +0800

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

Link: https://lkml.kernel.org/r/1662704326-15899-1-git-send-email-quic_zhenhuah@xxxxxxxxxxx
Link: https://lkml.kernel.org/r/1662633204-10044-1-git-send-email-quic_zhenhuah@xxxxxxxxxxx
Link: https://lkml.kernel.org/r/1662537673-9392-1-git-send-email-quic_zhenhuah@xxxxxxxxxxx
Signed-off-by: Zhenhua Huang <quic_zhenhuah@xxxxxxxxxxx>
Acked-by: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
---

 mm/page_owner.c |    2 --
 1 file changed, 2 deletions(-)

--- a/mm/page_owner.c~mm-page_ownerc-remove-redudant-drain_all_pages
+++ a/mm/page_owner.c
@@ -524,8 +524,6 @@ read_page_owner(struct file *file, char
 	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++) {
 		/*
_

Patches currently in -mm which might be from quic_zhenhuah@xxxxxxxxxxx are





[Index of Archives]     [Kernel Archive]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux