Thread (4 messages) 4 messages, 2 authors, 2022-08-25

Re: [PATCH v2] page_ext: introduce boot parameter 'early_page_ext'

From: Michal Hocko <mhocko@suse.com>
Date: 2022-08-24 08:09:59
Also in: linux-mm, lkml

On Wed 24-08-22 14:50:58, lizhe.67@bytedance.com wrote:
[...]
quoted hunk ↗ jump to hunk
diff --git a/include/linux/page_ext.h b/include/linux/page_ext.h
index fabb2e1e087f..3e081cf8a1ec 100644
--- a/include/linux/page_ext.h
+++ b/include/linux/page_ext.h
@@ -38,19 +38,22 @@ struct page_ext {
 
 extern unsigned long page_ext_size;
 extern void pgdat_page_ext_init(struct pglist_data *pgdat);
+#ifdef CONFIG_DEFERRED_STRUCT_PAGE_INIT
+extern bool early_page_ext_enable(void);
+#endif
 
 #ifdef CONFIG_SPARSEMEM
 static inline void page_ext_init_flatmem(void)
 {
 }
-extern void page_ext_init(void);
+extern void page_ext_init(bool early);
 static inline void page_ext_init_flatmem_late(void)
 {
 }
 #else
 extern void page_ext_init_flatmem(void);
 extern void page_ext_init_flatmem_late(void);
-static inline void page_ext_init(void)
+static inline void page_ext_init(bool early)
 {
 }
 #endif
Why do you need to make it CONFIG_DEFERRED_STRUCT_PAGE_INIT
dependant?

[...]
quoted hunk ↗ jump to hunk
diff --git a/init/main.c b/init/main.c
index 91642a4e69be..3760c0326525 100644
--- a/init/main.c
+++ b/init/main.c
@@ -849,6 +849,8 @@ static void __init mm_init(void)
 	pgtable_init();
 	debug_objects_mem_init();
 	vmalloc_init();
+	/* Should be run after vmap initialization */
+	page_ext_init(true);
you can just 
	if (early_page_ext)
		page_ext_init();
quoted hunk ↗ jump to hunk
 	/* Should be run before the first non-init thread is created */
 	init_espfix_bsp();
 	/* Should be run after espfix64 is set up. */
@@ -1606,7 +1608,7 @@ static noinline void __init kernel_init_freeable(void)
 	padata_init();
 	page_alloc_init_late();
 	/* Initialize page ext after all struct pages are initialized. */
-	page_ext_init();
+	page_ext_init(false);
	if (!early_page_ext)
		page_ext_init();
 
 	do_basic_setup();
 
and without the ifdefery it all becomes much more simple.
-- 
Michal Hocko
SUSE Labs
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help