[merged] mm-sparse-add-a-static-variable-nr_present_sections.patch removed from -mm tree

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

 



The patch titled
     Subject: mm/sparse.c: add a static variable nr_present_sections
has been removed from the -mm tree.  Its filename was
     mm-sparse-add-a-static-variable-nr_present_sections.patch

This patch was dropped because it was merged into mainline or a subsystem tree

------------------------------------------------------
From: Baoquan He <bhe@xxxxxxxxxx>
Subject: mm/sparse.c: add a static variable nr_present_sections

Patch series "mm/sparse: Optimize memmap allocation during sparse_init()",
v6.

In sparse_init(), two temporary pointer arrays, usemap_map and map_map are
allocated with the size of NR_MEM_SECTIONS.  They are used to store each
memory section's usemap and mem map if marked as present.  In 5-level
paging mode, this will cost 512M memory though they will be released at
the end of sparse_init().  System with few memory, like kdump kernel which
usually only has about 256M, will fail to boot because of allocation
failure if CONFIG_X86_5LEVEL=y.

In this patchset, optimize the memmap allocation code to only use
usemap_map and map_map with the size of nr_present_sections.  This makes
kdump kernel boot up with normal crashkernel='' setting when
CONFIG_X86_5LEVEL=y.


This patch (of 5):

nr_present_sections is used to record how many memory sections are marked
as present during system boot up, and will be used in the later patch.

Link: http://lkml.kernel.org/r/20180228032657.32385-2-bhe@xxxxxxxxxx
Signed-off-by: Baoquan He <bhe@xxxxxxxxxx>
Acked-by: Dave Hansen <dave.hansen@xxxxxxxxx>
Reviewed-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Reviewed-by: Pavel Tatashin <pasha.tatashin@xxxxxxxxxx>
Reviewed-by: Oscar Salvador <osalvador@xxxxxxx>
Cc: Pasha Tatashin <Pavel.Tatashin@xxxxxxxxxxxxx>
Cc: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
Cc: Pankaj Gupta <pagupta@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
---

 mm/sparse.c |    7 +++++++
 1 file changed, 7 insertions(+)

--- a/mm/sparse.c~mm-sparse-add-a-static-variable-nr_present_sections
+++ a/mm/sparse.c
@@ -200,6 +200,12 @@ static inline int next_present_section_n
 	      (section_nr <= __highest_present_section_nr));	\
 	     section_nr = next_present_section_nr(section_nr))
 
+/*
+ * Record how many memory sections are marked as present
+ * during system bootup.
+ */
+static int __initdata nr_present_sections;
+
 /* Record a memory area against a node. */
 void __init memory_present(int nid, unsigned long start, unsigned long end)
 {
@@ -229,6 +235,7 @@ void __init memory_present(int nid, unsi
 			ms->section_mem_map = sparse_encode_early_nid(nid) |
 							SECTION_IS_ONLINE;
 			section_mark_present(ms);
+			nr_present_sections++;
 		}
 	}
 }
_

Patches currently in -mm which might be from bhe@xxxxxxxxxx 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