All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wupeng Ma <mawupeng1@huawei.com>
To: <akpm@linux-foundation.org>, <david@redhat.com>,
	<npiggin@suse.de>, <ying.huang@intel.com>, <hannes@cmpxchg.org>
Cc: <corbet@lwn.net>, <mcgrof@kernel.org>, <mgorman@suse.de>,
	<keescook@chromium.org>, <yzaikin@google.com>,
	<songmuchun@bytedance.com>, <mike.kravetz@oracle.com>,
	<osalvador@suse.de>, <surenb@google.com>, <mawupeng1@huawei.com>,
	<rppt@kernel.org>, <charante@codeaurora.org>,
	<jsavitz@redhat.com>, <linux-kernel@vger.kernel.org>,
	<linux-mm@kvack.org>
Subject: [PATCH -next v3 1/2] mm: Cap zone movable's min wmark to small value
Date: Mon, 5 Sep 2022 11:28:57 +0800	[thread overview]
Message-ID: <20220905032858.1462927-2-mawupeng1@huawei.com> (raw)
In-Reply-To: <20220905032858.1462927-1-mawupeng1@huawei.com>

From: Ma Wupeng <mawupeng1@huawei.com>

Since min_free_kbytes is based on gfp_zone(GFP_USER) which does not include
zone movable. However zone movable will get its min share in
__setup_per_zone_wmarks() which does not make any sense.

And like highmem pages, __GFP_HIGH and PF_MEMALLOC allocations usually
don't need movable pages, so there is no need to assign min pages for zone
movable.

Let's cap pages_min for zone movable to a small value here just link
highmem pages.

Signed-off-by: Ma Wupeng <mawupeng1@huawei.com>
---
 mm/page_alloc.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index e5486d47406e..f1e4474879f1 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -8636,9 +8636,9 @@ static void __setup_per_zone_wmarks(void)
 	struct zone *zone;
 	unsigned long flags;
 
-	/* Calculate total number of !ZONE_HIGHMEM pages */
+	/* Calculate total number of none highmem/movable pages */
 	for_each_zone(zone) {
-		if (!is_highmem(zone))
+		if (!is_highmem(zone) && zone_idx(zone) != ZONE_MOVABLE)
 			lowmem_pages += zone_managed_pages(zone);
 	}
 
@@ -8648,15 +8648,15 @@ static void __setup_per_zone_wmarks(void)
 		spin_lock_irqsave(&zone->lock, flags);
 		tmp = (u64)pages_min * zone_managed_pages(zone);
 		do_div(tmp, lowmem_pages);
-		if (is_highmem(zone)) {
+		if (is_highmem(zone) || zone_idx(zone) == ZONE_MOVABLE) {
 			/*
 			 * __GFP_HIGH and PF_MEMALLOC allocations usually don't
-			 * need highmem pages, so cap pages_min to a small
-			 * value here.
+			 * need highmem/movable pages, so cap pages_min to a
+			 * small value here.
 			 *
 			 * The WMARK_HIGH-WMARK_LOW and (WMARK_LOW-WMARK_MIN)
 			 * deltas control async page reclaim, and so should
-			 * not be capped for highmem.
+			 * not be capped for highmem/movable zone.
 			 */
 			unsigned long min_pages;
 
-- 
2.25.1


  reply	other threads:[~2022-09-05  3:29 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-05  3:28 [PATCH -next v3 0/2] watermark related improvement on zone movable Wupeng Ma
2022-09-05  3:28 ` Wupeng Ma [this message]
2022-09-05  9:26   ` [PATCH -next v3 1/2] mm: Cap zone movable's min wmark to small value Mel Gorman
2022-09-06 10:12     ` mawupeng
2022-09-06 12:22       ` Mel Gorman
2022-09-07  8:42         ` mawupeng
2022-09-05  3:28 ` [PATCH -next v3 2/2] mm: sysctl: Introduce per zone watermark_scale_factor Wupeng Ma
2022-09-05  3:45   ` Matthew Wilcox
2022-09-05  6:39     ` mawupeng
2022-09-06 18:23   ` Luis Chamberlain
2022-09-07  3:29     ` mawupeng
2022-09-09 21:41   ` Khalid Aziz
2022-09-13  2:09     ` mawupeng
2022-09-14 22:42       ` Khalid Aziz

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=20220905032858.1462927-2-mawupeng1@huawei.com \
    --to=mawupeng1@huawei.com \
    --cc=akpm@linux-foundation.org \
    --cc=charante@codeaurora.org \
    --cc=corbet@lwn.net \
    --cc=david@redhat.com \
    --cc=hannes@cmpxchg.org \
    --cc=jsavitz@redhat.com \
    --cc=keescook@chromium.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mcgrof@kernel.org \
    --cc=mgorman@suse.de \
    --cc=mike.kravetz@oracle.com \
    --cc=npiggin@suse.de \
    --cc=osalvador@suse.de \
    --cc=rppt@kernel.org \
    --cc=songmuchun@bytedance.com \
    --cc=surenb@google.com \
    --cc=ying.huang@intel.com \
    --cc=yzaikin@google.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 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.