All of lore.kernel.org
 help / color / mirror / Atom feed
From: Baoquan He <bhe@redhat.com>
To: linux-mm@kvack.org
Cc: akpm@linux-foundation.org, rppt@kernel.org, mgorman@suse.de
Subject: Re: [PATCH v2 2/7] mm/init: remove the unnecessary special treatment for memory-less node
Date: Wed, 10 Apr 2024 11:35:29 +0800	[thread overview]
Message-ID: <ZhYJAVQRYJSTKZng@MiWiFi-R3L-srv> (raw)
In-Reply-To: <20240326061134.1055295-3-bhe@redhat.com>

Because memory-less node's ->node_present_pages and its
zone's ->present_pages are all 0, the judgement before calling
node_set_state() to set N_MEMORY, N_HIGH_MEMORY, N_NORMAL_MEMORY for
node is enough to skip memory-less node. The 'continue;' statement
inside for_each_node() loop of free_area_init() is gilding the lily.

Here, remove the special handling to make memory-less node share the
same code flow as normal node.

And also rephrase the code comments above the 'continue' statement
and move them above above line 'if (pgdat->node_present_pages)'.

Signed-off-by: Baoquan He <bhe@redhat.com>
---
v1->v2:
- As Mike suggested, the old code comments above the 'continue'
  statement is still useful for easier understanding code and system
  behaviour. So rephrase and move them above line 'if
  (pgdat->node_present_pages)'. Thanks to Mike.

 mm/mm_init.c | 27 +++++++++++----------------
 1 file changed, 11 insertions(+), 16 deletions(-)

diff --git a/mm/mm_init.c b/mm/mm_init.c
index 2016ca8031e9..32ede966e609 100644
--- a/mm/mm_init.c
+++ b/mm/mm_init.c
@@ -1834,28 +1834,23 @@ void __init free_area_init(unsigned long *max_zone_pfn)
 				panic("Cannot allocate %zuB for node %d.\n",
 				       sizeof(*pgdat), nid);
 			arch_refresh_nodedata(nid, pgdat);
-			free_area_init_node(nid);
-
-			/*
-			 * We do not want to confuse userspace by sysfs
-			 * files/directories for node without any memory
-			 * attached to it, so this node is not marked as
-			 * N_MEMORY and not marked online so that no sysfs
-			 * hierarchy will be created via register_one_node for
-			 * it. The pgdat will get fully initialized by
-			 * hotadd_init_pgdat() when memory is hotplugged into
-			 * this node.
-			 */
-			continue;
 		}
 
 		pgdat = NODE_DATA(nid);
 		free_area_init_node(nid);
 
-		/* Any memory on that node */
-		if (pgdat->node_present_pages)
+		/*
+		 * No sysfs hierarcy will be created via register_one_node()
+		 *for memory-less node because here it's not marked as N_MEMORY
+		 *and won't be set online later. The benefit is userspace
+		 *program won't be confused by sysfs files/directories of
+		 *memory-less node. The pgdat will get fully initialized by
+		 *hotadd_init_pgdat() when memory is hotplugged into this node.
+		 */
+		if (pgdat->node_present_pages) {
 			node_set_state(nid, N_MEMORY);
-		check_for_memory(pgdat);
+			check_for_memory(pgdat);
+		}
 	}
 
 	calc_nr_kernel_pages();
-- 
2.41.0



  parent reply	other threads:[~2024-04-10  3:35 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-26  6:11 [PATCH 0/7] mm/init: minor clean up and improvement Baoquan He
2024-03-26  6:11 ` [PATCH 1/7] mm: move array mem_section init code out of memory_present() Baoquan He
2024-04-02  8:19   ` Mike Rapoport
2024-04-04  1:38     ` Baoquan He
2024-03-26  6:11 ` [PATCH 2/7] mm/init: remove the unnecessary special treatment for memory-less node Baoquan He
2024-04-02  8:32   ` Mike Rapoport
2024-04-04  3:23     ` Baoquan He
2024-04-09 15:40       ` Mike Rapoport
2024-04-10  3:38         ` Baoquan He
2024-04-10  3:35   ` Baoquan He [this message]
2024-03-26  6:11 ` [PATCH 3/7] mm: make __absent_pages_in_range() as static Baoquan He
2024-04-02  8:29   ` Mike Rapoport
2024-03-26  6:11 ` [PATCH 4/7] mm/page_alloc.c: remove unneeded codes in !NUMA version of build_zonelists() Baoquan He
2024-03-27  1:53   ` kernel test robot
2024-03-27 10:58     ` Baoquan He
2024-03-27 12:06   ` [PATCH v2 " Baoquan He
2024-03-26  6:11 ` [PATCH 5/7] mm/mm_init.c: remove the outdated code comment above deferred_grow_zone() Baoquan He
2024-04-02  8:30   ` Mike Rapoport
2024-03-26  6:11 ` [PATCH 6/7] mm/page_alloc.c: don't show protection in zone's ->lowmem_reserve[] for empty zone Baoquan He
2024-03-26  6:11 ` [PATCH 7/7] mm/page_alloc.c: change the array-length to MIGRATE_PCPTYPES Baoquan He

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=ZhYJAVQRYJSTKZng@MiWiFi-R3L-srv \
    --to=bhe@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=linux-mm@kvack.org \
    --cc=mgorman@suse.de \
    --cc=rppt@kernel.org \
    /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.