lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Mon, 14 May 2012 20:58:54 +0900
From:	Yasuaki Ishimatsu <isimatu.yasuaki@...fujitsu.com>
To:	Lai Jiangshan <laijs@...fujitsu.com>
CC:	Mel Gorman <mgorman@...e.de>,
	Andrew Morton <akpm@...ux-foundation.org>, linux-mm@...ck.org,
	LKML <linux-kernel@...r.kernel.org>
Subject: [Patch 3/4] memblock: limit memory address from memblock

Setting kernelcore_max_pfn means all memory which is bigger than
the boot parameter is allocated as ZONE_MOVABLE. So memory which
is allocated by memblock also should be limited by the parameter.

The patch limits memory from memblock.

---
  include/linux/memblock.h |    1 +
  mm/memblock.c            |    5 ++++-
  mm/page_alloc.c          |    6 +++++-
  3 files changed, 10 insertions(+), 2 deletions(-)

Index: linux-3.4-rc6/include/linux/memblock.h
===================================================================
--- linux-3.4-rc6.orig/include/linux/memblock.h	2012-05-15 03:17:33.180555589 +0900
+++ linux-3.4-rc6/include/linux/memblock.h	2012-05-15 03:51:25.102153084 +0900
@@ -42,6 +42,7 @@ struct memblock {

  extern struct memblock memblock;
  extern int memblock_debug;
+extern phys_addr_t memblock_limit;

  #define memblock_dbg(fmt, ...) \
  	if (memblock_debug) printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
Index: linux-3.4-rc6/mm/memblock.c
===================================================================
--- linux-3.4-rc6.orig/mm/memblock.c	2012-05-15 03:17:33.180555589 +0900
+++ linux-3.4-rc6/mm/memblock.c	2012-05-15 03:51:25.104153055 +0900
@@ -876,7 +876,10 @@ int __init_memblock memblock_is_region_r

  void __init_memblock memblock_set_current_limit(phys_addr_t limit)
  {
-	memblock.current_limit = limit;
+	if (!memblock_limit || (memblock_limit > limit))
+		memblock.current_limit = limit;
+	else
+		memblock.current_limit = memblock_limit;
  }

  static void __init_memblock memblock_dump(struct memblock_type *type, char *name)
Index: linux-3.4-rc6/mm/page_alloc.c
===================================================================
--- linux-3.4-rc6.orig/mm/page_alloc.c	2012-05-15 03:17:33.179555602 +0900
+++ linux-3.4-rc6/mm/page_alloc.c	2012-05-15 03:51:25.107153013 +0900
@@ -205,6 +205,8 @@ static unsigned long __initdata required
  static unsigned long __initdata required_movablecore;
  static unsigned long __meminitdata zone_movable_pfn[MAX_NUMNODES];

+phys_addr_t memblock_limit;
+
  /* movable_zone is the "real" zone pages in ZONE_MOVABLE are taken from */
  int movable_zone;
  EXPORT_SYMBOL(movable_zone);
@@ -4836,7 +4838,9 @@ static int __init cmdline_parse_core(cha
   */
  static int __init cmdline_parse_kernelcore_max_addr(char *p)
  {
-	return cmdline_parse_core(p, &required_kernelcore_max_pfn);
+	cmdline_parse_core(p, &required_kernelcore_max_pfn);
+	memblock_limit = required_kernelcore_max_pfn << PAGE_SHIFT;
+	return 0;
  }

  /*

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ