Linux-mm Archive on lore.kernel.org
 help / color / mirror / Atom feed
* Re: [RFC][PATCH 1/4] memcg: add softlimit interface and utilitiy function.
From: Balbir Singh @ 2009-03-09  8:54 UTC (permalink / raw)
  To: KAMEZAWA Hiroyuki
  Cc: linux-mm@kvack.org, nishimura@mxp.nes.nec.co.jp,
	kosaki.motohiro@jp.fujitsu.com
In-Reply-To: <20090309172911.312b0634.kamezawa.hiroyu@jp.fujitsu.com>

* KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> [2009-03-09 17:29:11]:

> On Mon, 9 Mar 2009 13:14:49 +0530
> Balbir Singh <balbir@linux.vnet.ibm.com> wrote:
> 
> > * KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> [2009-03-09 16:39:07]:
> > 
> > > From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
> > > Adds an interface for defining sotlimit per memcg. (no handler in this patch.)
> > > softlimit.priority and queue for softlimit is added in the next patch.
> > > 
> > > 
> > > Changelog v1->v2:
> > >  - For refactoring, divided a patch into 2 part and this patch just
> > >    involves memory.softlimit interface.
> > >  - Removed governor-detect routine, it was buggy in design.
> > > 
> > > Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
> > > ---
> > >  mm/memcontrol.c |   62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
> > >  1 file changed, 60 insertions(+), 2 deletions(-)
> > 
> > 
> > This patch breaks the semantics of resource counters. We would like to
> > use resource counters to track all overhead. I've refined my tracking
> > to an extent that the overhead does not show up at all, unless soft
> > limits kick in. I oppose keeping soft limits outside of resource
> > counters.
> > 
> 
> BTW, any other user of res_counter than memcg in future ?

None so far.. but we once the core controllers are developed (CPU,
memory), I would expect IO, tasks, number of open files, etc to be
potential exploiters.

> I'm afraid that res_counter is decolated as chocolate-cake and will not taste
> good for people who wants simple counter as simple pancake...
> 


I think keeping the design modular has helped. This way we can
optimize resource counters without touching any controller. Only when
features are enabled is when people get the chocolate cake feeling,
not otherwise.

-- 
	Balbir

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply

* Re: [RFC][PATCH 1/4] memcg: add softlimit interface and utilitiy function.
From: Balbir Singh @ 2009-03-09  8:48 UTC (permalink / raw)
  To: KAMEZAWA Hiroyuki
  Cc: linux-mm@kvack.org, nishimura@mxp.nes.nec.co.jp,
	kosaki.motohiro@jp.fujitsu.com
In-Reply-To: <20090309165507.9f57ad41.kamezawa.hiroyu@jp.fujitsu.com>

* KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> [2009-03-09 16:55:07]:

> On Mon, 9 Mar 2009 13:14:49 +0530
> Balbir Singh <balbir@linux.vnet.ibm.com> wrote:
> 
> > * KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> [2009-03-09 16:39:07]:
> > 
> > > From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
> > > Adds an interface for defining sotlimit per memcg. (no handler in this patch.)
> > > softlimit.priority and queue for softlimit is added in the next patch.
> > > 
> > > 
> > > Changelog v1->v2:
> > >  - For refactoring, divided a patch into 2 part and this patch just
> > >    involves memory.softlimit interface.
> > >  - Removed governor-detect routine, it was buggy in design.
> > > 
> > > Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
> > > ---
> > >  mm/memcontrol.c |   62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
> > >  1 file changed, 60 insertions(+), 2 deletions(-)
> > 
> > 
> > This patch breaks the semantics of resource counters. We would like to
> > use resource counters to track all overhead. I've refined my tracking
> > to an extent that the overhead does not show up at all, unless soft
> > limits kick in. I oppose keeping soft limits outside of resource
> > counters.
> 
> Hmm, them, moving mem->softlimit to res->softlimit is ok ?
> 
> If no more "branch" to res_counter_charge/uncharge(), moving this to
> res_counter is ok to me.
>

There is a branch, but the additional excessive checks are gone.
It should be possible to reduce the overhead to comparisons though. 

-- 
	Balbir

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply

* Re: [RFC][PATCH 1/4] memcg: add softlimit interface and utilitiy function.
From: KAMEZAWA Hiroyuki @ 2009-03-09  8:29 UTC (permalink / raw)
  To: balbir
  Cc: linux-mm@kvack.org, nishimura@mxp.nes.nec.co.jp,
	kosaki.motohiro@jp.fujitsu.com
In-Reply-To: <20090309074449.GH24321@balbir.in.ibm.com>

On Mon, 9 Mar 2009 13:14:49 +0530
Balbir Singh <balbir@linux.vnet.ibm.com> wrote:

> * KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> [2009-03-09 16:39:07]:
> 
> > From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
> > Adds an interface for defining sotlimit per memcg. (no handler in this patch.)
> > softlimit.priority and queue for softlimit is added in the next patch.
> > 
> > 
> > Changelog v1->v2:
> >  - For refactoring, divided a patch into 2 part and this patch just
> >    involves memory.softlimit interface.
> >  - Removed governor-detect routine, it was buggy in design.
> > 
> > Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
> > ---
> >  mm/memcontrol.c |   62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
> >  1 file changed, 60 insertions(+), 2 deletions(-)
> 
> 
> This patch breaks the semantics of resource counters. We would like to
> use resource counters to track all overhead. I've refined my tracking
> to an extent that the overhead does not show up at all, unless soft
> limits kick in. I oppose keeping soft limits outside of resource
> counters.
> 

BTW, any other user of res_counter than memcg in future ?
I'm afraid that res_counter is decolated as chocolate-cake and will not taste
good for people who wants simple counter as simple pancake...

Thanks,
-Kame

Thanks,
-Kame



--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply

* Re: [RFC][PATCH 1/4] memcg: add softlimit interface and utilitiy function.
From: KAMEZAWA Hiroyuki @ 2009-03-09  7:55 UTC (permalink / raw)
  To: balbir
  Cc: linux-mm@kvack.org, nishimura@mxp.nes.nec.co.jp,
	kosaki.motohiro@jp.fujitsu.com
In-Reply-To: <20090309074449.GH24321@balbir.in.ibm.com>

On Mon, 9 Mar 2009 13:14:49 +0530
Balbir Singh <balbir@linux.vnet.ibm.com> wrote:

> * KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> [2009-03-09 16:39:07]:
> 
> > From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
> > Adds an interface for defining sotlimit per memcg. (no handler in this patch.)
> > softlimit.priority and queue for softlimit is added in the next patch.
> > 
> > 
> > Changelog v1->v2:
> >  - For refactoring, divided a patch into 2 part and this patch just
> >    involves memory.softlimit interface.
> >  - Removed governor-detect routine, it was buggy in design.
> > 
> > Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
> > ---
> >  mm/memcontrol.c |   62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
> >  1 file changed, 60 insertions(+), 2 deletions(-)
> 
> 
> This patch breaks the semantics of resource counters. We would like to
> use resource counters to track all overhead. I've refined my tracking
> to an extent that the overhead does not show up at all, unless soft
> limits kick in. I oppose keeping soft limits outside of resource
> counters.

Hmm, them, moving mem->softlimit to res->softlimit is ok ?

If no more "branch" to res_counter_charge/uncharge(), moving this to
res_counter is ok to me.


Thanks,
-Kame


> 
> -- 
> 	Balbir
> 

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply

* Re: [RFC][PATCH 1/4] memcg: add softlimit interface and utilitiy function.
From: Balbir Singh @ 2009-03-09  7:44 UTC (permalink / raw)
  To: KAMEZAWA Hiroyuki
  Cc: linux-mm@kvack.org, nishimura@mxp.nes.nec.co.jp,
	kosaki.motohiro@jp.fujitsu.com
In-Reply-To: <20090309163907.a3cee183.kamezawa.hiroyu@jp.fujitsu.com>

* KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> [2009-03-09 16:39:07]:

> From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
> Adds an interface for defining sotlimit per memcg. (no handler in this patch.)
> softlimit.priority and queue for softlimit is added in the next patch.
> 
> 
> Changelog v1->v2:
>  - For refactoring, divided a patch into 2 part and this patch just
>    involves memory.softlimit interface.
>  - Removed governor-detect routine, it was buggy in design.
> 
> Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
> ---
>  mm/memcontrol.c |   62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
>  1 file changed, 60 insertions(+), 2 deletions(-)


This patch breaks the semantics of resource counters. We would like to
use resource counters to track all overhead. I've refined my tracking
to an extent that the overhead does not show up at all, unless soft
limits kick in. I oppose keeping soft limits outside of resource
counters.


-- 
	Balbir

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply

* [RFC][PATCH 4/4] memcg: softlimit documenation
From: KAMEZAWA Hiroyuki @ 2009-03-09  7:43 UTC (permalink / raw)
  To: KAMEZAWA Hiroyuki
  Cc: linux-mm@kvack.org, balbir@linux.vnet.ibm.com,
	nishimura@mxp.nes.nec.co.jp, kosaki.motohiro@jp.fujitsu.com
In-Reply-To: <20090309163745.5e3805ba.kamezawa.hiroyu@jp.fujitsu.com>

From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>

Documentation for softlimit

Changelog: (v1)->(v2)
 - fixed typos.
 - added more precise text.

Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
---
 Documentation/cgroups/memory.txt |   29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

Index: develop/Documentation/cgroups/memory.txt
===================================================================
--- develop.orig/Documentation/cgroups/memory.txt
+++ develop/Documentation/cgroups/memory.txt
@@ -322,6 +322,35 @@ will be charged as a new owner of it.
   - a cgroup which uses hierarchy and it has child cgroup.
   - a cgroup which uses hierarchy and not the root of hierarchy.
 
+5.4 softlimit
+  Memory cgroup supports softlimit and has 2 parameters for control.
+
+    - memory.softlimit_in_bytes
+	softlimit for this cgroup
+
+    - memory.softlimit_priority
+	priority of this cgroup at softlimit reclaim
+	Allowed priority level is 0-8 and 0 is the lowest, 8 is the highest.
+        If 8 is specified, this will not be target of softlimit.
+
+  At memory shortage of the system (or local node/zone), softlimit helps
+  kswapd(), a global memory reclaim kernel thread, and informs victim cgroup
+  to be shrinked to kswapd.
+
+  Victim selection logic:
+  *Now*, static priority round-robin queue is used.
+
+  The kernel searches from the lowest priroty(0) up to the highest(7).
+  (priority (8) will never be scanned.)
+  If it finds a cgroup which has memory larger than softlimit, steal memory
+  from it. If multiple cgroups are on the same priority, each cgroup will be a
+  victim in turn.
+
+  Note: the kernel splits memory into zones and the system's memory shortage
+  is usually shorgage of zone's memory. So, even if a memcg'spriority is low,
+  it may not be selected because target zone's memory is not included in it.
+
+  Todo: some kind of dynamic-priority scheduler is fine.
 
 6. Hierarchy support
 

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply

* [RFC][PATCH 3/4] memcg: softlimit caller via kswapd
From: KAMEZAWA Hiroyuki @ 2009-03-09  7:42 UTC (permalink / raw)
  To: KAMEZAWA Hiroyuki
  Cc: linux-mm@kvack.org, balbir@linux.vnet.ibm.com,
	nishimura@mxp.nes.nec.co.jp, kosaki.motohiro@jp.fujitsu.com
In-Reply-To: <20090309163745.5e3805ba.kamezawa.hiroyu@jp.fujitsu.com>

From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>

This patch adds hooks for memcg's softlimit to kswapd().

Softlimit handler is called...
  - before generic shrink_zone() is called.
  - # of pages to be scanned depends on priority.
  - If not enough progress, selected memcg will be moved to UNUSED queue.
  - at each call for balance_pgdat(), softlimit queue is rebalanced.

Changelog: v1->v2
  - check "enough progress" or not.

Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
---
 mm/vmscan.c |   42 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

Index: develop/mm/vmscan.c
===================================================================
--- develop.orig/mm/vmscan.c
+++ develop/mm/vmscan.c
@@ -1733,6 +1733,43 @@ unsigned long try_to_free_mem_cgroup_pag
 }
 #endif
 
+static void shrink_zone_softlimit(struct scan_control *sc, struct zone *zone,
+			   int order, int priority, int target, int end_zone)
+{
+	int scan = SWAP_CLUSTER_MAX;
+	int nid = zone->zone_pgdat->node_id;
+	int zid = zone_idx(zone);
+	int before;
+	struct mem_cgroup *mem;
+
+	scan <<= (DEF_PRIORITY - priority);
+	if (scan > (target * 2))
+		scan = target * 2;
+
+	while (scan > 0) {
+		if (zone_watermark_ok(zone, order, target, end_zone, 0))
+			break;
+		mem = mem_cgroup_schedule(nid, zid);
+		if (!mem)
+			return;
+		sc->nr_scanned = 0;
+		sc->mem_cgroup = mem;
+		before = sc->nr_reclaimed;
+		sc->isolate_pages = mem_cgroup_isolate_pages;
+
+		shrink_zone(priority, zone, sc);
+
+		if (sc->nr_reclaimed - before > scan/2)
+			mem_cgroup_schedule_end(nid, zid, mem, true);
+		else
+			mem_cgroup_schedule_end(nid, zid, mem, false);
+
+		sc->mem_cgroup = NULL;
+		sc->isolate_pages = isolate_pages_global;
+		scan -= sc->nr_scanned;
+	}
+	return;
+}
 /*
  * For kswapd, balance_pgdat() will work across all this node's zones until
  * they are all at pages_high.
@@ -1776,6 +1813,8 @@ static unsigned long balance_pgdat(pg_da
 	 */
 	int temp_priority[MAX_NR_ZONES];
 
+	/* Refill softlimit queue */
+	mem_cgroup_reschedule(pgdat->node_id);
 loop_again:
 	total_scanned = 0;
 	sc.nr_reclaimed = 0;
@@ -1856,6 +1895,9 @@ loop_again:
 					       end_zone, 0))
 				all_zones_ok = 0;
 			temp_priority[i] = priority;
+			/* Try soft limit at first */
+			shrink_zone_softlimit(&sc, zone, order, priority,
+					       8 * zone->pages_high, end_zone);
 			sc.nr_scanned = 0;
 			note_zone_scanning_priority(zone, priority);
 			/*

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply

* [RFC][PATCH 2/4] memcg: softlimit priority and victim scheduler
From: KAMEZAWA Hiroyuki @ 2009-03-09  7:41 UTC (permalink / raw)
  To: KAMEZAWA Hiroyuki
  Cc: linux-mm@kvack.org, balbir@linux.vnet.ibm.com,
	nishimura@mxp.nes.nec.co.jp, kosaki.motohiro@jp.fujitsu.com
In-Reply-To: <20090309163745.5e3805ba.kamezawa.hiroyu@jp.fujitsu.com>

From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>

Per-zone queue/scheduler for memory cgroup softlimit.

At handling softlimit, we have to check following 2 points.
  (A) usage on memcg is bigger than softlimit or not.
  (B) memcg has evictable memory on specified zone.

One of design choice is how to call softlimit code. This patch uses
uses kswapd() as a thread for reclaiming memory.
I think this is reasonable. kswapd() is spawned per node.
(The caller itself will be in the next patch.)

Another design choice is "When there are multiple cgroups over softlimit,
which one should be selected."
I added "softlimit_priority" to handle this and implemented static priority
round-robin logic.

>From above, this uses following design.

  1. per-zone schedule queue with priority
  2. scheduling(selection) algorithm is Static Priority Round Robin.
  3. Fortunately, memcg has mem_cgroup_per_zone objects already, Use it
     as scheduling unit.

Initially, memcg has softlimit_priority=SOFTLIMIT_MAXPRIO and it's not queued.
When it is set to some number, it will be added to softlimit queue per zone.

Kswapd() will select the memcg from the top of per-zone queue and check it
satisfies above (A) and (B). If satisfies, memory will be reclaimed from 
selected one and pushed back to tail of CHECK queue. If doesn't, it will be
moved to IGNORE queue.

When kswapd() enters next turn of scanning, IGNORE queue will be merged back
to CHECK queue. (What "next turn" means is another point for discussion..)

(Consideration)
 I wonder we have a chance to implement dynamic-priority scheduling rather than
 static-priority, later. So, priority rage 0-8 is too small ?
 (If no concerns, I'll not increase the range.)

TODO:
 - This patch is more complicated than expected..should be divided...

Changelog: v1->v2
 - totally re-designed.
 - Now, 0 is the lowest, 8 is the highest priority.
 - per-zone queue.
 - Allow kswapd() to pass parameter to requeue this or not.
 - fixed bugs.

Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
---
 include/linux/memcontrol.h |   19 ++
 mm/memcontrol.c            |  324 ++++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 342 insertions(+), 1 deletion(-)

Index: develop/mm/memcontrol.c
===================================================================
--- develop.orig/mm/memcontrol.c
+++ develop/mm/memcontrol.c
@@ -116,6 +116,11 @@ struct mem_cgroup_per_zone {
 	unsigned long		count[NR_LRU_LISTS];
 
 	struct zone_reclaim_stat reclaim_stat;
+	/* For softlimit per-zone queue. See softlimit handling code. */
+	struct mem_cgroup *mem;
+	struct list_head sl_queue;
+	int              sl_state;
+	long             sl_prev_usage;
 };
 /* Macro for accessing counter */
 #define MEM_CGROUP_ZSTAT(mz, idx)	((mz)->count[(idx)])
@@ -179,6 +184,7 @@ struct mem_cgroup {
 	 * Softlimit Params.
 	 */
 	u64		softlimit;
+	int             softlimit_priority;
 	/*
 	 * statistics. This must be placed at the end of memcg.
 	 */
@@ -214,6 +220,7 @@ pcg_default_flags[NR_CHARGE_TYPE] = {
 #define MEMFILE_ATTR(val)	((val) & 0xffff)
 
 #define _MEM_SOFTLIMIT		(0x10)
+#define _MEM_SOFTLIMIT_PRIO	(0x11)
 
 static void mem_cgroup_get(struct mem_cgroup *mem);
 static void mem_cgroup_put(struct mem_cgroup *mem);
@@ -1908,12 +1915,131 @@ int mem_cgroup_force_empty_write(struct 
 /*
  * Softlimit Handling.
  */
+/*
+ * Priority of softlimit is a scheduling parameter for kswapd(). 0...is the
+ * lowest priority and 8 is the highest. This value is inherited at create()
+ * if hierarchical accounting is used (use_hierarchy==1). If not, prio is
+ * set to MAXPRIO and it will be ignored.
+ */
+#define SOFTLIMIT_MAXPRIO (8)
+#define SOFTLIMIT_DEFPRIO (0)
+
+/* Name of queue in softlimit_queue_zone */
+enum {
+	SLQ_CHECK,     /* schedulig target queue */
+	SLQ_IGNORE,   /* ignored queue until next reschedule */
+	SLQ_NUM
+};
+/*
+ * Per-zone softlimit queue. mem_cgroup_per_zone struct will be queued.
+ */
+struct softlimit_queue_zone {
+	spinlock_t lock;
+	struct list_head queue[SLQ_NUM][SOFTLIMIT_MAXPRIO];
+};
+
+struct softlimit_queue_node {
+	struct softlimit_queue_zone zone[MAX_NR_ZONES];
+};
+
+struct softlimit_queue_node *softlimit_sched[MAX_NUMNODES];
 
 /*
+ * Write-Locked at setting priority by user-land and new group creation.
+ * (for keeping sanity of hierarchy) in other case, read-locked
+ */
+DECLARE_RWSEM(softlimit_sem);
+
+/* For mz->sl_state */
+enum {
+	MZ_NOT_ON_QUEUE,
+	MZ_ON_QUEUE,
+	MZ_SELECTED,
+};
+
+/*
+ * Returns queue for zone.
+ */
+static inline struct softlimit_queue_zone *softlimit_queue(int nid, int zid)
+{
+	if (softlimit_sched[nid] == NULL)
+		return NULL;
+	return &softlimit_sched[nid]->zone[zid];
+}
+
+/*
+ * Returns # of evictable memory. (i.e, don't include ANON on swap-less system)
+ */
+static long mz_evictable_usage(struct mem_cgroup_per_zone *mz)
+{
+	long usage = 0;
+
+	/* Not necessary to be very precise. We don't take lock here */
+	if (nr_swap_pages) {
+		usage += MEM_CGROUP_ZSTAT(mz, LRU_ACTIVE_ANON);
+		usage += MEM_CGROUP_ZSTAT(mz, LRU_INACTIVE_ANON);
+	}
+	usage += MEM_CGROUP_ZSTAT(mz, LRU_ACTIVE_FILE);
+	usage += MEM_CGROUP_ZSTAT(mz, LRU_INACTIVE_FILE);
+	return usage;
+}
+
+/* Now, use static-priority */
+static int mz_softlimit_priority(struct mem_cgroup *mem,
+				struct mem_cgroup_per_zone *mz)
+{
+	return mem->softlimit_priority;
+}
+
+static void memcg_softlimit_dequeue(struct mem_cgroup *mem, int nid, int zid)
+{
+	struct softlimit_queue_zone *sqz = softlimit_queue(nid, zid);
+	struct mem_cgroup_per_zone *mz = mem_cgroup_zoneinfo(mem, nid, zid);
+
+	spin_lock(&sqz->lock);
+	list_del_init(&mz->sl_queue);
+	mz->sl_state = MZ_NOT_ON_QUEUE;
+	spin_unlock(&sqz->lock);
+}
+
+static void
+memcg_softlimit_enqueue(struct mem_cgroup *mem, int nid, int zid, bool check)
+{
+	struct softlimit_queue_zone *sqz = softlimit_queue(nid, zid);
+	struct mem_cgroup_per_zone *mz = mem_cgroup_zoneinfo(mem, nid, zid);
+	int queue = SLQ_CHECK;
+	int prio;
+
+	if (mem->softlimit_priority == SOFTLIMIT_MAXPRIO)
+		return;
+	if (!check)
+		queue = SLQ_IGNORE;
+	spin_lock(&sqz->lock);
+	prio = mz_softlimit_priority(mem, mz);
+	if (mz->sl_state != MZ_ON_QUEUE) {
+		list_add_tail(&mz->sl_queue, &sqz->queue[queue][prio]);
+		mz->sl_state = MZ_ON_QUEUE;
+	}
+	spin_unlock(&sqz->lock);
+}
+
+/* merge inactive queue to the tail of check queue */
+static void memcg_softlimit_rotate(int nid, int zid)
+{
+	struct softlimit_queue_zone *sqz = softlimit_queue(nid, zid);
+	int i;
+
+	spin_lock(&sqz->lock);
+	for (i = 0; i < SOFTLIMIT_MAXPRIO; i++)
+		list_splice_tail_init(&sqz->queue[SLQ_IGNORE][i],
+				      &sqz->queue[SLQ_CHECK][i]);
+	spin_unlock(&sqz->lock);
+}
+/*
  * A group under hierarchy has to check all ancestors.
  * css's refcnt of "mem" should be in caller.
  */
-static bool mem_cgroup_hit_softlimit(struct mem_cgroup *mem, void *data)
+static bool mem_cgroup_hit_softlimit(struct mem_cgroup *mem)
 {
 	struct mem_cgroup *tmp = mem;
 	struct cgroup *cg;
@@ -1932,12 +2058,174 @@ static bool mem_cgroup_hit_softlimit(str
 	return false;
 }
 
+static int __mem_cgroup_resize_softlimit(struct mem_cgroup *mem, void *data)
+{
+	int nid;
+	int zid;
+
+	/* softlimit_priority will not change under us. */
+	if (mem->softlimit_priority >= SOFTLIMIT_MAXPRIO)
+		goto out;
+	/* Add mz to queue if never enqueued */
+	for_each_node_state(nid, N_POSSIBLE) {
+		for (zid = 0; zid < MAX_NR_ZONES; zid++) {
+			struct mem_cgroup_per_zone *mz;
+			/*
+			 * We are under semaphore and this check before
+			 * taking lock is safe
+			 */
+			mz = mem_cgroup_zoneinfo(mem, nid, zid);
+			if (mz->sl_state == MZ_NOT_ON_QUEUE)
+				memcg_softlimit_enqueue(mem, nid, zid, true);
+		}
+	}
+out:
+	return 0;
+}
+
 static int mem_cgroup_resize_softlimit(struct mem_cgroup *mem, u64 val)
 {
+
+	down_read(&softlimit_sem);
 	mem->softlimit = val;
+	mem_cgroup_walk_tree(mem, NULL, __mem_cgroup_resize_softlimit);
+	up_read(&softlimit_sem);
 	return 0;
 }
 
+static int mem_cgroup_set_softlimit_priority(struct mem_cgroup *mem, int prio)
+{
+	int nid, zid;
+
+	down_write(&softlimit_sem);
+	if (mem->softlimit_priority < SOFTLIMIT_MAXPRIO) {
+		for_each_node_state(nid, N_POSSIBLE)
+			for (zid = 0; zid < MAX_NR_ZONES; zid++)
+				memcg_softlimit_dequeue(mem, nid, zid);
+	}
+	mem->softlimit_priority = prio;
+	if (mem->softlimit_priority < SOFTLIMIT_MAXPRIO) {
+		for_each_node_state(nid, N_POSSIBLE)
+			for (zid = 0; zid < MAX_NR_ZONES; zid++)
+				memcg_softlimit_enqueue(mem, nid, zid, true);
+	}
+
+	up_write(&softlimit_sem);
+	return 0;
+}
+
+/*
+ * Called by kswapd() and returns victim group to be reclaimed. Used algorithm
+ * is Static-Priority Round Robin against cgroups which hits softlimit.
+ * If cgroup is found to be not candidate, it will be linked to INACTIVE queue.
+ */
+struct mem_cgroup *mem_cgroup_schedule(int nid, int zid)
+{
+	struct mem_cgroup *ret = NULL;
+	struct mem_cgroup_per_zone *mz;
+	struct softlimit_queue_zone *sqz = softlimit_queue(nid, zid);
+	long usage;
+	int prio;
+
+	/* avoid balance_pgdat() starvation */
+	if (!down_read_trylock(&softlimit_sem))
+		return NULL;
+	spin_lock(&sqz->lock);
+	for (prio = 0; !ret && (prio < SOFTLIMIT_MAXPRIO); prio++) {
+		while (!list_empty(&sqz->queue[SLQ_CHECK][prio])) {
+			/* Pick up the first entry */
+			mz = list_first_entry(&sqz->queue[SLQ_CHECK][prio],
+					      struct mem_cgroup_per_zone,
+					      sl_queue);
+			list_del_init(&mz->sl_queue);
+			/*
+			 * For avoiding alloc() v.s. free() war, usage below
+			 * threshold is ignored.
+			 */
+			usage = mz_evictable_usage(mz);
+			if (usage) {
+				struct mem_cgroup *mem = mz->mem;
+				if (mem_cgroup_hit_softlimit(mem) &&
+				    css_tryget(&mem->css)) {
+					mz->sl_state = MZ_SELECTED;
+					mz->sl_prev_usage = usage;
+					ret = mem;
+					break;
+				}
+			}
+			/* move to INACTIVE queue */
+			list_add_tail(&mz->sl_queue,
+				      &sqz->queue[SLQ_IGNORE][prio]);
+		}
+	}
+	spin_unlock(&sqz->lock);
+	up_read(&softlimit_sem);
+
+	return ret;
+}
+
+void mem_cgroup_schedule_end(int nid, int zid, struct mem_cgroup *mem,
+			     bool requeue)
+{
+	struct mem_cgroup_per_zone *mz;
+	long usage;
+
+	if (!mem)
+		return;
+	/* mem->softlimit_priority will not change under this */
+	down_read(&softlimit_sem);
+	mz = mem_cgroup_zoneinfo(mem, nid, zid);
+	usage = mz_evictable_usage(mz);
+	/* Worth to be requeued ? */
+	if (requeue && (usage > SWAP_CLUSTER_MAX))
+		/* Move back to the ACTIVE queue of priority */
+		memcg_softlimit_enqueue(mem, nid, zid, true);
+	else /* Not enough page or Recaliming was not good. */
+		memcg_softlimit_enqueue(mem, nid, zid, false);
+	up_read(&softlimit_sem);
+	/* put refcnt from mem_cgroup_schedule() */
+	css_put(&mem->css);
+}
+
+/* Called by kswapd() once per calling balance_pgdat() */
+void mem_cgroup_reschedule(int nid)
+{
+	int zid;
+
+	/* mem->softlimit_priority will not change under this */
+	down_read(&softlimit_sem);
+	for (zid = 0; zid < MAX_NR_ZONES; zid++)
+		memcg_softlimit_rotate(nid, zid);
+	up_read(&softlimit_sem);
+}
+
+/* Called at first call to mem_cgroup_create() */
+static void __init softlimit_init(void)
+{
+	int zid, i, node, tmp;
+
+	for_each_node_state(node, N_POSSIBLE) {
+		struct softlimit_queue_node *sqn;
+
+		tmp = node;
+		if (!node_state(node, N_NORMAL_MEMORY))
+			tmp = -1;
+		sqn = kmalloc_node(sizeof(*sqn), GFP_KERNEL, tmp);
+		BUG_ON(!sqn);
+
+		for (zid = 0; zid < MAX_NR_ZONES; zid++) {
+			struct softlimit_queue_zone *sqz = &sqn->zone[zid];
+
+			spin_lock_init(&sqz->lock);
+			for (i = 0; i < SOFTLIMIT_MAXPRIO; i++) {
+				INIT_LIST_HEAD(&sqz->queue[SLQ_CHECK][i]);
+				INIT_LIST_HEAD(&sqz->queue[SLQ_IGNORE][i]);
+			}
+		}
+		softlimit_sched[node] = sqn;
+	}
+}
+
 
 static u64 mem_cgroup_hierarchy_read(struct cgroup *cont, struct cftype *cft)
 {
@@ -1977,6 +2265,16 @@ static int mem_cgroup_hierarchy_write(st
 	return retval;
 }
 
+static int mem_cgroup_softlimit_priority_write(struct cgroup *cgrp,
+					       struct cftype *cft,
+					       u64 val)
+{
+	struct mem_cgroup *mem = mem_cgroup_from_cont(cgrp);
+	if (val > SOFTLIMIT_MAXPRIO)
+		return -EINVAL;
+	return mem_cgroup_set_softlimit_priority(mem, val);
+}
+
 static u64 mem_cgroup_read(struct cgroup *cont, struct cftype *cft)
 {
 	struct mem_cgroup *mem = mem_cgroup_from_cont(cont);
@@ -1991,6 +2289,9 @@ static u64 mem_cgroup_read(struct cgroup
 		case _MEM_SOFTLIMIT:
 			val = mem->softlimit;
 			break;
+		case _MEM_SOFTLIMIT_PRIO:
+			val = mem->softlimit_priority;
+			break;
 		default:
 			val = res_counter_read_u64(&mem->res, name);
 			break;
@@ -2292,6 +2593,12 @@ static struct cftype mem_cgroup_files[] 
 		.read_u64 = mem_cgroup_read,
 	},
 	{
+		.name = "softlimit_priority",
+		.private = MEMFILE_PRIVATE(_MEM, _MEM_SOFTLIMIT_PRIO),
+		.write_u64 = mem_cgroup_softlimit_priority_write,
+		.read_u64 = mem_cgroup_read,
+	},
+	{
 		.name = "failcnt",
 		.private = MEMFILE_PRIVATE(_MEM, RES_FAILCNT),
 		.trigger = mem_cgroup_reset,
@@ -2385,12 +2692,19 @@ static int alloc_mem_cgroup_per_zone_inf
 		mz = &pn->zoneinfo[zone];
 		for_each_lru(l)
 			INIT_LIST_HEAD(&mz->lists[l]);
+		mz->mem = mem;
+		INIT_LIST_HEAD(&mz->sl_queue);
+		mz->sl_state = MZ_NOT_ON_QUEUE;
 	}
 	return 0;
 }
 
 static void free_mem_cgroup_per_zone_info(struct mem_cgroup *mem, int node)
 {
+	int zid;
+	for (zid = 0; zid < MAX_NR_ZONES; zid++)
+		memcg_softlimit_dequeue(mem, node, zid);
+
 	kfree(mem->info.nodeinfo[node]);
 }
 
@@ -2495,12 +2809,14 @@ mem_cgroup_create(struct cgroup_subsys *
 	/* root ? */
 	if (cont->parent == NULL) {
 		enable_swap_cgroup();
+		softlimit_init();
 		parent = NULL;
 	} else {
 		parent = mem_cgroup_from_cont(cont->parent);
 		mem->use_hierarchy = parent->use_hierarchy;
 	}
 
+	down_write(&softlimit_sem);
 	if (parent && parent->use_hierarchy) {
 		res_counter_init(&mem->res, &parent->res);
 		res_counter_init(&mem->memsw, &parent->memsw);
@@ -2511,9 +2827,11 @@ mem_cgroup_create(struct cgroup_subsys *
 		 * mem_cgroup(see mem_cgroup_put).
 		 */
 		mem_cgroup_get(parent);
+		mem->softlimit_priority = parent->softlimit_priority;
 	} else {
 		res_counter_init(&mem->res, NULL);
 		res_counter_init(&mem->memsw, NULL);
+		mem->softlimit_priority = SOFTLIMIT_MAXPRIO;
 	}
 	mem->last_scanned_child = 0;
 	spin_lock_init(&mem->reclaim_param_lock);
@@ -2521,6 +2839,10 @@ mem_cgroup_create(struct cgroup_subsys *
 
 	if (parent)
 		mem->swappiness = get_swappiness(parent);
+
+	/* add to softlimit queue if necessary */
+	__mem_cgroup_resize_softlimit(mem, NULL);
+	up_write(&softlimit_sem);
 	atomic_set(&mem->refcnt, 1);
 	return &mem->css;
 free_out:
Index: develop/include/linux/memcontrol.h
===================================================================
--- develop.orig/include/linux/memcontrol.h
+++ develop/include/linux/memcontrol.h
@@ -117,6 +117,12 @@ static inline bool mem_cgroup_disabled(v
 
 extern bool mem_cgroup_oom_called(struct task_struct *task);
 
+/* For Softlimit Handler */
+extern struct mem_cgroup *mem_cgroup_schedule(int nid, int zid);
+extern void
+mem_cgroup_schedule_end(int nid, int zid, struct mem_cgroup *mem, bool requeue);
+extern void mem_cgroup_reschedule(int nid);
+
 #else /* CONFIG_CGROUP_MEM_RES_CTLR */
 struct mem_cgroup;
 
@@ -264,6 +270,19 @@ mem_cgroup_print_oom_info(struct mem_cgr
 {
 }
 
+/* For Softlimit Handler */
+static inline struct mem_cgroup *mem_cgroup_schedule(int nid, int zid)
+{
+	return NULL;
+}
+static inline void
+mem_cgroup_schedule_end(int nid, int zid, struct mem_cgroup *mem, bool requeue)
+{
+}
+static inline void mem_cgroup_reschedule(int nid)
+{
+}
+
 #endif /* CONFIG_CGROUP_MEM_CONT */
 
 #endif /* _LINUX_MEMCONTROL_H */

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply

* Re: [Bug 12832] New: kernel leaks a lot of memory
From: Pierre Ossman @ 2009-03-09  7:40 UTC (permalink / raw)
  To: Wu Fengguang; +Cc: Andrew Morton, bugme-daemon, linux-mm
In-Reply-To: <20090309020701.GA381@localhost>

[-- Attachment #1: Type: text/plain, Size: 12482 bytes --]

On Mon, 9 Mar 2009 10:07:01 +0800
Wu Fengguang <fengguang.wu@intel.com> wrote:

> On Mon, Mar 09, 2009 at 09:37:42AM +0800, Wu Fengguang wrote:
> > 
> > The "free" pages in sysrq mem-info report should be equal to "MemFree"
> > in /proc/meminfo. So I'd expect meminfo numbers to be different in
> > .26/.27 as well.
> > 
> > Maybe the memory is taken by some user space program, so it would be
> > helpful to know the numbers in /proc/meminfo, /proc/vmstat and
> > /proc/zoneinfo.
> 
> And maybe piggyback /proc/slabinfo in case it is a kernel bug :-)
> 

Big dump of relevant /proc files:

[root@builder ~]# free
             total       used       free     shared    buffers     cached
Mem:        509108     236988     272120          0        228      14760
-/+ buffers/cache:     222000     287108
Swap:       524280        228     524052

[root@builder ~]# cat /proc/meminfo 
MemTotal:       509108 kB
MemFree:        272172 kB
Buffers:           240 kB
Cached:          14788 kB
SwapCached:         64 kB
Active:          32544 kB
Inactive:         5900 kB
SwapTotal:      524280 kB
SwapFree:       524052 kB
Dirty:            5980 kB
Writeback:           0 kB
AnonPages:       23404 kB
Mapped:           8648 kB
Slab:            23148 kB
SReclaimable:     5420 kB
SUnreclaim:      17728 kB
PageTables:       3324 kB
NFS_Unstable:        0 kB
Bounce:              0 kB
WritebackTmp:        0 kB
CommitLimit:    778832 kB
Committed_AS:    85196 kB
VmallocTotal: 34359738367 kB
VmallocUsed:      1740 kB
VmallocChunk: 34359736619 kB
HugePages_Total:     0
HugePages_Free:      0
HugePages_Rsvd:      0
HugePages_Surp:      0
Hugepagesize:     2048 kB
DirectMap4k:      2032
DirectMap2M:  18446744073709551613
DirectMap1G:         0

[root@builder ~]# cat /proc/vmstat 
nr_free_pages 68035
nr_inactive 1479
nr_active 8137
nr_anon_pages 5851
nr_mapped 2162
nr_file_pages 3777
nr_dirty 132
nr_writeback 0
nr_slab_reclaimable 1354
nr_slab_unreclaimable 4440
nr_page_table_pages 831
nr_unstable 0
nr_bounce 0
nr_vmscan_write 324
nr_writeback_temp 0
numa_hit 18985527
numa_miss 0
numa_foreign 0
numa_interleave 44220
numa_local 18985527
numa_other 0
pgpgin 379025
pgpgout 820238
pswpin 16
pswpout 57
pgalloc_dma 295454
pgalloc_dma32 18721928
pgalloc_normal 0
pgalloc_movable 0
pgfree 19085491
pgactivate 60797
pgdeactivate 47199
pgfault 25624481
pgmajfault 2490
pgrefill_dma 8144
pgrefill_dma32 103508
pgrefill_normal 0
pgrefill_movable 0
pgsteal_dma 4503
pgsteal_dma32 179395
pgsteal_normal 0
pgsteal_movable 0
pgscan_kswapd_dma 4999
pgscan_kswapd_dma32 180546
pgscan_kswapd_normal 0
pgscan_kswapd_movable 0
pgscan_direct_dma 0
pgscan_direct_dma32 384
pgscan_direct_normal 0
pgscan_direct_movable 0
pginodesteal 0
slabs_scanned 153856
kswapd_steal 183628
kswapd_inodesteal 35303
pageoutrun 3794
allocstall 3
pgrotated 72
htlb_buddy_alloc_success 0
htlb_buddy_alloc_fail 0

[root@builder ~]# cat /proc/zoneinfo 
Node 0, zone      DMA
  pages free     2524
        min      12
        low      15
        high     18
        scanned  0 (a: 27 i: 24)
        spanned  4096
        present  2180
    nr_free_pages 2524
    nr_inactive  0
    nr_active    8
    nr_anon_pages 8
    nr_mapped    0
    nr_file_pages 0
    nr_dirty     0
    nr_writeback 0
    nr_slab_reclaimable 16
    nr_slab_unreclaimable 7
    nr_page_table_pages 15
    nr_unstable  0
    nr_bounce    0
    nr_vmscan_write 292
    nr_writeback_temp 0
    numa_hit     295370
    numa_miss    0
    numa_foreign 0
    numa_interleave 0
    numa_local   295370
    numa_other   0
        protection: (0, 489, 489, 489)
  pagesets
    cpu: 0
              count: 0
              high:  0
              batch: 1
  vm stats threshold: 2
  all_unreclaimable: 0
  prev_priority:     12
  start_pfn:         0
Node 0, zone    DMA32
  pages free     65515
        min      700
        low      875
        high     1050
        scanned  0 (a: 0 i: 0)
        spanned  126960
        present  125224
    nr_free_pages 65515
    nr_inactive  1482
    nr_active    8137
    nr_anon_pages 5843
    nr_mapped    2162
    nr_file_pages 3789
    nr_dirty     128
    nr_writeback 0
    nr_slab_reclaimable 1331
    nr_slab_unreclaimable 4429
    nr_page_table_pages 816
    nr_unstable  0
    nr_bounce    0
    nr_vmscan_write 32
    nr_writeback_temp 0
    numa_hit     18690260
    numa_miss    0
    numa_foreign 0
    numa_interleave 44220
    numa_local   18690260
    numa_other   0
        protection: (0, 0, 0, 0)
  pagesets
    cpu: 0
              count: 69
              high:  186
              batch: 31
  vm stats threshold: 6
  all_unreclaimable: 0
  prev_priority:     12
  start_pfn:         4096

[root@builder ~]# cat /proc/slabinfo 
slabinfo - version: 2.1
# name            <active_objs> <num_objs> <objsize> <objperslab> <pagesperslab> : tunables <limit> <batchcount> <sharedfactor> : slabdata <active_slabs> <num_slabs> <sharedavail>
rpc_inode_cache       39     39    832   39    8 : tunables    0    0    0 : slabdata      1      1      0
nf_conntrack_expect      0      0    240   34    2 : tunables    0    0    0 : slabdata      0      0      0
UDPv6                 34     34    960   34    8 : tunables    0    0    0 : slabdata      1      1      0
TCPv6                 18     18   1792   18    8 : tunables    0    0    0 : slabdata      1      1      0
kmalloc_dma-512       32     32    512   32    4 : tunables    0    0    0 : slabdata      1      1      0
dm_snap_pending_exception    144    144    112   36    1 : tunables    0    0    0 : slabdata      4      4      0
kcopyd_job             0      0    360   45    4 : tunables    0    0    0 : slabdata      0      0      0
dm_uevent              0      0   2608   12    8 : tunables    0    0    0 : slabdata      0      0      0
ext3_inode_cache     387   1554    768   42    8 : tunables    0    0    0 : slabdata     37     37      0
ext3_xattr            46     46     88   46    1 : tunables    0    0    0 : slabdata      1      1      0
journal_handle       170    170     24  170    1 : tunables    0    0    0 : slabdata      1      1      0
journal_head          42     42     96   42    1 : tunables    0    0    0 : slabdata      1      1      0
revoke_table         256    256     16  256    1 : tunables    0    0    0 : slabdata      1      1      0
revoke_record        128    128     32  128    1 : tunables    0    0    0 : slabdata      1      1      0
cfq_io_context        44     48    168   24    1 : tunables    0    0    0 : slabdata      2      2      0
mqueue_inode_cache     36     36    896   36    8 : tunables    0    0    0 : slabdata      1      1      0
isofs_inode_cache      0      0    616   26    4 : tunables    0    0    0 : slabdata      0      0      0
hugetlbfs_inode_cache     28     28    584   28    4 : tunables    0    0    0 : slabdata      1      1      0
dquot                  0      0    256   32    2 : tunables    0    0    0 : slabdata      0      0      0
inotify_event_cache    612    612     40  102    1 : tunables    0    0    0 : slabdata      6      6      0
fasync_cache      313798 313820     24  170    1 : tunables    0    0    0 : slabdata   1846   1846      0
shmem_inode_cache    735    738    792   41    8 : tunables    0    0    0 : slabdata     18     18      0
pid_namespace          0      0   2104   15    8 : tunables    0    0    0 : slabdata      0      0      0
nsproxy                0      0     56   73    1 : tunables    0    0    0 : slabdata      0      0      0
UNIX                  92     92    704   46    8 : tunables    0    0    0 : slabdata      2      2      0
xfrm_dst_cache         0      0    384   42    4 : tunables    0    0    0 : slabdata      0      0      0
ip_dst_cache          51     75    320   25    2 : tunables    0    0    0 : slabdata      3      3      0
TCP                   19     19   1664   19    8 : tunables    0    0    0 : slabdata      1      1      0
blkdev_integrity       0      0    120   34    1 : tunables    0    0    0 : slabdata      0      0      0
blkdev_queue          34     34   1824   17    8 : tunables    0    0    0 : slabdata      2      2      0
blkdev_requests       38     52    304   26    2 : tunables    0    0    0 : slabdata      2      2      0
sock_inode_cache     138    138    704   46    8 : tunables    0    0    0 : slabdata      3      3      0
file_lock_cache       42     42    192   42    2 : tunables    0    0    0 : slabdata      1      1      0
taskstats             26     26    312   26    2 : tunables    0    0    0 : slabdata      1      1      0
proc_inode_cache      90    162    600   27    4 : tunables    0    0    0 : slabdata      6      6      0
sigqueue              25     25    160   25    1 : tunables    0    0    0 : slabdata      1      1      0
radix_tree_node      623   2581    560   29    4 : tunables    0    0    0 : slabdata     89     89      0
bdev_cache            42     42    768   42    8 : tunables    0    0    0 : slabdata      1      1      0
sysfs_dir_cache     7084   7089     80   51    1 : tunables    0    0    0 : slabdata    139    139      0
inode_cache         1505   1708    568   28    4 : tunables    0    0    0 : slabdata     61     61      0
dentry              2555   4485    208   39    2 : tunables    0    0    0 : slabdata    115    115      0
avc_node            1735   2128     72   56    1 : tunables    0    0    0 : slabdata     38     38      0
buffer_head         1583   5472    112   36    1 : tunables    0    0    0 : slabdata    152    152      0
mm_struct             75     78    832   39    8 : tunables    0    0    0 : slabdata      2      2      0
vm_area_struct      2223   2438    176   46    2 : tunables    0    0    0 : slabdata     53     53      0
files_cache           78     84    768   42    8 : tunables    0    0    0 : slabdata      2      2      0
signal_cache         105    108    896   36    8 : tunables    0    0    0 : slabdata      3      3      0
sighand_cache         85     90   2112   15    8 : tunables    0    0    0 : slabdata      6      6      0
task_struct          141    145   5840    5    8 : tunables    0    0    0 : slabdata     29     29      0
anon_vma             741    768     32  128    1 : tunables    0    0    0 : slabdata      6      6      0
shared_policy_node     85     85     48   85    1 : tunables    0    0    0 : slabdata      1      1      0
numa_policy           56     60    136   30    1 : tunables    0    0    0 : slabdata      2      2      0
idr_layer_cache      269    270    536   30    4 : tunables    0    0    0 : slabdata      9      9      0
kmalloc-4096         247    248   4096    8    8 : tunables    0    0    0 : slabdata     31     31      0
kmalloc-2048         345    352   2048   16    8 : tunables    0    0    0 : slabdata     22     22      0
kmalloc-1024         396    416   1024   32    8 : tunables    0    0    0 : slabdata     13     13      0
kmalloc-512          297    320    512   32    4 : tunables    0    0    0 : slabdata     10     10      0
kmalloc-256          985    992    256   32    2 : tunables    0    0    0 : slabdata     31     31      0
kmalloc-128         1899   2016    128   32    1 : tunables    0    0    0 : slabdata     63     63      0
kmalloc-64          6795   9600     64   64    1 : tunables    0    0    0 : slabdata    150    150      0
kmalloc-32         20735  20736     32  128    1 : tunables    0    0    0 : slabdata    162    162      0
kmalloc-16        138778 139264     16  256    1 : tunables    0    0    0 : slabdata    544    544      0
kmalloc-8           8190   8192      8  512    1 : tunables    0    0    0 : slabdata     16     16      0
kmalloc-192          972   1050    192   42    2 : tunables    0    0    0 : slabdata     25     25      0
kmalloc-96          2815   2856     96   42    1 : tunables    0    0    0 : slabdata     68     68      0
kmem_cache_node        0      0     64   64    1 : tunables    0    0    0 : slabdata      0      0      0

-- 
     -- Pierre Ossman

  WARNING: This correspondence is being monitored by the
  Swedish government. Make sure your server uses encryption
  for SMTP traffic and consider using PGP for end-to-end
  encryption.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply

* [RFC][PATCH 1/4] memcg: add softlimit interface and utilitiy function.
From: KAMEZAWA Hiroyuki @ 2009-03-09  7:39 UTC (permalink / raw)
  To: KAMEZAWA Hiroyuki
  Cc: linux-mm@kvack.org, balbir@linux.vnet.ibm.com,
	nishimura@mxp.nes.nec.co.jp, kosaki.motohiro@jp.fujitsu.com
In-Reply-To: <20090309163745.5e3805ba.kamezawa.hiroyu@jp.fujitsu.com>

From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Adds an interface for defining sotlimit per memcg. (no handler in this patch.)
softlimit.priority and queue for softlimit is added in the next patch.


Changelog v1->v2:
 - For refactoring, divided a patch into 2 part and this patch just
   involves memory.softlimit interface.
 - Removed governor-detect routine, it was buggy in design.

Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
---
 mm/memcontrol.c |   62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 60 insertions(+), 2 deletions(-)

Index: develop/mm/memcontrol.c
===================================================================
--- develop.orig/mm/memcontrol.c
+++ develop/mm/memcontrol.c
@@ -175,7 +175,10 @@ struct mem_cgroup {
 	atomic_t	refcnt;
 
 	unsigned int	swappiness;
-
+	/*
+	 * Softlimit Params.
+	 */
+	u64		softlimit;
 	/*
 	 * statistics. This must be placed at the end of memcg.
 	 */
@@ -210,6 +213,8 @@ pcg_default_flags[NR_CHARGE_TYPE] = {
 #define MEMFILE_TYPE(val)	(((val) >> 16) & 0xffff)
 #define MEMFILE_ATTR(val)	((val) & 0xffff)
 
+#define _MEM_SOFTLIMIT		(0x10)
+
 static void mem_cgroup_get(struct mem_cgroup *mem);
 static void mem_cgroup_put(struct mem_cgroup *mem);
 static struct mem_cgroup *parent_mem_cgroup(struct mem_cgroup *mem);
@@ -1900,6 +1905,39 @@ int mem_cgroup_force_empty_write(struct 
 	return mem_cgroup_force_empty(mem_cgroup_from_cont(cont), true);
 }
 
+/*
+ * Softlimit Handling.
+ */
+
+/*
+ * A group under hierarchy has to check all ancestors.
+ * css's refcnt of "mem" should be in caller.
+ */
+static bool mem_cgroup_hit_softlimit(struct mem_cgroup *mem, void *data)
+{
+	struct mem_cgroup *tmp = mem;
+	struct cgroup *cg;
+	u64 usage;
+
+	do {
+		usage = res_counter_read_u64(&tmp->res, RES_USAGE);
+		if (tmp->res.usage > tmp->softlimit)
+			return true;
+		cg = tmp->css.cgroup;
+		if (!cg->parent)
+			break;
+		tmp = mem_cgroup_from_cont(cg);
+	} while (!tmp->use_hierarchy);
+
+	return false;
+}
+
+static int mem_cgroup_resize_softlimit(struct mem_cgroup *mem, u64 val)
+{
+	mem->softlimit = val;
+	return 0;
+}
+
 
 static u64 mem_cgroup_hierarchy_read(struct cgroup *cont, struct cftype *cft)
 {
@@ -1949,7 +1987,14 @@ static u64 mem_cgroup_read(struct cgroup
 	name = MEMFILE_ATTR(cft->private);
 	switch (type) {
 	case _MEM:
-		val = res_counter_read_u64(&mem->res, name);
+		switch (name) {
+		case _MEM_SOFTLIMIT:
+			val = mem->softlimit;
+			break;
+		default:
+			val = res_counter_read_u64(&mem->res, name);
+			break;
+		}
 		break;
 	case _MEMSWAP:
 		if (do_swap_account)
@@ -1986,6 +2031,12 @@ static int mem_cgroup_write(struct cgrou
 		else
 			ret = mem_cgroup_resize_memsw_limit(memcg, val);
 		break;
+	case _MEM_SOFTLIMIT:
+		ret = res_counter_memparse_write_strategy(buffer, &val);
+		if (ret)
+			break;
+		ret = mem_cgroup_resize_softlimit(memcg, val);
+		break;
 	default:
 		ret = -EINVAL; /* should be BUG() ? */
 		break;
@@ -2235,6 +2286,12 @@ static struct cftype mem_cgroup_files[] 
 		.read_u64 = mem_cgroup_read,
 	},
 	{
+		.name = "softlimit_in_bytes",
+		.private = MEMFILE_PRIVATE(_MEM, _MEM_SOFTLIMIT),
+		.write_string = mem_cgroup_write,
+		.read_u64 = mem_cgroup_read,
+	},
+	{
 		.name = "failcnt",
 		.private = MEMFILE_PRIVATE(_MEM, RES_FAILCNT),
 		.trigger = mem_cgroup_reset,
@@ -2460,6 +2517,7 @@ mem_cgroup_create(struct cgroup_subsys *
 	}
 	mem->last_scanned_child = 0;
 	spin_lock_init(&mem->reclaim_param_lock);
+	mem->softlimit = ULLONG_MAX;
 
 	if (parent)
 		mem->swappiness = get_swappiness(parent);

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply

* [RFC][PATCH] memcg: softlimit (Another one) v3
From: KAMEZAWA Hiroyuki @ 2009-03-09  7:37 UTC (permalink / raw)
  To: linux-mm@kvack.org
  Cc: balbir@linux.vnet.ibm.com, nishimura@mxp.nes.nec.co.jp,
	kosaki.motohiro@jp.fujitsu.com

Still RFC but maybe much better than v2.
(Reduced CC:s)

This patch implemetns softlimit for memcg.
Totally re-designed from v2.

[1/4] patch for softlimit_in_bytes.
[2/4] patch for softlimit_priority and victim scheduler.
[3/4] hooks to kswapd
[4/4] Documentation

Softlimit works when kswapd() runs and select victim cgroup to be reclaimed.

Details of calculation of parameters are not fixed yet but this version will
not be very bad. This patch uses static-priority-round-robin scheduling.
If you have better idea for implemnting dynamic-priority one, it's welcome.

I consider following usage in this patch.

Assume  softlimit supports priority 0...8 (0 is the lowest, 8 is the highest)
Example)
   /group_A/      softlimit=1G, priority=8
           /01    priority=0
           /02    prinrity=1

kswapd() will reclaim memory from 01->02->group_A if cgroup contains memory
in zone.

Thanks,
-Kame


--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply

* Re: [RFC PATCH 00/19] Cleanup and optimise the page allocator V2
From: Lin Ming @ 2009-03-09  7:31 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Zhang, Yanmin, Nick Piggin, Mel Gorman, Pekka Enberg,
	Linux Memory Management List, Rik van Riel, KOSAKI Motohiro,
	Christoph Lameter, Johannes Weiner, Linux Kernel Mailing List,
	Peter Zijlstra
In-Reply-To: <20090306093918.GA20698@elte.hu>

On Fri, 2009-03-06 at 17:39 +0800, Ingo Molnar wrote:
> * Lin Ming <ming.m.lin@intel.com> wrote:
> 
> > Thanks, I have used "perfstat -s" to collect cache misses 
> > data.
> > 
> > 2.6.29-rc7-tip: tip/perfcounters/core (b5e8acf)
> > 2.6.29-rc7-tip-mg2: v2 patches applied to tip/perfcounters/core
> > 
> > I collected 5 times netperf UDP-U-4k data with and without 
> > mg-v2 patches applied to tip/perfcounters/core on a 4p 
> > quad-core tigerton machine, as below "value" means UDP-U-4k 
> > test result.
> > 
> > 2.6.29-rc7-tip
> > ---------------
> > value           cache misses    CPU migrations  cachemisses/migrations
> > 5329.71          391094656       1710            228710
> > 5641.59          239552767       2138            112045
> > 5580.87          132474745       2172            60992
> > 5547.19          86911457        2099            41406
> > 5626.38          196751217       2050            95976
> > 
> > 2.6.29-rc7-tip-mg2
> > -------------------
> > value           cache misses    CPU migrations  cachemisses/migrations
> > 4749.80          649929463       1132            574142
> > 4327.06          484100170       1252            386661
> > 4649.51          374201508       1489            251310
> > 5655.82          405511551       1848            219432
> > 5571.58          90222256        2159            41788
> > 
> > Lin Ming
> 
> Hm, these numbers look really interesting and give us insight 
> into this workload. The workload is fluctuating but by measuring 
> 3 metrics at once instead of just one we see the following 
> patterns:
> 
>  - Less CPU migrations means more cache misses and less 
>    performance.
> 
> The lowest-score runs had the lowest CPU migrations count, 
> coupled with a high amount of cachemisses.
> 
> This _probably_ means that in this workload migrations are 
> desired: the sooner two related tasks migrate to the same CPU 
> the better. If they stay separate (migration count is low) then 
> they interact with each other from different CPUs, creating a 
> lot of cachemisses and reducing performance.
> 
> You can reduce the migration barrier of the system by enabling 
> CONFIG_SCHED_DEBUG=y and setting sched_migration_cost to zero:
> 
>    echo 0 > /proc/sys/kernel/sched_migration_cost
> 
> This will hurt other workloads - but if this improves the 
> numbers then it proves that what this particular workload wants 
> is easy migrations.

Again, I don't bind client/server to different cpus.
./netserver
./netperf -t UDP_STREAM -l 60 -H 127.0.0.1  -- -P 15888,12384 -s 32768 -S 32768 -m 4096

2.6.29-rc7-tip-mg2
-------------------
echo 0 > /proc/sys/kernel/sched_migration_cost
value           cache misses    CPU migrations  cachemisses/migrations
2867.62          880055866       117             7521845
2920.08          884482955       122             7249860
2903.16          905450628       127             7129532
2930.94          877616337       104             8438618
5224.02          1428643167      133             10741677

if sysctl_sched_migration_cost is set to zero,
sender/receiver will have less chance to do sync wakeups. (less migrations)

wake_affine (...) {
	...
	if (sync && (curr->se.avg_overlap > sysctl_sched_migration_cost ||
                        p->se.avg_overlap > sysctl_sched_migration_cost))
                sync = 0;
	...
}

echo -1 to sched_migration_cost can improve the numbers. (more migrations)

echo -1 > /proc/sys/kernel/sched_migration_cost
value           cache misses    CPU migrations  cachemisses/migrations
5524.52          97137973        2331            41672
5454.54          92589648        2542            36423
5458.63          96943477        3968            24431
5524.40          89298489        2574            34692
5493.64          87080343        2490            34972

> 
> Now the question is, why does the mg2 patchset reduce the number 
> of migrations? It might not be an inherent property of the mg2 
> patches: maybe just unlucky timings push the workload across 
> sched_migration_cost.
> 
> Setting sched_migration_cost to either zero or to a very high 
> value and repeating the test will eliminate this source of noise 
> and will tell us about other properties of the mg2 patchset.
> 
> There might be other effects i'm missing. For example what kind 
> of UDP transport is used - localhost networking? That means that 

Yes, localhost networking.

Lin Ming

> sender and receiver really wants to be coupled strongly and what 
> controls this workload is whether such a 'pair' of tasks can 
> properly migrate to the same CPU.
> 
> 	Ingo

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply

* Re: [RFC PATCH 00/19] Cleanup and optimise the page allocator V2
From: Lin Ming @ 2009-03-09  7:03 UTC (permalink / raw)
  To: Mel Gorman
  Cc: Ingo Molnar, Zhang, Yanmin, Nick Piggin, Pekka Enberg,
	Linux Memory Management List, Rik van Riel, KOSAKI Motohiro,
	Christoph Lameter, Johannes Weiner, Linux Kernel Mailing List,
	Peter Zijlstra
In-Reply-To: <1236328388.11608.35.camel@minggr.sh.intel.com>

On Fri, 2009-03-06 at 16:33 +0800, Lin Ming wrote:
> On Thu, 2009-03-05 at 18:34 +0800, Ingo Molnar wrote:
> > * Zhang, Yanmin <yanmin_zhang@linux.intel.com> wrote:
> > 
> > > On Wed, 2009-03-04 at 10:07 +0100, Nick Piggin wrote:
> > > > On Wed, Mar 04, 2009 at 10:05:07AM +0800, Zhang, Yanmin wrote:
> > > > > On Mon, 2009-03-02 at 11:21 +0000, Mel Gorman wrote:
> > > > > > (Added Ingo as a second scheduler guy as there are queries on tg_shares_up)
> > > > > > 
> > > > > > On Fri, Feb 27, 2009 at 04:44:43PM +0800, Lin Ming wrote:
> > > > > > > On Thu, 2009-02-26 at 19:22 +0800, Mel Gorman wrote: 
> > > > > > > > In that case, Lin, could I also get the profiles for UDP-U-4K please so I
> > > > > > > > can see how time is being spent and why it might have gotten worse?
> > > > > > > 
> > > > > > > I have done the profiling (oltp and UDP-U-4K) with and without your v2
> > > > > > > patches applied to 2.6.29-rc6.
> > > > > > > I also enabled CONFIG_DEBUG_INFO so you can translate address to source
> > > > > > > line with addr2line.
> > > > > > > 
> > > > > > > You can download the oprofile data and vmlinux from below link,
> > > > > > > http://www.filefactory.com/file/af2330b/
> > > > > > > 
> > > > > > 
> > > > > > Perfect, thanks a lot for profiling this. It is a big help in figuring out
> > > > > > how the allocator is actually being used for your workloads.
> > > > > > 
> > > > > > The OLTP results had the following things to say about the page allocator.
> > > > > In case we might mislead you guys, I want to clarify that here OLTP is
> > > > > sysbench (oltp)+mysql, not the famous OLTP which needs lots of disks and big
> > > > > memory.
> > > > > 
> > > > > Ma Chinang, another Intel guy, does work on the famous OLTP running.
> > > > 
> > > > OK, so my comments WRT cache sensitivity probably don't apply here,
> > > > but probably cache hotness of pages coming out of the allocator
> > > > might still be important for this one.
> > > Yes. We need check it.
> > > 
> > > > 
> > > > How many runs are you doing of these tests?
> > > We start sysbench with different thread number, for example, 8 12 16 32 64 128 for
> > > 4*4 tigerton, then get an average value in case there might be a scalability issue.
> > > 
> > > As for this sysbench oltp testing, we reran it for 7 times on 
> > > tigerton this week and found the results have fluctuations. 
> > > Now we could only say there is a trend that the result with 
> > > the pathces is a little worse than the one without the 
> > > patches.
> > 
> > Could you try "perfstat -s" perhaps and see whether any other of 
> > the metrics outside of tx/sec has less natural noise?
> 
> Thanks, I have used "perfstat -s" to collect cache misses data.
> 
> 2.6.29-rc7-tip: tip/perfcounters/core (b5e8acf)
> 2.6.29-rc7-tip-mg2: v2 patches applied to tip/perfcounters/core
> 
> I collected 5 times netperf UDP-U-4k data with and without mg-v2 patches
> applied to tip/perfcounters/core on a 4p quad-core tigerton machine, as
> below
> "value" means UDP-U-4k test result.

I forgot to mention that below are the results without client/server
bind to different cpus.

./netserver
./netperf -t UDP_STREAM -l 60 -H 127.0.0.1  -- -P 15888,12384 -s 32768 -S 32768 -m 4096

> 
> 2.6.29-rc7-tip
> ---------------
> value           cache misses    CPU migrations  cachemisses/migrations
> 5329.71          391094656       1710            228710
> 5641.59          239552767       2138            112045
> 5580.87          132474745       2172            60992
> 5547.19          86911457        2099            41406
> 5626.38          196751217       2050            95976
> 
> 2.6.29-rc7-tip-mg2
> -------------------
> value           cache misses    CPU migrations  cachemisses/migrations
> 4749.80          649929463       1132            574142
> 4327.06          484100170       1252            386661
> 4649.51          374201508       1489            251310
> 5655.82          405511551       1848            219432
> 5571.58          90222256        2159            41788
> 
> Lin Ming
> 
> > 
> > I think a more invariant number might be the ratio of "LLC 
> > cachemisses" divided by "CPU migrations".
> > 
> > The fluctuation in tx/sec comes from threads bouncing - but you 
> > can normalize that away by using the cachemisses/migrations 
> > ration.
> > 
> > Perhaps. It's definitely a difficult thing to measure.
> > 
> > 	Ingo

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply

* Re: [PATCH -v2] memdup_user(): introduce
From: Andrew Morton @ 2009-03-09  3:45 UTC (permalink / raw)
  To: Li Zefan
  Cc: Arjan van de Ven, adobriyan, linux-kernel, linux-mm, Karsten Keil,
	Samuel Ortiz, Chris Mason, Steven Whitehouse, Trond Myklebust
In-Reply-To: <49B48D4A.6000207@cn.fujitsu.com>

On Mon, 09 Mar 2009 11:30:18 +0800 Li Zefan <lizf@cn.fujitsu.com> wrote:

> Andrew Morton wrote:
> > On Mon, 09 Mar 2009 10:22:08 +0800 Li Zefan <lizf@cn.fujitsu.com> wrote:
> > 
> >>>>> +EXPORT_SYMBOL(memdup_user);
> >>> Hi,
> >>>
> >>> I like the general idea of this a lot; it will make things much less
> >>> error prone (and we can add some sanity checks on "len" to catch the
> >>> standard security holes around copy_from_user usage). I'd even also
> >>> want a memdup_array() like thing in the style of calloc().
> >>>
> >>> However, I have two questions/suggestions for improvement:
> >>>
> >>> I would like to question the use of the gfp argument here;
> >>> copy_from_user sleeps, so you can't use GFP_ATOMIC anyway.
> >>> You can't use GFP_NOFS etc, because the pagefault path will happily do
> >>> things that are equivalent, if not identical, to GFP_KERNEL.
> >>>
> >>> So the only value you can pass in correctly, as far as I can see, is
> >>> GFP_KERNEL. Am I wrong?
> >>>
> >> Right! I just dug and found a few kmalloc(GFP_ATOMIC/GFP_NOFS)+copy_from_user(),
> >> so we have one more reason to use this memdup_user().
> > 
> > gack, those callsites are probably buggy.  Where are they?
> > 
> 
> Yes, either buggy or should use GFP_KERNEL.
> 
> All are in -mm only, except the first one:
> 
> drivers/isdn/i4l/isdn_common.c:
> 	struct sk_buff *skb = alloc_skb(hl + len, GFP_ATOMIC);
> 	...
> 	if (copy_from_user(skb_put(skb, len), buf, len)) {

Bug.  Should be GFP_KERNEL, or copy_from_user() is incorrect in this
context.

> 
> net/irda/af_irda.c:
> 	ias_opt = kmalloc(sizeof(struct irda_ias_set), GFP_ATOMIC);
> 	...
> 	if (copy_from_user(ias_opt, optval, optlen)) {

Bug.  Should be GFP_KERNEL, or copy_from_user() is incorrect in this
context.

> 
> fs/btrfs/ioctl.c:
> 	vol_args = kmalloc(sizeof(*vol_args), GFP_NOFS);
> 	...
> 	if (copy_from_user(vol_args, arg, sizeof(*vol_args))) {

Bug.  Should be GFP_KERNEL, or copy_from_user() is incorrect in this
context.

> > fs/ocfs2/dlm/dlmfs.c:
> 	lvb_buf = kmalloc(writelen, GFP_NOFS);
> 	...
> 	bytes_left = copy_from_user(lvb_buf, buf, writelen);

Bug.  Should be GFP_KERNEL, or copy_from_user() is incorrect in this
context.

> 
> net/sunrpc/auth_gss/auth_gss.c:
> 	buf = kmalloc(mlen, GFP_NOFS);
> 	...
> 	if (copy_from_user(buf, src, mlen))

Bug.  Should be GFP_KERNEL, or copy_from_user() is incorrect in this
context.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply

* Re: [PATCH -v2] memdup_user(): introduce
From: Li Zefan @ 2009-03-09  3:30 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Arjan van de Ven, adobriyan, linux-kernel, linux-mm
In-Reply-To: <20090308200033.f5282b5b.akpm@linux-foundation.org>

Andrew Morton wrote:
> On Mon, 09 Mar 2009 10:22:08 +0800 Li Zefan <lizf@cn.fujitsu.com> wrote:
> 
>>>>> +EXPORT_SYMBOL(memdup_user);
>>> Hi,
>>>
>>> I like the general idea of this a lot; it will make things much less
>>> error prone (and we can add some sanity checks on "len" to catch the
>>> standard security holes around copy_from_user usage). I'd even also
>>> want a memdup_array() like thing in the style of calloc().
>>>
>>> However, I have two questions/suggestions for improvement:
>>>
>>> I would like to question the use of the gfp argument here;
>>> copy_from_user sleeps, so you can't use GFP_ATOMIC anyway.
>>> You can't use GFP_NOFS etc, because the pagefault path will happily do
>>> things that are equivalent, if not identical, to GFP_KERNEL.
>>>
>>> So the only value you can pass in correctly, as far as I can see, is
>>> GFP_KERNEL. Am I wrong?
>>>
>> Right! I just dug and found a few kmalloc(GFP_ATOMIC/GFP_NOFS)+copy_from_user(),
>> so we have one more reason to use this memdup_user().
> 
> gack, those callsites are probably buggy.  Where are they?
> 

Yes, either buggy or should use GFP_KERNEL.

All are in -mm only, except the first one:

drivers/isdn/i4l/isdn_common.c:
	struct sk_buff *skb = alloc_skb(hl + len, GFP_ATOMIC);
	...
	if (copy_from_user(skb_put(skb, len), buf, len)) {


net/irda/af_irda.c:
	ias_opt = kmalloc(sizeof(struct irda_ias_set), GFP_ATOMIC);
	...
	if (copy_from_user(ias_opt, optval, optlen)) {


fs/btrfs/ioctl.c:
	vol_args = kmalloc(sizeof(*vol_args), GFP_NOFS);
	...
	if (copy_from_user(vol_args, arg, sizeof(*vol_args))) {


fs/ocfs2/dlm/dlmfs.c:
	lvb_buf = kmalloc(writelen, GFP_NOFS);
	...
	bytes_left = copy_from_user(lvb_buf, buf, writelen);


net/sunrpc/auth_gss/auth_gss.c:
	buf = kmalloc(mlen, GFP_NOFS);
	...
	if (copy_from_user(buf, src, mlen))

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply

* Re: [PATCH -v2] memdup_user(): introduce
From: Andrew Morton @ 2009-03-09  3:00 UTC (permalink / raw)
  To: Li Zefan; +Cc: Arjan van de Ven, adobriyan, linux-kernel, linux-mm
In-Reply-To: <49B47D50.5000608@cn.fujitsu.com>

On Mon, 09 Mar 2009 10:22:08 +0800 Li Zefan <lizf@cn.fujitsu.com> wrote:

> >>> +EXPORT_SYMBOL(memdup_user);
> > 
> > Hi,
> > 
> > I like the general idea of this a lot; it will make things much less
> > error prone (and we can add some sanity checks on "len" to catch the
> > standard security holes around copy_from_user usage). I'd even also
> > want a memdup_array() like thing in the style of calloc().
> > 
> > However, I have two questions/suggestions for improvement:
> > 
> > I would like to question the use of the gfp argument here;
> > copy_from_user sleeps, so you can't use GFP_ATOMIC anyway.
> > You can't use GFP_NOFS etc, because the pagefault path will happily do
> > things that are equivalent, if not identical, to GFP_KERNEL.
> > 
> > So the only value you can pass in correctly, as far as I can see, is
> > GFP_KERNEL. Am I wrong?
> > 
> 
> Right! I just dug and found a few kmalloc(GFP_ATOMIC/GFP_NOFS)+copy_from_user(),
> so we have one more reason to use this memdup_user().

gack, those callsites are probably buggy.  Where are they?

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply

* Re: [PATCH -v2] memdup_user(): introduce
From: Li Zefan @ 2009-03-09  2:22 UTC (permalink / raw)
  To: Arjan van de Ven; +Cc: Andrew Morton, adobriyan, linux-kernel, linux-mm
In-Reply-To: <20090307084805.7cf3d574@infradead.org>

>>> +EXPORT_SYMBOL(memdup_user);
> 
> Hi,
> 
> I like the general idea of this a lot; it will make things much less
> error prone (and we can add some sanity checks on "len" to catch the
> standard security holes around copy_from_user usage). I'd even also
> want a memdup_array() like thing in the style of calloc().
> 
> However, I have two questions/suggestions for improvement:
> 
> I would like to question the use of the gfp argument here;
> copy_from_user sleeps, so you can't use GFP_ATOMIC anyway.
> You can't use GFP_NOFS etc, because the pagefault path will happily do
> things that are equivalent, if not identical, to GFP_KERNEL.
> 
> So the only value you can pass in correctly, as far as I can see, is
> GFP_KERNEL. Am I wrong?
> 

Right! I just dug and found a few kmalloc(GFP_ATOMIC/GFP_NOFS)+copy_from_user(),
so we have one more reason to use this memdup_user().

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply

* Re: [RFC PATCH 00/19] Cleanup and optimise the page allocator V2
From: Zhang, Yanmin @ 2009-03-09  1:50 UTC (permalink / raw)
  To: Mel Gorman
  Cc: Ingo Molnar, Lin Ming, Nick Piggin, Pekka Enberg,
	Linux Memory Management List, Rik van Riel, KOSAKI Motohiro,
	Christoph Lameter, Johannes Weiner, Linux Kernel Mailing List,
	Peter Zijlstra
In-Reply-To: <20090306130317.GF9461@csn.ul.ie>

On Fri, 2009-03-06 at 13:03 +0000, Mel Gorman wrote:
> On Fri, Mar 06, 2009 at 10:39:18AM +0100, Ingo Molnar wrote:
> > 
> > * Lin Ming <ming.m.lin@intel.com> wrote:
> > 
> > > Thanks, I have used "perfstat -s" to collect cache misses 
> > > data.
> > > 
> > > 2.6.29-rc7-tip: tip/perfcounters/core (b5e8acf)
> > > 2.6.29-rc7-tip-mg2: v2 patches applied to tip/perfcounters/core
> > > 
> > > I collected 5 times netperf UDP-U-4k data with and without 
> > > mg-v2 patches applied to tip/perfcounters/core on a 4p 
> > > quad-core tigerton machine, as below "value" means UDP-U-4k 
> > > test result.
> > > 
> > > 2.6.29-rc7-tip
> > > ---------------
> > > value           cache misses    CPU migrations  cachemisses/migrations
> > > 5329.71          391094656       1710            228710
> > > 5641.59          239552767       2138            112045
> > > 5580.87          132474745       2172            60992
> > > 5547.19          86911457        2099            41406
> > > 5626.38          196751217       2050            95976
> > > 
> > > 2.6.29-rc7-tip-mg2
> > > -------------------
> > > value           cache misses    CPU migrations  cachemisses/migrations
> > > 4749.80          649929463       1132            574142
> > > 4327.06          484100170       1252            386661
> > > 4649.51          374201508       1489            251310
> > > 5655.82          405511551       1848            219432
> > > 5571.58          90222256        2159            41788
> > > 
> > > Lin Ming
> > 
> > Hm, these numbers look really interesting and give us insight 
> > into this workload. The workload is fluctuating but by measuring 
> > 3 metrics at once instead of just one we see the following 
> > patterns:
> > 
> >  - Less CPU migrations means more cache misses and less 
> >    performance.
> > 
> 
> I also happen to know that V2 was cache unfriendly in a number of
> respects. I've been trying to address it in V3 but still the netperf
> performance in general is being very tricky even though profiles tell me
> the page allocator is lighter and incurring fewer cache misses.
> 
> (aside, thanks for saying how you were running netperf. It allowed me to
> take shortcuts writing the automation as I knew what parameters to use)
The script chooses to bind client/server to cores of different physical cpu.
You could also try:
1) no-binding;
2) Start CPU_NUM clients;

> 
> Here is the results from one x86-64 machine running an unreleased version
> of the patchset
> 
> Netperf UDP_STREAM Comparison
> ----------------------------
>                                     clean      opt-palloc   diff
> UDP_STREAM-64                       68.63           73.15    6.18%
> UDP_STREAM-128                     149.77          144.33   -3.77%
> UDP_STREAM-256                     264.06          280.18    5.75%
> UDP_STREAM-1024                   1037.81         1058.61    1.96%
> UDP_STREAM-2048                   1790.33         1906.53    6.09%
> UDP_STREAM-3312                   2671.34         2744.38    2.66%
> UDP_STREAM-4096                   2722.92         2910.65    6.45%
> UDP_STREAM-8192                   4280.14         4314.00    0.78%
> UDP_STREAM-16384                  5384.13         5606.83    3.97%
> Netperf TCP_STREAM Comparison
> ----------------------------
>                                     clean      opt-palloc   diff
> TCP_STREAM-64                      180.09          204.59   11.98%
> TCP_STREAM-128                     297.45          812.22   63.38%
> TCP_STREAM-256                    1315.20         1432.74    8.20%
> TCP_STREAM-1024                   2544.73         3043.22   16.38%
> TCP_STREAM-2048                   4157.76         4351.28    4.45%
> TCP_STREAM-3312                   4254.53         4790.56   11.19%
> TCP_STREAM-4096                   4773.22         4932.61    3.23%
> TCP_STREAM-8192                   4937.03         5453.58    9.47%
> TCP_STREAM-16384                  6003.46         6183.74    2.92%
> 
> WOooo, more or less awesome. Then here are the results of a second x86-64
> machine
> 
> Netperf UDP_STREAM Comparison
> ----------------------------
>                                     clean      opt-palloc   diff
> UDP_STREAM-64                      106.50          106.98    0.45%
> UDP_STREAM-128                     216.39          212.48   -1.84%
> UDP_STREAM-256                     425.29          419.12   -1.47%
> UDP_STREAM-1024                   1433.21         1449.20    1.10%
> UDP_STREAM-2048                   2569.67         2503.73   -2.63%
> UDP_STREAM-3312                   3685.30         3603.15   -2.28%
> UDP_STREAM-4096                   4019.05         4252.53    5.49%
> UDP_STREAM-8192                   6278.44         6315.58    0.59%
> UDP_STREAM-16384                  7389.78         7162.91   -3.17%
> Netperf TCP_STREAM Comparison
> ----------------------------
>                                     clean      opt-palloc   diff
> TCP_STREAM-64                      694.90          674.47   -3.03%
> TCP_STREAM-128                    1160.13         1159.26   -0.08%
> TCP_STREAM-256                    2016.35         2018.03    0.08%
> TCP_STREAM-1024                   4619.41         4562.86   -1.24%
> TCP_STREAM-2048                   5001.08         5096.51    1.87%
> TCP_STREAM-3312                   5235.22         5276.18    0.78%
> TCP_STREAM-4096                   5832.15         5844.42    0.21%
> TCP_STREAM-8192                   6247.71         6287.93    0.64%
> TCP_STREAM-16384                  7987.68         7896.17   -1.16%
> 
> Much less awesome and the cause of much frowny face and contemplation as to
> whether I'd be much better off hitting the bar for a tasty beverage or 10.
> 
> I'm trying to pin down why there are such large differences between machines
> but it's something with the machine themselves as the results between runs
> is fairly consistent. Annoyingly, the second machine showed good results
> for kernbench (allocator heavy), sysbench (not allocator heavy), was more
> or less the same for hackbench but regressed tbench and netperf even though
> the page allocator overhead was less. I'm doing something screwy with cache
> but don't know what it is yet.
> 
> netperf is being run on different CPUs and is possibly maximising the amount
> of cache bounces incurred by the page allocator as it splits and merges
> buddies. I'm experimenting with the idea of delaying bulk PCP frees but it's
> also possible the network layer is having trouble with cache line bounces when
> the workload is run over localhost and my modifications are changing timings.
Ingo's analysis is on the right track. Both netperf and tbench have dependency on
process scheduler. Perhaps V2 has some impact on scheduler?

> 
> > The lowest-score runs had the lowest CPU migrations count, 
> > coupled with a high amount of cachemisses.
> > 
> > This _probably_ means that in this workload migrations are 
> > desired: the sooner two related tasks migrate to the same CPU 
> > the better. If they stay separate (migration count is low) then 
> > they interact with each other from different CPUs, creating a 
> > lot of cachemisses and reducing performance.
> > 
> > You can reduce the migration barrier of the system by enabling 
> > CONFIG_SCHED_DEBUG=y and setting sched_migration_cost to zero:
> > 
> >    echo 0 > /proc/sys/kernel/sched_migration_cost
> > 
> > This will hurt other workloads - but if this improves the 
> > numbers then it proves that what this particular workload wants 
> > is easy migrations.
> > 
> > Now the question is, why does the mg2 patchset reduce the number 
> > of migrations? It might not be an inherent property of the mg2 
> > patches: maybe just unlucky timings push the workload across 
> > sched_migration_cost.
> > 
> > Setting sched_migration_cost to either zero or to a very high 
> > value and repeating the test will eliminate this source of noise 
> > and will tell us about other properties of the mg2 patchset.
> > 
> > There might be other effects i'm missing. For example what kind 
> > of UDP transport is used - localhost networking? That means that 
> > sender and receiver really wants to be coupled strongly and what 
> > controls this workload is whether such a 'pair' of tasks can 
> > properly migrate to the same CPU.


--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply

* Re: [Bug 12832] New: kernel leaks a lot of memory
From: Wu Fengguang @ 2009-03-09  1:37 UTC (permalink / raw)
  To: Pierre Ossman; +Cc: Andrew Morton, bugme-daemon, linux-mm
In-Reply-To: <20090307220055.6f79beb8@mjolnir.ossman.eu>

Hi Pierre,

On Sat, Mar 07, 2009 at 10:00:55PM +0100, Pierre Ossman wrote:
> On Sat, 7 Mar 2009 12:24:52 -0800
> Andrew Morton <akpm@linux-foundation.org> wrote:
> 
> > 
> > hm, not a lot to go on there.
> > 
> > We have quite a lot of instrumentation for memory consumption - were
> > you able to work out where it went by comparing /proc/meminfo,
> > /proc/slabinfo, `echo m > /proc/sysrq-trigger', etc?
> > 
> 
> The redhat entry contains all the info, and I've compared meminfo and
> slabinfo without finding anything even close to the chunks of lost
> memory.

The "free" pages in sysrq mem-info report should be equal to "MemFree"
in /proc/meminfo. So I'd expect meminfo numbers to be different in
.26/.27 as well.

Maybe the memory is taken by some user space program, so it would be
helpful to know the numbers in /proc/meminfo, /proc/vmstat and
/proc/zoneinfo.

> I've attached the sysrq memory stats from 2.6.26 and 2.6.27. The only
> difference though is in the reported free pages

The "free" entries in mem-info:

                     2.6.26     2.6.27
--------------------------------------
   free:             103730      62265 (pages)
  Node 0 DMA free:  10292kB     9448kB
  Node 0 DMA32 free:404628kB  239612kB

So there are 160MB less free pages in .27. Are you sure that initrd is
freed after booting?

Thanks,
Fengguang

> I'm not very familiar with all the instrumentation, so pointers are
> very welcome.
> 
> > Is the memory missing on initial boot up, or does it take some time for
> > the problem to become evident?
> > 
> 
> Initial boot as far as I can tell.
> 
> 
> Rgds
> -- 
>      -- Pierre Ossman
> 
>   WARNING: This correspondence is being monitored by the
>   Swedish government. Make sure your server uses encryption
>   for SMTP traffic and consider using PGP for end-to-end
>   encryption.

> Linux builder.drzeus.cx 2.6.26.6-79.fc9.x86_64 #1 SMP Fri Oct 17 14:20:33 EDT 2008 x86_64 x86_64 x86_64 GNU/Linux
> SysRq : Show Memory
> Mem-info:
> Node 0 DMA per-cpu:
> CPU    0: hi:    0, btch:   1 usd:   0
> Node 0 DMA32 per-cpu:
> CPU    0: hi:  186, btch:  31 usd: 115
> Active:8937 inactive:6285 dirty:48 writeback:0 unstable:0
>  free:103730 slab:5612 mapped:2148 pagetables:817 bounce:0
> Node 0 DMA free:10292kB min:48kB low:60kB high:72kB active:0kB inactive:0kB present:8908kB pages_scanned:0 all_unreclaimable? no
> lowmem_reserve[]: 0 489 489 489
> Node 0 DMA32 free:404628kB min:2804kB low:3504kB high:4204kB active:35748kB inactive:25140kB present:500896kB pages_scanned:0 all_unreclaimable? no
> lowmem_reserve[]: 0 0 0 0
> Node 0 DMA: 3*4kB 5*8kB 4*16kB 4*32kB 3*64kB 3*128kB 3*256kB 3*512kB 3*1024kB 2*2048kB 0*4096kB = 10292kB
> Node 0 DMA32: 3*4kB 5*8kB 2*16kB 2*32kB 2*64kB 1*128kB 3*256kB 2*512kB 3*1024kB 3*2048kB 96*4096kB = 404628kB
> 9730 total pagecache pages
> Swap cache: add 0, delete 0, find 0/0
> Free swap  = 524280kB
> Total swap = 524280kB
> 131056 pages of RAM
> 3772 reserved pages
> 7750 pages shared
> 0 pages swap cached
> 

> Linux builder.drzeus.cx 2.6.27.4-19.fc9.x86_64 #1 SMP Thu Oct 30 19:30:01 EDT 2008 x86_64 x86_64 x86_64 GNU/Linux
> SysRq : Show Memory
> Mem-Info:
> Node 0 DMA per-cpu:
> CPU    0: hi:    0, btch:   1 usd:   0
> Node 0 DMA32 per-cpu:
> CPU    0: hi:  186, btch:  31 usd:  86
> Active:8879 inactive:6265 dirty:8 writeback:0 unstable:0
>  free:62265 slab:5543 mapped:2154 pagetables:821 bounce:0
> Node 0 DMA free:9448kB min:40kB low:48kB high:60kB active:0kB inactive:0kB present:7804kB pages_scanned:0 all_unreclaimable? no
> lowmem_reserve[]: 0 489 489 489
> Node 0 DMA32 free:239612kB min:2808kB low:3508kB high:4212kB active:35516kB inactive:25060kB present:500896kB pages_scanned:0 all_unreclaimable? no
> lowmem_reserve[]: 0 0 0 0
> Node 0 DMA: 4*4kB 3*8kB 2*16kB 5*32kB 4*64kB 2*128kB 2*256kB 2*512kB 3*1024kB 2*2048kB 0*4096kB = 9448kB
> Node 0 DMA32: 1*4kB 7*8kB 6*16kB 1*32kB 1*64kB 4*128kB 3*256kB 3*512kB 1*1024kB 3*2048kB 56*4096kB = 239612kB
> 9692 total pagecache pages
> 0 pages in swap cache
> Swap cache stats: add 0, delete 0, find 0/0
> Free swap  = 524280kB
> Total swap = 524280kB
> 131056 pages RAM
> 4046 pages reserved
> 7770 pages shared
> 61196 pages non-shared
> 



--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply

* Re: [RFC][PATCH 3/3] memcg documenation soft limit (Yet Another One)
From: KAMEZAWA Hiroyuki @ 2009-03-08 23:45 UTC (permalink / raw)
  To: Randy Dunlap
  Cc: Balbir Singh, linux-mm, Sudhir Kumar, YAMAMOTO Takashi,
	Bharata B Rao, Paul Menage, lizf, linux-kernel, KOSAKI Motohiro,
	David Rientjes, Pavel Emelianov, Dhaval Giani, Rik van Riel,
	Andrew Morton
In-Reply-To: <49B153A3.8090906@oracle.com>

On Fri, 06 Mar 2009 08:47:31 -0800
Randy Dunlap <randy.dunlap@oracle.com> wrote:
> > +	  Allowed priority level is 3-0 and 3 is the lowest.
> 
> 	Not very user friendly...
> 
Ok, then, 0(lowest) - 8(highest) in the next version.

-Kame

> > +	  If 0, this cgroup will not be target of softlimit.
> > +
> > +  At memory shortage of the system (or local node/zone), softlimit helps
> > +  kswapd(), a global memory recalim kernel thread, and inform victim cgroup
> 
>                                reclaim                    informs
> 
> > +  to be shrinked to kswapd.
> > +
> > +  Victim selection logic:
> > +  The kernel searches from the lowest priroty(3) up to the highest(1).
> 
>                                          priority                     0 ?? (from above)
> 
> > +  If it find a cgroup witch has memory larger than softlimit, steal memory
> 
>            finds         which
> 
> > +  from it.
> > +  If multiple cgroups are on the same priority, each cgroup wil be a
> 
>                                                                will
> 
> > +  victim in turn.
> >  
> >  6. Hierarchy support
> 
> 
> -- 
> ~Randy
> 
> --
> To unsubscribe, send a message with 'unsubscribe linux-mm' in
> the body to majordomo@kvack.org.  For more info on Linux MM,
> see: http://www.linux-mm.org/ .
> Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
> 

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply

* Re: [RFC][PATCH 3/3] memcg documenation soft limit (Yet Another One)
From: KAMEZAWA Hiroyuki @ 2009-03-08 23:44 UTC (permalink / raw)
  To: Randy Dunlap
  Cc: Balbir Singh, linux-mm, Sudhir Kumar, YAMAMOTO Takashi,
	Bharata B Rao, Paul Menage, lizf, linux-kernel, KOSAKI Motohiro,
	David Rientjes, Pavel Emelianov, Dhaval Giani, Rik van Riel,
	Andrew Morton
In-Reply-To: <49B153A3.8090906@oracle.com>

On Fri, 06 Mar 2009 08:47:31 -0800
Randy Dunlap <randy.dunlap@oracle.com> wrote:

> KAMEZAWA Hiroyuki wrote:
> > From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>

Thank you. (and sorry
-Kame

> > 
> > Documentation for softlimit (3/3)
> > 
> > Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
> > ---
> >  Documentation/cgroups/memory.txt |   19 +++++++++++++++++++
> >  1 file changed, 19 insertions(+)
> > 
> > Index: mmotm-2.6.29-Mar3/Documentation/cgroups/memory.txt
> > ===================================================================
> > --- mmotm-2.6.29-Mar3.orig/Documentation/cgroups/memory.txt
> > +++ mmotm-2.6.29-Mar3/Documentation/cgroups/memory.txt
> > @@ -322,6 +322,25 @@ will be charged as a new owner of it.
> >    - a cgroup which uses hierarchy and it has child cgroup.
> >    - a cgroup which uses hierarchy and not the root of hierarchy.
> >  
> > +5.4 softlimit
> > +  Memory cgroup supports softlimit and has 2 params for control.
> 
>                                                 parameters
> 
> > +    - memory.softlimit_in_bytes
> > +	- softlimit to this cgroup.
>          softlimit for this cgroup
> 		(i.e., no beginning '-' and no ending '.')
> 
> 
> > +    - memory.softlimit_priority.
> > +	- priority of this cgroup at softlimit reclaim.
> 	 priority of this cgroup at softlimit reclaim
> 
> > +	  Allowed priority level is 3-0 and 3 is the lowest.
> 
> 	Not very user friendly...
> 
> > +	  If 0, this cgroup will not be target of softlimit.
> > +
> > +  At memory shortage of the system (or local node/zone), softlimit helps
> > +  kswapd(), a global memory recalim kernel thread, and inform victim cgroup
> 
>                                reclaim                    informs
> 
> > +  to be shrinked to kswapd.
> > +
> > +  Victim selection logic:
> > +  The kernel searches from the lowest priroty(3) up to the highest(1).
> 
>                                          priority                     0 ?? (from above)
> 
> > +  If it find a cgroup witch has memory larger than softlimit, steal memory
> 
>            finds         which
> 
> > +  from it.
> > +  If multiple cgroups are on the same priority, each cgroup wil be a
> 
>                                                                will
> 
> > +  victim in turn.
> >  
> >  6. Hierarchy support
> 
> 
> -- 
> ~Randy
> 

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply

* Re: [Bug 12832] New: kernel leaks a lot of memory
From: Pierre Ossman @ 2009-03-08 19:23 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Wu Fengguang, bugme-daemon, linux-mm
In-Reply-To: <20090308121143.0f8da203.akpm@linux-foundation.org>

[-- Attachment #1: Type: text/plain, Size: 1174 bytes --]

On Sun, 8 Mar 2009 12:11:43 -0700
Andrew Morton <akpm@linux-foundation.org> wrote:

> On Sun, 8 Mar 2009 16:54:03 +0100 Pierre Ossman <drzeus@drzeus.cx> wrote:
> 
> > I've gone through the dumps now, and still no meaningful difference.
> > All the big bootmem allocations are present in both kernels, and the
> > remaining memory in initcall is also the same for both (and doesn't
> > really decrease by any meaningful amount).
> > 
> > I also tried booting with init=/bin/sh, and the lost memory is present
> > even at that point.
> > 
> 
> So we know that the memory gets consumed after end-of-initcalls and
> before exec-of-init?  

This is a fedora machine, so initrd might be the provoking party here.
I haven't yet tried the adventure of booting without initrd. It's after
initcalls at least.

Right now I'm compiling 2.6.27-rc1 in an effort to bisect this, but if
you have something more worthwhile then shoot. :)

Rgds
-- 
     -- Pierre Ossman

  WARNING: This correspondence is being monitored by the
  Swedish government. Make sure your server uses encryption
  for SMTP traffic and consider using PGP for end-to-end
  encryption.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply

* Re: [Bug 12832] New: kernel leaks a lot of memory
From: Andrew Morton @ 2009-03-08 19:11 UTC (permalink / raw)
  To: Pierre Ossman; +Cc: Wu Fengguang, bugme-daemon, linux-mm
In-Reply-To: <20090308165403.4d85da50@mjolnir.ossman.eu>

On Sun, 8 Mar 2009 16:54:03 +0100 Pierre Ossman <drzeus@drzeus.cx> wrote:

> I've gone through the dumps now, and still no meaningful difference.
> All the big bootmem allocations are present in both kernels, and the
> remaining memory in initcall is also the same for both (and doesn't
> really decrease by any meaningful amount).
> 
> I also tried booting with init=/bin/sh, and the lost memory is present
> even at that point.
> 

So we know that the memory gets consumed after end-of-initcalls and
before exec-of-init?  

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply

* Re: [Bug 12832] New: kernel leaks a lot of memory
From: Pierre Ossman @ 2009-03-08 15:54 UTC (permalink / raw)
  To: Wu Fengguang, Andrew Morton; +Cc: bugme-daemon, linux-mm
In-Reply-To: <20090308123825.GA25172@localhost>

[-- Attachment #1: Type: text/plain, Size: 593 bytes --]

I've gone through the dumps now, and still no meaningful difference.
All the big bootmem allocations are present in both kernels, and the
remaining memory in initcall is also the same for both (and doesn't
really decrease by any meaningful amount).

I also tried booting with init=/bin/sh, and the lost memory is present
even at that point.

More ideas?

Rgds
-- 
     -- Pierre Ossman

  WARNING: This correspondence is being monitored by the
  Swedish government. Make sure your server uses encryption
  for SMTP traffic and consider using PGP for end-to-end
  encryption.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply

* Re: [Bug 12832] New: kernel leaks a lot of memory
From: Pierre Ossman @ 2009-03-08 14:26 UTC (permalink / raw)
  To: Wu Fengguang; +Cc: Andrew Morton, bugme-daemon, linux-mm
In-Reply-To: <20090308123825.GA25172@localhost>


[-- Attachment #1.1: Type: text/plain, Size: 702 bytes --]

On Sun, 8 Mar 2009 20:38:25 +0800
Wu Fengguang <fengguang.wu@intel.com> wrote:

> 
> Pierre, you can try the following fixed and combined patch and boot kernel
> with "initcall_debug bootmem_debug".
> 
> The boot hung was due to this chunk floated from reserve_bootmem_core() into
> free_bootmem_core()...
> 

Yeah, I found that as well. I'm getting a decent output now.

Included are the dmesg dumps of bootmem_debug. I'll get the initcall
stuff in a bit.

Rgds
-- 
     -- Pierre Ossman

  WARNING: This correspondence is being monitored by the
  Swedish government. Make sure your server uses encryption
  for SMTP traffic and consider using PGP for end-to-end
  encryption.

[-- Attachment #1.2: dmesg.26 --]
[-- Type: application/octet-stream, Size: 42141 bytes --]

Initializing cgroup subsys cpuset
Linux version 2.6.26.6 (root@builder.drzeus.cx) (gcc version 4.3.0 20080428 (Red Hat 4.3.0-8) (GCC) ) #7 SMP Sun Mar 8 12:52:00 CET 2009
Command line: ro root=/dev/VolGroup00/LogVol00 bootmem_debug
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
 BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000e8000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 000000001fff0000 (usable)
 BIOS-e820: 000000001fff0000 - 0000000020000000 (ACPI data)
 BIOS-e820: 00000000fffbd000 - 0000000100000000 (reserved)
PAT disabled. Not yet verified on this CPU type.
Entering add_active_range(0, 0, 159) 0 entries of 25600 used
Entering add_active_range(0, 256, 131056) 1 entries of 25600 used
max_pfn_mapped = 1048576
init_memory_mapping
DMI 2.4 present.
ACPI: RSDP 000FB9D0, 0014 (r0 QEMU  )
ACPI: RSDT 1FFF0000, 002C (r1 QEMU   QEMURSDT        1 QEMU        1)
ACPI: FACP 1FFF002C, 0074 (r1 QEMU   QEMUFACP        1 QEMU        1)
ACPI: DSDT 1FFF0100, 253C (r1   BXPC   BXDSDT        1 INTL 20061109)
ACPI: FACS 1FFF00C0, 0040
ACPI: APIC 1FFF2640, 00E0 (r1 QEMU   QEMUAPIC        1 QEMU        1)
No NUMA configuration found
Faking a node at 0000000000000000-000000001fff0000
Entering add_active_range(0, 0, 159) 0 entries of 25600 used
Entering add_active_range(0, 256, 131056) 1 entries of 25600 used
Bootmem setup node 0 0000000000000000-000000001fff0000
  NODE_DATA [000000000000b000 - 000000000001ffff]
  bootmap [0000000000020000 -  0000000000023fff] pages 4
  early res: 0 [0-fff] BIOS data page
  early res: 1 [6000-7fff] TRAMPOLINE
  early res: 2 [200000-84754b] TEXT DATA BSS
  early res: 3 [1fc98000-1ffdfd98] RAMDISK
  early res: 4 [9fc00-fffff] BIOS reserved
  early res: 5 [8000-afff] PGTABLE
bootmem::__alloc_bootmem_core size=4000 [4 pages] align=80 goal=0 limit=ffffffff
Pid: 0, comm: swapper Not tainted 2.6.26.6 #7

Call Trace:
 [<ffffffff814a5a8c>] __alloc_bootmem_core+0xa6/0x3b3
 [<ffffffff814a094a>] ? setup_node_bootmem+0x265/0x27d
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff814a5de5>] __alloc_bootmem_low+0x34/0x7c
 [<ffffffff81499434>] acpi_reserve_bootmem+0x31/0x5e
 [<ffffffff814952d6>] setup_arch+0x38a/0x56c
 [<ffffffff8148eb0b>] start_kernel+0x7d/0x35b
 [<ffffffff8148e451>] x86_64_start_kernel+0x256/0x265

bootmem::__alloc_bootmem_core start=1 end=5
bootmem::__alloc_bootmem_core size=1000 [1 pages] align=80 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.26.6 #7

Call Trace:
 [<ffffffff81297da1>] ? printk+0x67/0x6e
 [<ffffffff814a5a8c>] __alloc_bootmem_core+0xa6/0x3b3
 [<ffffffff8100d9a8>] ? show_trace+0x4e/0x57
 [<ffffffff814a5fa6>] __alloc_bootmem_node+0x25/0x40
 [<ffffffff81289da1>] sparse_index_alloc+0x55/0x70
 [<ffffffff814a7422>] memory_present+0x6d/0xde
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff814a662b>] sparse_memory_present_with_active_regions+0x5c/0x8f
 [<ffffffff814a04e7>] paging_init+0x3e/0x52
 [<ffffffff81495426>] setup_arch+0x4da/0x56c
 [<ffffffff8148eb0b>] start_kernel+0x7d/0x35b
 [<ffffffff8148e451>] x86_64_start_kernel+0x256/0x265

bootmem::__alloc_bootmem_core start=1000 end=1001
bootmem::__alloc_bootmem_core size=100000 [256 pages] align=80 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.26.6 #7

Call Trace:
 [<ffffffff814a5a8c>] __alloc_bootmem_core+0xa6/0x3b3
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff814a5f1d>] __alloc_bootmem_nopanic+0x31/0x5c
 [<ffffffff814a5f59>] __alloc_bootmem+0x11/0x39
 [<ffffffff814a71de>] sparse_init+0x35/0x18d
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff814a04ec>] paging_init+0x43/0x52
 [<ffffffff81495426>] setup_arch+0x4da/0x56c
 [<ffffffff8148eb0b>] start_kernel+0x7d/0x35b
 [<ffffffff8148e451>] x86_64_start_kernel+0x256/0x265

bootmem::__alloc_bootmem_core start=1001 end=1101
bootmem::__alloc_bootmem_core size=18 [1 pages] align=80 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.26.6 #7

Call Trace:
 [<ffffffff814a5d55>] ? __alloc_bootmem_core+0x36f/0x3b3
 [<ffffffff814a5a8c>] __alloc_bootmem_core+0xa6/0x3b3
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff814a5fa6>] __alloc_bootmem_node+0x25/0x40
 [<ffffffff814a724c>] sparse_init+0xa3/0x18d
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff814a04ec>] paging_init+0x43/0x52
 [<ffffffff81495426>] setup_arch+0x4da/0x56c
 [<ffffffff8148eb0b>] start_kernel+0x7d/0x35b
 [<ffffffff8148e451>] x86_64_start_kernel+0x256/0x265

bootmem::__alloc_bootmem_core start=1101 end=1102
bootmem::__alloc_bootmem_core size=18 [1 pages] align=80 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.26.6 #7

Call Trace:
 [<ffffffff814a5d55>] ? __alloc_bootmem_core+0x36f/0x3b3
 [<ffffffff814a5a8c>] __alloc_bootmem_core+0xa6/0x3b3
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff814a5fa6>] __alloc_bootmem_node+0x25/0x40
 [<ffffffff814a724c>] sparse_init+0xa3/0x18d
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff814a04ec>] paging_init+0x43/0x52
 [<ffffffff81495426>] setup_arch+0x4da/0x56c
 [<ffffffff8148eb0b>] start_kernel+0x7d/0x35b
 [<ffffffff8148e451>] x86_64_start_kernel+0x256/0x265

bootmem::__alloc_bootmem_core start=1102 end=1102
bootmem::__alloc_bootmem_core size=18 [1 pages] align=80 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.26.6 #7

Call Trace:
 [<ffffffff814a5d55>] ? __alloc_bootmem_core+0x36f/0x3b3
 [<ffffffff814a5a8c>] __alloc_bootmem_core+0xa6/0x3b3
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff814a5fa6>] __alloc_bootmem_node+0x25/0x40
 [<ffffffff814a724c>] sparse_init+0xa3/0x18d
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff814a04ec>] paging_init+0x43/0x52
 [<ffffffff81495426>] setup_arch+0x4da/0x56c
 [<ffffffff8148eb0b>] start_kernel+0x7d/0x35b
 [<ffffffff8148e451>] x86_64_start_kernel+0x256/0x265

bootmem::__alloc_bootmem_core start=1102 end=1102
bootmem::__alloc_bootmem_core size=18 [1 pages] align=80 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.26.6 #7

Call Trace:
 [<ffffffff814a5d55>] ? __alloc_bootmem_core+0x36f/0x3b3
 [<ffffffff814a5a8c>] __alloc_bootmem_core+0xa6/0x3b3
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff814a5fa6>] __alloc_bootmem_node+0x25/0x40
 [<ffffffff814a724c>] sparse_init+0xa3/0x18d
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff814a04ec>] paging_init+0x43/0x52
 [<ffffffff81495426>] setup_arch+0x4da/0x56c
 [<ffffffff8148eb0b>] start_kernel+0x7d/0x35b
 [<ffffffff8148e451>] x86_64_start_kernel+0x256/0x265

bootmem::__alloc_bootmem_core start=1102 end=1102
bootmem::__alloc_bootmem_core size=1000 [1 pages] align=1000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.26.6 #7

Call Trace:
 [<ffffffff814a5a8c>] __alloc_bootmem_core+0xa6/0x3b3
 [<ffffffff81297da1>] ? printk+0x67/0x6e
 [<ffffffff814a5fa6>] __alloc_bootmem_node+0x25/0x40
 [<ffffffff81289dd0>] __earlyonly_bootmem_alloc+0x14/0x16
 [<ffffffff814b8ee3>] vmemmap_alloc_block+0xed/0xf6
 [<ffffffff814b8f2a>] vmemmap_pgd_populate+0x3e/0x91
 [<ffffffff814a5d55>] ? __alloc_bootmem_core+0x36f/0x3b3
 [<ffffffff814b82aa>] vmemmap_populate+0x59/0x1d8
 [<ffffffff814b8d94>] sparse_mem_map_populate+0x2d/0x3f
 [<ffffffff814a717d>] sparse_early_mem_map_alloc+0x35/0x61
 [<ffffffff814a72c2>] sparse_init+0x119/0x18d
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff814a04ec>] paging_init+0x43/0x52
 [<ffffffff81495426>] setup_arch+0x4da/0x56c
 [<ffffffff8148eb0b>] start_kernel+0x7d/0x35b
 [<ffffffff8148e451>] x86_64_start_kernel+0x256/0x265

bootmem::__alloc_bootmem_core start=1102 end=1103
bootmem::__alloc_bootmem_core size=1000 [1 pages] align=1000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.26.6 #7

Call Trace:
 [<ffffffff81297bd8>] ? dump_stack+0x72/0x7b
 [<ffffffff814a5a8c>] __alloc_bootmem_core+0xa6/0x3b3
 [<ffffffff814a5d55>] ? __alloc_bootmem_core+0x36f/0x3b3
 [<ffffffff814a5fa6>] __alloc_bootmem_node+0x25/0x40
 [<ffffffff81289dd0>] __earlyonly_bootmem_alloc+0x14/0x16
 [<ffffffff814b8ee3>] vmemmap_alloc_block+0xed/0xf6
 [<ffffffff814b8fe4>] vmemmap_pud_populate+0x67/0xbe
 [<ffffffff814b8f73>] ? vmemmap_pgd_populate+0x87/0x91
 [<ffffffff814b82c1>] vmemmap_populate+0x70/0x1d8
 [<ffffffff814b8d94>] sparse_mem_map_populate+0x2d/0x3f
 [<ffffffff814a717d>] sparse_early_mem_map_alloc+0x35/0x61
 [<ffffffff814a72c2>] sparse_init+0x119/0x18d
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff814a04ec>] paging_init+0x43/0x52
 [<ffffffff81495426>] setup_arch+0x4da/0x56c
 [<ffffffff8148eb0b>] start_kernel+0x7d/0x35b
 [<ffffffff8148e451>] x86_64_start_kernel+0x256/0x265

bootmem::__alloc_bootmem_core start=1103 end=1104
bootmem::__alloc_bootmem_core size=200000 [512 pages] align=200000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.26.6 #7

Call Trace:
 [<ffffffff814a5a8c>] __alloc_bootmem_core+0xa6/0x3b3
 [<ffffffff814a5fa6>] __alloc_bootmem_node+0x25/0x40
 [<ffffffff81289dd0>] __earlyonly_bootmem_alloc+0x14/0x16
 [<ffffffff814b8ee3>] vmemmap_alloc_block+0xed/0xf6
 [<ffffffff814b8320>] vmemmap_populate+0xcf/0x1d8
 [<ffffffff814b8d94>] sparse_mem_map_populate+0x2d/0x3f
 [<ffffffff814a717d>] sparse_early_mem_map_alloc+0x35/0x61
 [<ffffffff814a72c2>] sparse_init+0x119/0x18d
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff814a04ec>] paging_init+0x43/0x52
 [<ffffffff81495426>] setup_arch+0x4da/0x56c
 [<ffffffff8148eb0b>] start_kernel+0x7d/0x35b
 [<ffffffff8148e451>] x86_64_start_kernel+0x256/0x265

bootmem::__alloc_bootmem_core start=1200 end=1400
bootmem::__alloc_bootmem_core size=200000 [512 pages] align=200000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.26.6 #7

Call Trace:
 [<ffffffff814a5a8c>] __alloc_bootmem_core+0xa6/0x3b3
 [<ffffffff814a5fa6>] __alloc_bootmem_node+0x25/0x40
 [<ffffffff81289dd0>] __earlyonly_bootmem_alloc+0x14/0x16
 [<ffffffff814b8ee3>] vmemmap_alloc_block+0xed/0xf6
 [<ffffffff814b8320>] vmemmap_populate+0xcf/0x1d8
 [<ffffffff814b8d94>] sparse_mem_map_populate+0x2d/0x3f
 [<ffffffff814a717d>] sparse_early_mem_map_alloc+0x35/0x61
 [<ffffffff814a72c2>] sparse_init+0x119/0x18d
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff814a04ec>] paging_init+0x43/0x52
 [<ffffffff81495426>] setup_arch+0x4da/0x56c
 [<ffffffff8148eb0b>] start_kernel+0x7d/0x35b
 [<ffffffff8148e451>] x86_64_start_kernel+0x256/0x265

bootmem::__alloc_bootmem_core start=1400 end=1600
bootmem::__alloc_bootmem_core size=200000 [512 pages] align=200000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.26.6 #7

Call Trace:
 [<ffffffff814a5a8c>] __alloc_bootmem_core+0xa6/0x3b3
 [<ffffffff814a5fa6>] __alloc_bootmem_node+0x25/0x40
 [<ffffffff81289dd0>] __earlyonly_bootmem_alloc+0x14/0x16
 [<ffffffff814b8ee3>] vmemmap_alloc_block+0xed/0xf6
 [<ffffffff814b8320>] vmemmap_populate+0xcf/0x1d8
 [<ffffffff814b8d94>] sparse_mem_map_populate+0x2d/0x3f
 [<ffffffff814a717d>] sparse_early_mem_map_alloc+0x35/0x61
 [<ffffffff814a72c2>] sparse_init+0x119/0x18d
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff814a04ec>] paging_init+0x43/0x52
 [<ffffffff81495426>] setup_arch+0x4da/0x56c
 [<ffffffff8148eb0b>] start_kernel+0x7d/0x35b
 [<ffffffff8148e451>] x86_64_start_kernel+0x256/0x265

bootmem::__alloc_bootmem_core start=1600 end=1800
bootmem::__alloc_bootmem_core size=200000 [512 pages] align=200000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.26.6 #7

Call Trace:
 [<ffffffff814a5a8c>] __alloc_bootmem_core+0xa6/0x3b3
 [<ffffffff814a5fa6>] __alloc_bootmem_node+0x25/0x40
 [<ffffffff81289dd0>] __earlyonly_bootmem_alloc+0x14/0x16
 [<ffffffff814b8ee3>] vmemmap_alloc_block+0xed/0xf6
 [<ffffffff814b8320>] vmemmap_populate+0xcf/0x1d8
 [<ffffffff814b8d94>] sparse_mem_map_populate+0x2d/0x3f
 [<ffffffff814a717d>] sparse_early_mem_map_alloc+0x35/0x61
 [<ffffffff814a72c2>] sparse_init+0x119/0x18d
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff814a04ec>] paging_init+0x43/0x52
 [<ffffffff81495426>] setup_arch+0x4da/0x56c
 [<ffffffff8148eb0b>] start_kernel+0x7d/0x35b
 [<ffffffff8148e451>] x86_64_start_kernel+0x256/0x265

bootmem::__alloc_bootmem_core start=1800 end=1a00
 [ffffe20000000000-ffffe200007fffff] PMD -> [ffff810001200000-ffff8100019fffff] on node 0
Zone PFN ranges:
  DMA             0 ->     4096
  DMA32        4096 ->  1048576
  Normal    1048576 ->  1048576
Movable zone start PFN for each node
early_node_map[2] active PFN ranges
    0:        0 ->      159
    0:      256 ->   131056
On node 0 totalpages: 130959
  DMA zone: 56 pages used for memmap
  DMA zone: 1711 pages reserved
  DMA zone: 2232 pages, LIFO batch:0
bootmem::__alloc_bootmem_core size=180 [1 pages] align=80 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.26.6 #7

Call Trace:
 [<ffffffff814a5a8c>] __alloc_bootmem_core+0xa6/0x3b3
 [<ffffffff814a5fa6>] __alloc_bootmem_node+0x25/0x40
 [<ffffffff81289cf4>] zone_wait_table_init+0x8a/0xe2
 [<ffffffff814b8812>] init_currently_empty_zone+0x22/0xae
 [<ffffffff814b8d1a>] free_area_init_node+0x327/0x374
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff814a6a05>] free_area_init_nodes+0x286/0x2d3
 [<ffffffff814a732a>] ? sparse_init+0x181/0x18d
 [<ffffffff814a04f4>] paging_init+0x4b/0x52
 [<ffffffff81495426>] setup_arch+0x4da/0x56c
 [<ffffffff8148eb0b>] start_kernel+0x7d/0x35b
 [<ffffffff8148e451>] x86_64_start_kernel+0x256/0x265

bootmem::__alloc_bootmem_core start=1001 end=1002
  DMA32 zone: 1736 pages used for memmap
  DMA32 zone: 125224 pages, LIFO batch:31
bootmem::__alloc_bootmem_core size=3000 [3 pages] align=80 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.26.6 #7

Call Trace:
 [<ffffffff814a5a8c>] __alloc_bootmem_core+0xa6/0x3b3
 [<ffffffff814a5fa6>] __alloc_bootmem_node+0x25/0x40
 [<ffffffff81289cf4>] zone_wait_table_init+0x8a/0xe2
 [<ffffffff814b8812>] init_currently_empty_zone+0x22/0xae
 [<ffffffff814b8d1a>] free_area_init_node+0x327/0x374
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff814a6a05>] free_area_init_nodes+0x286/0x2d3
 [<ffffffff814a732a>] ? sparse_init+0x181/0x18d
 [<ffffffff814a04f4>] paging_init+0x4b/0x52
 [<ffffffff81495426>] setup_arch+0x4da/0x56c
 [<ffffffff8148eb0b>] start_kernel+0x7d/0x35b
 [<ffffffff8148e451>] x86_64_start_kernel+0x256/0x265

bootmem::__alloc_bootmem_core start=1002 end=1005
  Normal zone: 0 pages used for memmap
  Movable zone: 0 pages used for memmap
bootmem::__alloc_bootmem_core size=1000 [1 pages] align=1000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.26.6 #7

Call Trace:
 [<ffffffff814a5a8c>] __alloc_bootmem_core+0xa6/0x3b3
 [<ffffffff814b89da>] ? memmap_init_zone+0x13c/0x155
 [<ffffffff814b87e7>] ? zone_absent_pages_in_node+0xa7/0xb0
 [<ffffffff814a5f1d>] __alloc_bootmem_nopanic+0x31/0x5c
 [<ffffffff814a5f59>] __alloc_bootmem+0x11/0x39
 [<ffffffff814a006f>] spp_getpage+0x3a/0x6f
 [<ffffffff814a020c>] __set_fixmap+0x168/0x298
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff81495d0b>] map_vsyscall+0x22/0x24
 [<ffffffff8149542b>] setup_arch+0x4df/0x56c
 [<ffffffff8148eb0b>] start_kernel+0x7d/0x35b
 [<ffffffff8148e451>] x86_64_start_kernel+0x256/0x265

bootmem::__alloc_bootmem_core start=1005 end=1006
ACPI: PM-Timer IO Port: 0xb008
ACPI: Local APIC address 0xfee00000
ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] disabled)
ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] disabled)
ACPI: LAPIC (acpi_id[0x03] lapic_id[0x03] disabled)
ACPI: LAPIC (acpi_id[0x04] lapic_id[0x04] disabled)
ACPI: LAPIC (acpi_id[0x05] lapic_id[0x05] disabled)
ACPI: LAPIC (acpi_id[0x06] lapic_id[0x06] disabled)
ACPI: LAPIC (acpi_id[0x07] lapic_id[0x07] disabled)
ACPI: LAPIC (acpi_id[0x08] lapic_id[0x08] disabled)
ACPI: LAPIC (acpi_id[0x09] lapic_id[0x09] disabled)
ACPI: LAPIC (acpi_id[0x0a] lapic_id[0x0a] disabled)
ACPI: LAPIC (acpi_id[0x0b] lapic_id[0x0b] disabled)
ACPI: LAPIC (acpi_id[0x0c] lapic_id[0x0c] disabled)
ACPI: LAPIC (acpi_id[0x0d] lapic_id[0x0d] disabled)
ACPI: LAPIC (acpi_id[0x0e] lapic_id[0x0e] disabled)
ACPI: LAPIC (acpi_id[0x0f] lapic_id[0x0f] disabled)
ACPI: IOAPIC (id[0x01] address[0xfec00000] gsi_base[0])
IOAPIC[0]: apic_id 1, version 0, address 0xfec00000, GSI 0-23
ACPI: INT_SRC_OVR (bus 0 bus_irq 5 global_irq 5 high level)
ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
ACPI: INT_SRC_OVR (bus 0 bus_irq 10 global_irq 10 high level)
ACPI: INT_SRC_OVR (bus 0 bus_irq 11 global_irq 11 high level)
ACPI: IRQ5 used by override.
ACPI: IRQ9 used by override.
ACPI: IRQ10 used by override.
ACPI: IRQ11 used by override.
Setting APIC routing to flat
Using ACPI (MADT) for SMP configuration information
bootmem::__alloc_bootmem_core size=43 [1 pages] align=80 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.26.6 #7

Call Trace:
 [<ffffffff814a5a8c>] __alloc_bootmem_core+0xa6/0x3b3
 [<ffffffff81297da1>] ? printk+0x67/0x6e
 [<ffffffff814a5f1d>] __alloc_bootmem_nopanic+0x31/0x5c
 [<ffffffff814a5f59>] __alloc_bootmem+0x11/0x39
 [<ffffffff8149bc79>] ioapic_init_mappings+0x41/0x166
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff81495459>] setup_arch+0x50d/0x56c
 [<ffffffff8148eb0b>] start_kernel+0x7d/0x35b
 [<ffffffff8148e451>] x86_64_start_kernel+0x256/0x265

bootmem::__alloc_bootmem_core start=1006 end=1007
bootmem::__alloc_bootmem_core size=150 [1 pages] align=80 goal=0 limit=ffffffff
Pid: 0, comm: swapper Not tainted 2.6.26.6 #7

Call Trace:
 [<ffffffff8113acdb>] ? sprintf+0x68/0x6a
 [<ffffffff814a5a8c>] __alloc_bootmem_core+0xa6/0x3b3
 [<ffffffff814a032d>] ? __set_fixmap+0x289/0x298
 [<ffffffff814a5de5>] __alloc_bootmem_low+0x34/0x7c
 [<ffffffff81496a60>] e820_reserve_resources+0x3f/0xc0
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff81495463>] setup_arch+0x517/0x56c
 [<ffffffff8148eb0b>] start_kernel+0x7d/0x35b
 [<ffffffff8148e451>] x86_64_start_kernel+0x256/0x265

bootmem::__alloc_bootmem_core start=5 end=6
bootmem::__alloc_bootmem_core size=20 [1 pages] align=80 goal=0 limit=ffffffff
Pid: 0, comm: swapper Not tainted 2.6.26.6 #7

Call Trace:
 [<ffffffff814a5a8c>] __alloc_bootmem_core+0xa6/0x3b3
 [<ffffffff814a5d55>] ? __alloc_bootmem_core+0x36f/0x3b3
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff814a5de5>] __alloc_bootmem_low+0x34/0x7c
 [<ffffffff814a4012>] __register_nosave_region+0x65/0xa4
 [<ffffffff814969c4>] e820_mark_nosave_regions+0x53/0xb0
 [<ffffffff81495468>] setup_arch+0x51c/0x56c
 [<ffffffff8148eb0b>] start_kernel+0x7d/0x35b
 [<ffffffff8148e451>] x86_64_start_kernel+0x256/0x265

bootmem::__alloc_bootmem_core start=24 end=25
PM: Registered nosave memory: 000000000009f000 - 00000000000a0000
PM: Registered nosave memory: 00000000000a0000 - 00000000000e8000
PM: Registered nosave memory: 00000000000e8000 - 0000000000100000
Allocating PCI resources starting at 30000000 (gap: 20000000:dffbd000)
bootmem::__alloc_bootmem_core size=2f [1 pages] align=80 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.26.6 #7

Call Trace:
 [<ffffffff814a5a8c>] __alloc_bootmem_core+0xa6/0x3b3
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff814a5de5>] ? __alloc_bootmem_low+0x34/0x7c
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff814a5f1d>] __alloc_bootmem_nopanic+0x31/0x5c
 [<ffffffff814a5f59>] __alloc_bootmem+0x11/0x39
 [<ffffffff8148eb3b>] start_kernel+0xad/0x35b
 [<ffffffff8148e451>] x86_64_start_kernel+0x256/0x265

bootmem::__alloc_bootmem_core start=1007 end=1008
bootmem::__alloc_bootmem_core size=2f [1 pages] align=80 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.26.6 #7

Call Trace:
 [<ffffffff814a5a8c>] __alloc_bootmem_core+0xa6/0x3b3
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff814a5f1d>] __alloc_bootmem_nopanic+0x31/0x5c
 [<ffffffff814a5f59>] __alloc_bootmem+0x11/0x39
 [<ffffffff8148eb6e>] start_kernel+0xe0/0x35b
 [<ffffffff8148e451>] x86_64_start_kernel+0x256/0x265

bootmem::__alloc_bootmem_core start=1008 end=1008
SMP: Allowing 16 CPUs, 15 hotplug CPUs
PERCPU: Allocating 45104 bytes of per cpu data
bootmem::__alloc_bootmem_core size=b030 [12 pages] align=1000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.26.6 #7

Call Trace:
 [<ffffffff81297da1>] ? printk+0x67/0x6e
 [<ffffffff814a5a8c>] __alloc_bootmem_core+0xa6/0x3b3
 [<ffffffff814a5fa6>] __alloc_bootmem_node+0x25/0x40
 [<ffffffff81495b0d>] setup_per_cpu_areas+0x107/0x275
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff8148eb98>] start_kernel+0x10a/0x35b
 [<ffffffff8148e451>] x86_64_start_kernel+0x256/0x265

bootmem::__alloc_bootmem_core start=1008 end=1014
bootmem::__alloc_bootmem_core size=b030 [12 pages] align=1000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.26.6 #7

Call Trace:
 [<ffffffff81297da1>] ? printk+0x67/0x6e
 [<ffffffff814a5a8c>] __alloc_bootmem_core+0xa6/0x3b3
 [<ffffffff814a5fa6>] __alloc_bootmem_node+0x25/0x40
 [<ffffffff81495b0d>] setup_per_cpu_areas+0x107/0x275
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff8148eb98>] start_kernel+0x10a/0x35b
 [<ffffffff8148e451>] x86_64_start_kernel+0x256/0x265

bootmem::__alloc_bootmem_core start=1014 end=1020
bootmem::__alloc_bootmem_core size=b030 [12 pages] align=1000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.26.6 #7

Call Trace:
 [<ffffffff81297da1>] ? printk+0x67/0x6e
 [<ffffffff814a5a8c>] __alloc_bootmem_core+0xa6/0x3b3
 [<ffffffff814a5fa6>] __alloc_bootmem_node+0x25/0x40
 [<ffffffff81495b0d>] setup_per_cpu_areas+0x107/0x275
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff8148eb98>] start_kernel+0x10a/0x35b
 [<ffffffff8148e451>] x86_64_start_kernel+0x256/0x265

bootmem::__alloc_bootmem_core start=1020 end=102c
bootmem::__alloc_bootmem_core size=b030 [12 pages] align=1000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.26.6 #7

Call Trace:
 [<ffffffff81297da1>] ? printk+0x67/0x6e
 [<ffffffff814a5a8c>] __alloc_bootmem_core+0xa6/0x3b3
 [<ffffffff814a5fa6>] __alloc_bootmem_node+0x25/0x40
 [<ffffffff81495b0d>] setup_per_cpu_areas+0x107/0x275
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff8148eb98>] start_kernel+0x10a/0x35b
 [<ffffffff8148e451>] x86_64_start_kernel+0x256/0x265

bootmem::__alloc_bootmem_core start=102c end=1038
bootmem::__alloc_bootmem_core size=b030 [12 pages] align=1000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.26.6 #7

Call Trace:
 [<ffffffff81297da1>] ? printk+0x67/0x6e
 [<ffffffff814a5a8c>] __alloc_bootmem_core+0xa6/0x3b3
 [<ffffffff814a5fa6>] __alloc_bootmem_node+0x25/0x40
 [<ffffffff81495b0d>] setup_per_cpu_areas+0x107/0x275
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff8148eb98>] start_kernel+0x10a/0x35b
 [<ffffffff8148e451>] x86_64_start_kernel+0x256/0x265

bootmem::__alloc_bootmem_core start=1038 end=1044
bootmem::__alloc_bootmem_core size=b030 [12 pages] align=1000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.26.6 #7

Call Trace:
 [<ffffffff81297da1>] ? printk+0x67/0x6e
 [<ffffffff814a5a8c>] __alloc_bootmem_core+0xa6/0x3b3
 [<ffffffff814a5fa6>] __alloc_bootmem_node+0x25/0x40
 [<ffffffff81495b0d>] setup_per_cpu_areas+0x107/0x275
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff8148eb98>] start_kernel+0x10a/0x35b
 [<ffffffff8148e451>] x86_64_start_kernel+0x256/0x265

bootmem::__alloc_bootmem_core start=1044 end=1050
bootmem::__alloc_bootmem_core size=b030 [12 pages] align=1000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.26.6 #7

Call Trace:
 [<ffffffff81297da1>] ? printk+0x67/0x6e
 [<ffffffff814a5a8c>] __alloc_bootmem_core+0xa6/0x3b3
 [<ffffffff814a5fa6>] __alloc_bootmem_node+0x25/0x40
 [<ffffffff81495b0d>] setup_per_cpu_areas+0x107/0x275
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff8148eb98>] start_kernel+0x10a/0x35b
 [<ffffffff8148e451>] x86_64_start_kernel+0x256/0x265

bootmem::__alloc_bootmem_core start=1050 end=105c
bootmem::__alloc_bootmem_core size=b030 [12 pages] align=1000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.26.6 #7

Call Trace:
 [<ffffffff81297da1>] ? printk+0x67/0x6e
 [<ffffffff814a5a8c>] __alloc_bootmem_core+0xa6/0x3b3
 [<ffffffff814a5fa6>] __alloc_bootmem_node+0x25/0x40
 [<ffffffff81495b0d>] setup_per_cpu_areas+0x107/0x275
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff8148eb98>] start_kernel+0x10a/0x35b
 [<ffffffff8148e451>] x86_64_start_kernel+0x256/0x265

bootmem::__alloc_bootmem_core start=105c end=1068
bootmem::__alloc_bootmem_core size=b030 [12 pages] align=1000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.26.6 #7

Call Trace:
 [<ffffffff81297da1>] ? printk+0x67/0x6e
 [<ffffffff814a5a8c>] __alloc_bootmem_core+0xa6/0x3b3
 [<ffffffff814a5fa6>] __alloc_bootmem_node+0x25/0x40
 [<ffffffff81495b0d>] setup_per_cpu_areas+0x107/0x275
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff8148eb98>] start_kernel+0x10a/0x35b
 [<ffffffff8148e451>] x86_64_start_kernel+0x256/0x265

bootmem::__alloc_bootmem_core start=1068 end=1074
bootmem::__alloc_bootmem_core size=b030 [12 pages] align=1000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.26.6 #7

Call Trace:
 [<ffffffff81297da1>] ? printk+0x67/0x6e
 [<ffffffff814a5a8c>] __alloc_bootmem_core+0xa6/0x3b3
 [<ffffffff814a5fa6>] __alloc_bootmem_node+0x25/0x40
 [<ffffffff81495b0d>] setup_per_cpu_areas+0x107/0x275
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff8148eb98>] start_kernel+0x10a/0x35b
 [<ffffffff8148e451>] x86_64_start_kernel+0x256/0x265

bootmem::__alloc_bootmem_core start=1074 end=1080
bootmem::__alloc_bootmem_core size=b030 [12 pages] align=1000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.26.6 #7

Call Trace:
 [<ffffffff81297da1>] ? printk+0x67/0x6e
 [<ffffffff814a5a8c>] __alloc_bootmem_core+0xa6/0x3b3
 [<ffffffff814a5fa6>] __alloc_bootmem_node+0x25/0x40
 [<ffffffff81495b0d>] setup_per_cpu_areas+0x107/0x275
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff8148eb98>] start_kernel+0x10a/0x35b
 [<ffffffff8148e451>] x86_64_start_kernel+0x256/0x265

bootmem::__alloc_bootmem_core start=1080 end=108c
bootmem::__alloc_bootmem_core size=b030 [12 pages] align=1000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.26.6 #7

Call Trace:
 [<ffffffff81297da1>] ? printk+0x67/0x6e
 [<ffffffff814a5a8c>] __alloc_bootmem_core+0xa6/0x3b3
 [<ffffffff814a5fa6>] __alloc_bootmem_node+0x25/0x40
 [<ffffffff81495b0d>] setup_per_cpu_areas+0x107/0x275
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff8148eb98>] start_kernel+0x10a/0x35b
 [<ffffffff8148e451>] x86_64_start_kernel+0x256/0x265

bootmem::__alloc_bootmem_core start=108c end=1098
bootmem::__alloc_bootmem_core size=b030 [12 pages] align=1000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.26.6 #7

Call Trace:
 [<ffffffff81297da1>] ? printk+0x67/0x6e
 [<ffffffff814a5a8c>] __alloc_bootmem_core+0xa6/0x3b3
 [<ffffffff814a5fa6>] __alloc_bootmem_node+0x25/0x40
 [<ffffffff81495b0d>] setup_per_cpu_areas+0x107/0x275
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff8148eb98>] start_kernel+0x10a/0x35b
 [<ffffffff8148e451>] x86_64_start_kernel+0x256/0x265

bootmem::__alloc_bootmem_core start=1098 end=10a4
bootmem::__alloc_bootmem_core size=b030 [12 pages] align=1000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.26.6 #7

Call Trace:
 [<ffffffff81297da1>] ? printk+0x67/0x6e
 [<ffffffff814a5a8c>] __alloc_bootmem_core+0xa6/0x3b3
 [<ffffffff814a5fa6>] __alloc_bootmem_node+0x25/0x40
 [<ffffffff81495b0d>] setup_per_cpu_areas+0x107/0x275
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff8148eb98>] start_kernel+0x10a/0x35b
 [<ffffffff8148e451>] x86_64_start_kernel+0x256/0x265

bootmem::__alloc_bootmem_core start=10a4 end=10b0
bootmem::__alloc_bootmem_core size=b030 [12 pages] align=1000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.26.6 #7

Call Trace:
 [<ffffffff81297da1>] ? printk+0x67/0x6e
 [<ffffffff814a5a8c>] __alloc_bootmem_core+0xa6/0x3b3
 [<ffffffff814a5fa6>] __alloc_bootmem_node+0x25/0x40
 [<ffffffff81495b0d>] setup_per_cpu_areas+0x107/0x275
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff8148eb98>] start_kernel+0x10a/0x35b
 [<ffffffff8148e451>] x86_64_start_kernel+0x256/0x265

bootmem::__alloc_bootmem_core start=10b0 end=10bc
bootmem::__alloc_bootmem_core size=b030 [12 pages] align=1000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.26.6 #7

Call Trace:
 [<ffffffff81297da1>] ? printk+0x67/0x6e
 [<ffffffff814a5a8c>] __alloc_bootmem_core+0xa6/0x3b3
 [<ffffffff814a5fa6>] __alloc_bootmem_node+0x25/0x40
 [<ffffffff81495b0d>] setup_per_cpu_areas+0x107/0x275
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff8148eb98>] start_kernel+0x10a/0x35b
 [<ffffffff8148e451>] x86_64_start_kernel+0x256/0x265

bootmem::__alloc_bootmem_core start=10bc end=10c8
NR_CPUS: 64, nr_cpu_ids: 16
bootmem::__alloc_bootmem_core size=80 [1 pages] align=80 goal=0 limit=ffffffff
Pid: 0, comm: swapper Not tainted 2.6.26.6 #7

Call Trace:
 [<ffffffff81297da1>] ? printk+0x67/0x6e
 [<ffffffff814a5a8c>] __alloc_bootmem_core+0xa6/0x3b3
 [<ffffffff814a5de5>] __alloc_bootmem_low+0x34/0x7c
 [<ffffffff81495c46>] setup_per_cpu_areas+0x240/0x275
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff8148eb98>] start_kernel+0x10a/0x35b
 [<ffffffff8148e451>] x86_64_start_kernel+0x256/0x265

bootmem::__alloc_bootmem_core start=25 end=26
Built 1 zonelists in Node order, mobility grouping on.  Total pages: 127456
Policy zone: DMA32
Kernel command line: ro root=/dev/VolGroup00/LogVol00 bootmem_debug
Initializing CPU#0
PID hash table entries: 2048 (order: 11, 16384 bytes)
bootmem::__alloc_bootmem_core size=4000 [4 pages] align=80 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.26.6 #7

Call Trace:
 [<ffffffff814a5a8c>] __alloc_bootmem_core+0xa6/0x3b3
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff814a5f1d>] __alloc_bootmem_nopanic+0x31/0x5c
 [<ffffffff814a5f59>] __alloc_bootmem+0x11/0x39
 [<ffffffff814a3386>] pidhash_init+0x81/0xb8
 [<ffffffff8148ec76>] start_kernel+0x1e8/0x35b
 [<ffffffff8148e451>] x86_64_start_kernel+0x256/0x265

bootmem::__alloc_bootmem_core start=10c8 end=10cc
TSC calibrated against PM_TIMER
time.c: Detected 2300.072 MHz processor.
bootmem::__alloc_bootmem_core size=10000 [16 pages] align=80 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.26.6 #7

Call Trace:
 [<ffffffff814a5a8c>] __alloc_bootmem_core+0xa6/0x3b3
 [<ffffffff81011f62>] ? native_sched_clock+0x52/0x65
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff814a5f1d>] __alloc_bootmem_nopanic+0x31/0x5c
 [<ffffffff814a5f59>] __alloc_bootmem+0x11/0x39
 [<ffffffff8128aafc>] vgacon_scrollback_startup+0x29/0x7c
 [<ffffffff81156df5>] vgacon_startup+0x377/0x38e
 [<ffffffff814af6fd>] con_init+0x1b/0x24f
 [<ffffffff814af07a>] console_init+0x22/0x33
 [<ffffffff8148ecc1>] start_kernel+0x233/0x35b
 [<ffffffff8148e451>] x86_64_start_kernel+0x256/0x265

bootmem::__alloc_bootmem_core start=10cc end=10dc
bootmem::__alloc_bootmem_core size=1b0 [1 pages] align=80 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.26.6 #7

Call Trace:
 [<ffffffff814a5a8c>] __alloc_bootmem_core+0xa6/0x3b3
 [<ffffffff8129a144>] ? _spin_lock_irqsave+0x1a/0x35
 [<ffffffff8129a273>] ? _spin_unlock_irqrestore+0x10/0x13
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff814a5f1d>] __alloc_bootmem_nopanic+0x31/0x5c
 [<ffffffff814a5f59>] __alloc_bootmem+0x11/0x39
 [<ffffffff814af7c8>] con_init+0xe6/0x24f
 [<ffffffff814af07a>] console_init+0x22/0x33
 [<ffffffff8148ecc1>] start_kernel+0x233/0x35b
 [<ffffffff8148e451>] x86_64_start_kernel+0x256/0x265

bootmem::__alloc_bootmem_core start=10dc end=10dd
bootmem::__alloc_bootmem_core size=fa0 [1 pages] align=80 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.26.6 #7

Call Trace:
 [<ffffffff814a5a8c>] __alloc_bootmem_core+0xa6/0x3b3
 [<ffffffff8148e140>] ? early_idt_handler+0x0/0x73
 [<ffffffff814a5f1d>] __alloc_bootmem_nopanic+0x31/0x5c
 [<ffffffff814a5f59>] __alloc_bootmem+0x11/0x39
 [<ffffffff814af82c>] con_init+0x14a/0x24f
 [<ffffffff814af07a>] console_init+0x22/0x33
 [<ffffffff8148ecc1>] start_kernel+0x233/0x35b
 [<ffffffff8148e451>] x86_64_start_kernel+0x256/0x265

bootmem::__alloc_bootmem_core start=10dd end=10de
Console: colour VGA+ 80x25
console [tty0] enabled
Checking aperture...
Calgary: detecting Calgary via BIOS EBDA area
Calgary: Unable to locate Rio Grande table in EBDA - bailing!
bootmem::free_all_bootmem_core released=4
Memory: 504816k/524224k available (2690k kernel code, 19020k reserved, 1483k data, 976k init)
CPA: page pool initialized 1 of 1 pages preallocated
SLUB: Genslabs=13, HWalign=64, Order=0-3, MinObjects=0, CPUs=16, Nodes=1
Calibrating delay using timer specific routine.. 3251.03 BogoMIPS (lpj=1625516)
Security Framework initialized
SELinux:  Initializing.
SELinux:  Starting in permissive mode
selinux_register_security:  Registering secondary module capability
Capability LSM initialized as secondary
Dentry cache hash table entries: 65536 (order: 7, 524288 bytes)
Inode-cache hash table entries: 32768 (order: 6, 262144 bytes)
Mount-cache hash table entries: 256
Initializing cgroup subsys ns
Initializing cgroup subsys cpuacct
Initializing cgroup subsys devices
PAT disabled. Not yet verified on this CPU type.
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU 0/0 -> Node 0
ACPI: Core revision 20080321
CPU0: QEMU Virtual CPU version 0.9.1 stepping 03
Using local APIC timer interrupts.
APIC timer calibration result 79861289
Detected 79.861 MHz APIC timer.
Brought up 1 CPUs
Total of 1 processors activated (3251.03 BogoMIPS).
CPU0 attaching sched-domain:
 domain 0: span 0
  groups: 0
net_namespace: 1224 bytes
Booting paravirtualized kernel on KVM
Time: 12:18:48  Date: 03/08/09
NET: Registered protocol family 16
No dock devices found.
ACPI: bus type pci registered
PCI: Using configuration type 1 for base access
ACPI: EC: Look up EC in DSDT
ACPI: Interpreter enabled
ACPI: (supports S0 S5)
ACPI: Using IOAPIC for interrupt routing
ACPI: PCI Root Bridge [PCI0] (0000:00)
pci 0000:00:01.3: quirk: region b000-b03f claimed by PIIX4 ACPI
pci 0000:00:01.3: quirk: region b100-b10f claimed by PIIX4 SMB
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: PCI Interrupt Link [LNKA] (IRQs 5 *10 11)
ACPI: PCI Interrupt Link [LNKB] (IRQs 5 *10 11)
ACPI: PCI Interrupt Link [LNKC] (IRQs 5 10 *11)
ACPI: PCI Interrupt Link [LNKD] (IRQs 5 10 *11)
Linux Plug and Play Support v0.97 (c) Adam Belay
pnp: PnP ACPI init
ACPI: bus type pnp registered
pnp: PnP ACPI: found 5 devices
ACPI: ACPI bus type pnp unregistered
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
PCI: Using ACPI for IRQ routing
NetLabel: Initializing
NetLabel:  domain hash size = 128
NetLabel:  protocols = UNLABELED CIPSOv4
NetLabel:  unlabeled traffic allowed by default
PCI-GART: No AMD northbridge found.
NET: Registered protocol family 2
IP route cache hash table entries: 4096 (order: 3, 32768 bytes)
TCP established hash table entries: 16384 (order: 6, 262144 bytes)
TCP bind hash table entries: 16384 (order: 6, 262144 bytes)
TCP: Hash tables configured (established 16384 bind 16384)
TCP reno registered
NET: Registered protocol family 1
checking if image is initramfs... it is
Freeing initrd memory: 3359k freed
audit: initializing netlink socket (disabled)
type=2000 audit(1236514726.692:1): initialized
Total HugeTLB memory allocated, 0
VFS: Disk quotas dquot_6.5.1
Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
msgmni has been set to 992
SELinux:  Registering netfilter hooks
Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered (default)
pci 0000:00:00.0: Limiting direct PCI/PCI transfers
pci 0000:00:01.0: Activating ISA DMA hang workarounds
pci 0000:00:02.0: Boot video device
pci_hotplug: PCI Hot Plug PCI Core version: 0.5
input: Power Button (FF) as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input0
ACPI: Power Button (FF) [PWRF]
ACPI: ACPI0007:00 is registered as cooling_device0
Non-volatile memory driver v1.2
Linux agpgart interface v0.103
Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled
brd: module loaded
input: Macintosh mouse button emulation as /devices/virtual/input/input1
PNP: PS/2 Controller [PNP0303:KBD,PNP0f13:MOU] at 0x60,0x64 irq 1,12
serio: i8042 KBD port at 0x60,0x64 irq 1
serio: i8042 AUX port at 0x60,0x64 irq 12
mice: PS/2 mouse device common for all mice
input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input2
rtc_cmos 00:01: rtc core: registered rtc_cmos as rtc0
rtc0: alarms up to one day
cpuidle: using governor ladder
cpuidle: using governor menu
usbcore: registered new interface driver hiddev
usbcore: registered new interface driver usbhid
usbhid: v2.6:USB HID core driver
TCP cubic registered
Initializing XFRM netlink socket
NET: Registered protocol family 17
registered taskstats version 1
  Magic number: 1:125:329
  hash matches device tty50
Freeing unused kernel memory: 976k freed
Write protecting the kernel read-only data: 3836k
Switched to high resolution mode on CPU 0
input: ImExPS/2 Generic Explorer Mouse as /devices/platform/i8042/serio1/input/input3
ohci_hcd: 2006 August 04 USB 1.1 'Open' Host Controller (OHCI) Driver
USB Universal Host Controller Interface driver v3.0
ACPI: PCI Interrupt Link [LNKD] enabled at IRQ 11
ACPI: PCI Interrupt 0000:00:01.2[D] -> Link [LNKD] -> GSI 11 (level, high) -> IRQ 11
uhci_hcd 0000:00:01.2: UHCI Host Controller
uhci_hcd 0000:00:01.2: new USB bus registered, assigned bus number 1
uhci_hcd 0000:00:01.2: irq 11, io base 0x0000c020
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
usb usb1: New USB device found, idVendor=1d6b, idProduct=0001
usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb1: Product: UHCI Host Controller
usb usb1: Manufacturer: Linux 2.6.26.6 uhci_hcd
usb usb1: SerialNumber: 0000:00:01.2
ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 10
ACPI: PCI Interrupt 0000:00:03.0[A] -> Link [LNKC] -> GSI 10 (level, high) -> IRQ 10
ACPI: PCI Interrupt 0000:00:04.0[A] -> Link [LNKD] -> GSI 11 (level, high) -> IRQ 11
 vda: vda1 vda2
device-mapper: uevent: version 1.0.3
device-mapper: ioctl: 4.13.0-ioctl (2007-10-18) initialised: dm-devel@redhat.com
kjournald starting.  Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
type=1404 audit(1236514727.760:2): enforcing=1 old_enforcing=0 auid=4294967295 ses=4294967295
Clocksource tsc unstable (delta = -70941776 ns)
SELinux: 8192 avtab hash slots, 178516 rules.
SELinux: 8192 avtab hash slots, 178516 rules.
SELinux:  8 users, 12 roles, 2435 types, 119 bools, 1 sens, 1024 cats
SELinux:  73 classes, 178516 rules
SELinux:  Completing initialization.
SELinux:  Setting up existing superblocks.
SELinux: initialized (dev dm-0, type ext3), uses xattr
SELinux: initialized (dev usbfs, type usbfs), uses genfs_contexts
SELinux: initialized (dev tmpfs, type tmpfs), uses transition SIDs
SELinux: initialized (dev selinuxfs, type selinuxfs), uses genfs_contexts
SELinux: initialized (dev mqueue, type mqueue), uses transition SIDs
SELinux: initialized (dev hugetlbfs, type hugetlbfs), uses genfs_contexts
SELinux: initialized (dev devpts, type devpts), uses transition SIDs
SELinux: initialized (dev inotifyfs, type inotifyfs), uses genfs_contexts
SELinux: initialized (dev tmpfs, type tmpfs), uses transition SIDs
SELinux: initialized (dev anon_inodefs, type anon_inodefs), uses genfs_contexts
SELinux: initialized (dev pipefs, type pipefs), uses task SIDs
SELinux: initialized (dev debugfs, type debugfs), uses genfs_contexts
SELinux: initialized (dev sockfs, type sockfs), uses task SIDs
SELinux: initialized (dev proc, type proc), uses genfs_contexts
SELinux: initialized (dev bdev, type bdev), uses genfs_contexts
SELinux: initialized (dev rootfs, type rootfs), uses genfs_contexts
SELinux: initialized (dev sysfs, type sysfs), uses genfs_contexts
SELinux: policy loaded with handle_unknown=allow
type=1403 audit(1236514728.128:3): policy loaded auid=4294967295 ses=4294967295
SCSI subsystem initialized
piix4_smbus 0000:00:01.3: Found 0000:00:01.3 device
libata version 3.00 loaded.
ata_piix 0000:00:01.1: version 2.12
scsi0 : ata_piix
input: PC Speaker as /devices/platform/pcspkr/input/input4
scsi1 : ata_piix
ata1: PATA max MWDMA2 cmd 0x1f0 ctl 0x3f6 bmdma 0xc000 irq 14
ata2: PATA max MWDMA2 cmd 0x170 ctl 0x376 bmdma 0xc008 irq 15
ata2.00: ATAPI: QEMU DVD-ROM, 0.9.1, max UDMA/100
ata2.00: configured for MWDMA2
isa bounce pool size: 16 pages
scsi 1:0:0:0: CD-ROM            QEMU     QEMU DVD-ROM     0.9. PQ: 0 ANSI: 5
FDC 0 is a S82078B
Driver 'sr' needs updating - please use bus_type methods
sr0: scsi3-mmc drive: 4x/4x xa/form2 tray
Uniform CD-ROM driver Revision: 3.20
sr 1:0:0:0: Attached scsi CD-ROM sr0
sr 1:0:0:0: Attached scsi generic sg0 type 5
device-mapper: multipath: version 1.0.5 loaded
loop: module loaded
EXT3 FS on dm-0, internal journal
kjournald starting.  Commit interval 5 seconds
EXT3 FS on vda1, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
SELinux: initialized (dev vda1, type ext3), uses xattr
SELinux: initialized (dev tmpfs, type tmpfs), uses transition SIDs
Adding 524280k swap on /dev/mapper/VolGroup00-LogVol01.  Priority:-1 extents:1 across:524280k
SELinux: initialized (dev binfmt_misc, type binfmt_misc), uses genfs_contexts
NET: Registered protocol family 10
lo: Disabled Privacy Extensions
ip6_tables: (C) 2000-2006 Netfilter Core Team
nf_conntrack version 0.5.0 (4096 buckets, 16384 max)
ip_tables: (C) 2000-2006 Netfilter Core Team
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
SELinux: initialized (dev rpc_pipefs, type rpc_pipefs), uses genfs_contexts
eth0: no IPv6 routers present
warning: `dbus-daemon' uses deprecated v2 capabilities in a way that may be insecure.

[-- Attachment #1.3: dmesg.27 --]
[-- Type: application/octet-stream, Size: 65037 bytes --]

Initializing cgroup subsys cpuset
Initializing cgroup subsys cpu
Linux version 2.6.27.19 (drzeus@eremetheus.drzeus.cx) (gcc version 4.3.2 20081105 (Red Hat 4.3.2-7) (GCC) ) #1 SMP Sun Mar 8 11:35:42 CET 2009
Command line: ro root=/dev/VolGroup00/LogVol00 bootmem_debug
KERNEL supported cpus:
  Intel GenuineIntel
  AMD AuthenticAMD
  Centaur CentaurHauls
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
 BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000e8000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 000000001fff0000 (usable)
 BIOS-e820: 000000001fff0000 - 0000000020000000 (ACPI data)
 BIOS-e820: 00000000fffbd000 - 0000000100000000 (reserved)
DMI 2.4 present.
last_pfn = 0x1fff0 max_arch_pfn = 0x3ffffffff
x86 PAT enabled: cpu 0, old 0x0, new 0x7010600070106
init_memory_mapping
 0000000000 - 001fe00000 page 2M
 001fe00000 - 001fff0000 page 4k
kernel direct mapping tables up to 1fff0000 @ 8000-b000
last_map_addr: 1fff0000 end: 1fff0000
RAMDISK: 1fcc5000 - 1ffdf468
ACPI: RSDP 000FB9D0, 0014 (r0 QEMU  )
ACPI: RSDT 1FFF0000, 002C (r1 QEMU   QEMURSDT        1 QEMU        1)
ACPI: FACP 1FFF002C, 0074 (r1 QEMU   QEMUFACP        1 QEMU        1)
ACPI: DSDT 1FFF0100, 253C (r1   BXPC   BXDSDT        1 INTL 20061109)
ACPI: FACS 1FFF00C0, 0040
ACPI: APIC 1FFF2640, 00E0 (r1 QEMU   QEMUAPIC        1 QEMU        1)
No NUMA configuration found
Faking a node at 0000000000000000-000000001fff0000
Bootmem setup node 0 0000000000000000-000000001fff0000
  NODE_DATA [0000000000009000 - 000000000001dfff]
bootmem::init_bootmem_core nid=0 start=0 map=1e end=1fff0 mapsize=4000
  bootmap [000000000001e000 -  0000000000021fff] pages 4
bootmem::mark_bootmem_node nid=0 start=0 end=9f reserve=0 flags=0
bootmem::__free nid=0 start=0 end=9f
bootmem::mark_bootmem_node nid=0 start=100 end=1fff0 reserve=0 flags=0
bootmem::__free nid=0 start=100 end=1fff0
(6 early reservations) ==> bootmem [0000000000 - 001fff0000]
  #0 [0000000000 - 0000001000]   BIOS data page ==> [0000000000 - 0000001000]
bootmem::mark_bootmem_node nid=0 start=0 end=1 reserve=1 flags=0
bootmem::__reserve nid=0 start=0 end=1 flags=0
  #1 [0000006000 - 0000008000]       TRAMPOLINE ==> [0000006000 - 0000008000]
bootmem::mark_bootmem_node nid=0 start=6 end=8 reserve=1 flags=0
bootmem::__reserve nid=0 start=6 end=8 flags=0
  #2 [0000200000 - 0000a1c0cc]    TEXT DATA BSS ==> [0000200000 - 0000a1c0cc]
bootmem::mark_bootmem_node nid=0 start=200 end=a1d reserve=1 flags=0
bootmem::__reserve nid=0 start=200 end=a1d flags=0
  #3 [001fcc5000 - 001ffdf468]          RAMDISK ==> [001fcc5000 - 001ffdf468]
bootmem::mark_bootmem_node nid=0 start=1fcc5 end=1ffe0 reserve=1 flags=0
bootmem::__reserve nid=0 start=1fcc5 end=1ffe0 flags=0
  #4 [000009fc00 - 0000100000]    BIOS reserved ==> [000009fc00 - 0000100000]
bootmem::mark_bootmem_node nid=0 start=9f end=100 reserve=1 flags=0
bootmem::__reserve nid=0 start=9f end=100 flags=0
bootmem::__reserve silent double reserve of PFN 9f
bootmem::__reserve silent double reserve of PFN a0
bootmem::__reserve silent double reserve of PFN a1
bootmem::__reserve silent double reserve of PFN a2
bootmem::__reserve silent double reserve of PFN a3
bootmem::__reserve silent double reserve of PFN a4
bootmem::__reserve silent double reserve of PFN a5
bootmem::__reserve silent double reserve of PFN a6
bootmem::__reserve silent double reserve of PFN a7
bootmem::__reserve silent double reserve of PFN a8
bootmem::__reserve silent double reserve of PFN a9
bootmem::__reserve silent double reserve of PFN aa
bootmem::__reserve silent double reserve of PFN ab
bootmem::__reserve silent double reserve of PFN ac
bootmem::__reserve silent double reserve of PFN ad
bootmem::__reserve silent double reserve of PFN ae
bootmem::__reserve silent double reserve of PFN af
bootmem::__reserve silent double reserve of PFN b0
bootmem::__reserve silent double reserve of PFN b1
bootmem::__reserve silent double reserve of PFN b2
bootmem::__reserve silent double reserve of PFN b3
bootmem::__reserve silent double reserve of PFN b4
bootmem::__reserve silent double reserve of PFN b5
bootmem::__reserve silent double reserve of PFN b6
bootmem::__reserve silent double reserve of PFN b7
bootmem::__reserve silent double reserve of PFN b8
bootmem::__reserve silent double reserve of PFN b9
bootmem::__reserve silent double reserve of PFN ba
bootmem::__reserve silent double reserve of PFN bb
bootmem::__reserve silent double reserve of PFN bc
bootmem::__reserve silent double reserve of PFN bd
bootmem::__reserve silent double reserve of PFN be
bootmem::__reserve silent double reserve of PFN bf
bootmem::__reserve silent double reserve of PFN c0
bootmem::__reserve silent double reserve of PFN c1
bootmem::__reserve silent double reserve of PFN c2
bootmem::__reserve silent double reserve of PFN c3
bootmem::__reserve silent double reserve of PFN c4
bootmem::__reserve silent double reserve of PFN c5
bootmem::__reserve silent double reserve of PFN c6
bootmem::__reserve silent double reserve of PFN c7
bootmem::__reserve silent double reserve of PFN c8
bootmem::__reserve silent double reserve of PFN c9
bootmem::__reserve silent double reserve of PFN ca
bootmem::__reserve silent double reserve of PFN cb
bootmem::__reserve silent double reserve of PFN cc
bootmem::__reserve silent double reserve of PFN cd
bootmem::__reserve silent double reserve of PFN ce
bootmem::__reserve silent double reserve of PFN cf
bootmem::__reserve silent double reserve of PFN d0
bootmem::__reserve silent double reserve of PFN d1
bootmem::__reserve silent double reserve of PFN d2
bootmem::__reserve silent double reserve of PFN d3
bootmem::__reserve silent double reserve of PFN d4
bootmem::__reserve silent double reserve of PFN d5
bootmem::__reserve silent double reserve of PFN d6
bootmem::__reserve silent double reserve of PFN d7
bootmem::__reserve silent double reserve of PFN d8
bootmem::__reserve silent double reserve of PFN d9
bootmem::__reserve silent double reserve of PFN da
bootmem::__reserve silent double reserve of PFN db
bootmem::__reserve silent double reserve of PFN dc
bootmem::__reserve silent double reserve of PFN dd
bootmem::__reserve silent double reserve of PFN de
bootmem::__reserve silent double reserve of PFN df
bootmem::__reserve silent double reserve of PFN e0
bootmem::__reserve silent double reserve of PFN e1
bootmem::__reserve silent double reserve of PFN e2
bootmem::__reserve silent double reserve of PFN e3
bootmem::__reserve silent double reserve of PFN e4
bootmem::__reserve silent double reserve of PFN e5
bootmem::__reserve silent double reserve of PFN e6
bootmem::__reserve silent double reserve of PFN e7
bootmem::__reserve silent double reserve of PFN e8
bootmem::__reserve silent double reserve of PFN e9
bootmem::__reserve silent double reserve of PFN ea
bootmem::__reserve silent double reserve of PFN eb
bootmem::__reserve silent double reserve of PFN ec
bootmem::__reserve silent double reserve of PFN ed
bootmem::__reserve silent double reserve of PFN ee
bootmem::__reserve silent double reserve of PFN ef
bootmem::__reserve silent double reserve of PFN f0
bootmem::__reserve silent double reserve of PFN f1
bootmem::__reserve silent double reserve of PFN f2
bootmem::__reserve silent double reserve of PFN f3
bootmem::__reserve silent double reserve of PFN f4
bootmem::__reserve silent double reserve of PFN f5
bootmem::__reserve silent double reserve of PFN f6
bootmem::__reserve silent double reserve of PFN f7
bootmem::__reserve silent double reserve of PFN f8
bootmem::__reserve silent double reserve of PFN f9
bootmem::__reserve silent double reserve of PFN fa
bootmem::__reserve silent double reserve of PFN fb
bootmem::__reserve silent double reserve of PFN fc
bootmem::__reserve silent double reserve of PFN fd
bootmem::__reserve silent double reserve of PFN fe
bootmem::__reserve silent double reserve of PFN ff
  #5 [0000008000 - 0000009000]          PGTABLE ==> [0000008000 - 0000009000]
bootmem::mark_bootmem_node nid=0 start=8 end=9 reserve=1 flags=0
bootmem::__reserve nid=0 start=8 end=9 flags=0
bootmem::mark_bootmem_node nid=0 start=9 end=1e reserve=1 flags=0
bootmem::__reserve nid=0 start=9 end=1e flags=0
bootmem::mark_bootmem_node nid=0 start=1e end=22 reserve=1 flags=0
bootmem::__reserve nid=0 start=1e end=22 flags=0
bootmem::alloc_bootmem_core nid=0 size=4000 [4 pages] align=80 goal=0 limit=ffffffff
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff815b4b8d>] ___alloc_bootmem_nopanic+0x65/0xa0
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff815b4bd9>] ___alloc_bootmem+0x11/0x39
 [<ffffffff815b4c77>] __alloc_bootmem_low+0xe/0x10
 [<ffffffff815a4cbe>] acpi_reserve_bootmem+0x31/0x5e
 [<ffffffff8159ef58>] setup_arch+0x5c8/0x77d
 [<ffffffff815b32d8>] ? cgroup_init_subsys+0x32/0xe3
 [<ffffffff81331193>] ? _spin_lock+0xa/0xc
 [<ffffffff8105c707>] ? clockevents_register_notifier+0x36/0x3f
 [<ffffffff815979b8>] start_kernel+0x8d/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1 end=5 flags=1
found SMP MP-table at [ffff8800000fb8b0] 000fb8b0
bootmem::mark_bootmem_node nid=0 start=fb end=fd reserve=1 flags=0
bootmem::__reserve nid=0 start=fb end=fd flags=0
bootmem::__reserve silent double reserve of PFN fb
bootmem::__reserve silent double reserve of PFN fc
bootmem::mark_bootmem_node nid=0 start=fb end=fd reserve=1 flags=0
bootmem::__reserve nid=0 start=fb end=fd flags=0
bootmem::__reserve silent double reserve of PFN fb
bootmem::__reserve silent double reserve of PFN fc
bootmem::alloc_bootmem_core nid=0 size=1000 [1 pages] align=80 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff815b4c1d>] ___alloc_bootmem_node+0x1c/0x3b
 [<ffffffff815b4c67>] __alloc_bootmem_node+0x13/0x15
 [<ffffffff8131eebe>] sparse_index_alloc+0x55/0x70
 [<ffffffff815b6db5>] memory_present+0x65/0xc6
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff815b56cb>] sparse_memory_present_with_active_regions+0x5c/0x8f
 [<ffffffff815aeec4>] paging_init+0x3e/0x52
 [<ffffffff8159f051>] setup_arch+0x6c1/0x77d
 [<ffffffff815b32d8>] ? cgroup_init_subsys+0x32/0xe3
 [<ffffffff81331193>] ? _spin_lock+0xa/0xc
 [<ffffffff815979b8>] start_kernel+0x8d/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1000 end=1001 flags=1
bootmem::alloc_bootmem_core nid=0 size=100000 [256 pages] align=80 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff815b4b8d>] ___alloc_bootmem_nopanic+0x65/0xa0
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff815b4bd9>] ___alloc_bootmem+0x11/0x39
 [<ffffffff815b4c84>] __alloc_bootmem+0xb/0xd
 [<ffffffff815b6b78>] sparse_init+0x35/0x18a
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff815aeec9>] paging_init+0x43/0x52
 [<ffffffff8159f051>] setup_arch+0x6c1/0x77d
 [<ffffffff815b32d8>] ? cgroup_init_subsys+0x32/0xe3
 [<ffffffff81331193>] ? _spin_lock+0xa/0xc
 [<ffffffff815979b8>] start_kernel+0x8d/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1001 end=1101 flags=1
bootmem::alloc_bootmem_core nid=0 size=18 [1 pages] align=80 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff815b4b8d>] ? ___alloc_bootmem_nopanic+0x65/0xa0
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff815b4c1d>] ___alloc_bootmem_node+0x1c/0x3b
 [<ffffffff815b4c67>] __alloc_bootmem_node+0x13/0x15
 [<ffffffff815b6bd2>] sparse_init+0x8f/0x18a
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff815aeec9>] paging_init+0x43/0x52
 [<ffffffff8159f051>] setup_arch+0x6c1/0x77d
 [<ffffffff815b32d8>] ? cgroup_init_subsys+0x32/0xe3
 [<ffffffff81331193>] ? _spin_lock+0xa/0xc
 [<ffffffff815979b8>] start_kernel+0x8d/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1101 end=1102 flags=1
bootmem::alloc_bootmem_core nid=0 size=18 [1 pages] align=80 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff815b4c1d>] ___alloc_bootmem_node+0x1c/0x3b
 [<ffffffff815b4c67>] __alloc_bootmem_node+0x13/0x15
 [<ffffffff815b6bd2>] sparse_init+0x8f/0x18a
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff815aeec9>] paging_init+0x43/0x52
 [<ffffffff8159f051>] setup_arch+0x6c1/0x77d
 [<ffffffff815b32d8>] ? cgroup_init_subsys+0x32/0xe3
 [<ffffffff81331193>] ? _spin_lock+0xa/0xc
 [<ffffffff815979b8>] start_kernel+0x8d/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1102 end=1102 flags=1
bootmem::alloc_bootmem_core nid=0 size=18 [1 pages] align=80 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff815b4c1d>] ___alloc_bootmem_node+0x1c/0x3b
 [<ffffffff815b4c67>] __alloc_bootmem_node+0x13/0x15
 [<ffffffff815b6bd2>] sparse_init+0x8f/0x18a
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff815aeec9>] paging_init+0x43/0x52
 [<ffffffff8159f051>] setup_arch+0x6c1/0x77d
 [<ffffffff815b32d8>] ? cgroup_init_subsys+0x32/0xe3
 [<ffffffff81331193>] ? _spin_lock+0xa/0xc
 [<ffffffff815979b8>] start_kernel+0x8d/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1102 end=1102 flags=1
bootmem::alloc_bootmem_core nid=0 size=18 [1 pages] align=80 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff815b4c1d>] ___alloc_bootmem_node+0x1c/0x3b
 [<ffffffff815b4c67>] __alloc_bootmem_node+0x13/0x15
 [<ffffffff815b6bd2>] sparse_init+0x8f/0x18a
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff815aeec9>] paging_init+0x43/0x52
 [<ffffffff8159f051>] setup_arch+0x6c1/0x77d
 [<ffffffff815b32d8>] ? cgroup_init_subsys+0x32/0xe3
 [<ffffffff81331193>] ? _spin_lock+0xa/0xc
 [<ffffffff815979b8>] start_kernel+0x8d/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1102 end=1102 flags=1
bootmem::alloc_bootmem_core nid=0 size=1000 [1 pages] align=1000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff81012124>] ? dump_trace+0x24a/0x259
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff815b4c1d>] ___alloc_bootmem_node+0x1c/0x3b
 [<ffffffff815b4c67>] __alloc_bootmem_node+0x13/0x15
 [<ffffffff8131eeed>] __earlyonly_bootmem_alloc+0x14/0x16
 [<ffffffff815cb652>] vmemmap_alloc_block+0xc0/0xc9
 [<ffffffff815cb698>] vmemmap_pgd_populate+0x3d/0x8f
 [<ffffffff815ca2f7>] vmemmap_populate+0x3d/0x24e
 [<ffffffff815cb530>] sparse_mem_map_populate+0x2d/0x3f
 [<ffffffff815b6c3a>] sparse_init+0xf7/0x18a
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff815aeec9>] paging_init+0x43/0x52
 [<ffffffff8159f051>] setup_arch+0x6c1/0x77d
 [<ffffffff815b32d8>] ? cgroup_init_subsys+0x32/0xe3
 [<ffffffff81331193>] ? _spin_lock+0xa/0xc
 [<ffffffff815979b8>] start_kernel+0x8d/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1102 end=1103 flags=1
bootmem::alloc_bootmem_core nid=0 size=1000 [1 pages] align=1000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b470b>] ? __reserve+0x6d/0xd6
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff815b4aca>] ? alloc_bootmem_core+0x252/0x2b0
 [<ffffffff815b4c1d>] ___alloc_bootmem_node+0x1c/0x3b
 [<ffffffff815b4c67>] __alloc_bootmem_node+0x13/0x15
 [<ffffffff8131eeed>] __earlyonly_bootmem_alloc+0x14/0x16
 [<ffffffff815cb652>] vmemmap_alloc_block+0xc0/0xc9
 [<ffffffff815cb751>] vmemmap_pud_populate+0x67/0xbe
 [<ffffffff815cb6e0>] ? vmemmap_pgd_populate+0x85/0x8f
 [<ffffffff815ca30e>] vmemmap_populate+0x54/0x24e
 [<ffffffff815cb530>] sparse_mem_map_populate+0x2d/0x3f
 [<ffffffff815b6c3a>] sparse_init+0xf7/0x18a
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff815aeec9>] paging_init+0x43/0x52
 [<ffffffff8159f051>] setup_arch+0x6c1/0x77d
 [<ffffffff815b32d8>] ? cgroup_init_subsys+0x32/0xe3
 [<ffffffff81331193>] ? _spin_lock+0xa/0xc
 [<ffffffff815979b8>] start_kernel+0x8d/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1103 end=1104 flags=1
bootmem::alloc_bootmem_core nid=0 size=200000 [512 pages] align=200000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff815b4c1d>] ? ___alloc_bootmem_node+0x1c/0x3b
 [<ffffffff815b4c1d>] ___alloc_bootmem_node+0x1c/0x3b
 [<ffffffff815b4c67>] __alloc_bootmem_node+0x13/0x15
 [<ffffffff8131eeed>] __earlyonly_bootmem_alloc+0x14/0x16
 [<ffffffff815cb652>] vmemmap_alloc_block+0xc0/0xc9
 [<ffffffff815ca401>] vmemmap_populate+0x147/0x24e
 [<ffffffff815cb530>] sparse_mem_map_populate+0x2d/0x3f
 [<ffffffff815b6c3a>] sparse_init+0xf7/0x18a
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff815aeec9>] paging_init+0x43/0x52
 [<ffffffff8159f051>] setup_arch+0x6c1/0x77d
 [<ffffffff815b32d8>] ? cgroup_init_subsys+0x32/0xe3
 [<ffffffff81331193>] ? _spin_lock+0xa/0xc
 [<ffffffff815979b8>] start_kernel+0x8d/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1200 end=1400 flags=1
bootmem::alloc_bootmem_core nid=0 size=200000 [512 pages] align=200000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff815b4c1d>] ? ___alloc_bootmem_node+0x1c/0x3b
 [<ffffffff815b4c1d>] ___alloc_bootmem_node+0x1c/0x3b
 [<ffffffff815b4c67>] __alloc_bootmem_node+0x13/0x15
 [<ffffffff8131eeed>] __earlyonly_bootmem_alloc+0x14/0x16
 [<ffffffff815cb652>] vmemmap_alloc_block+0xc0/0xc9
 [<ffffffff815ca401>] vmemmap_populate+0x147/0x24e
 [<ffffffff815cb530>] sparse_mem_map_populate+0x2d/0x3f
 [<ffffffff815b6c3a>] sparse_init+0xf7/0x18a
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff815aeec9>] paging_init+0x43/0x52
 [<ffffffff8159f051>] setup_arch+0x6c1/0x77d
 [<ffffffff815b32d8>] ? cgroup_init_subsys+0x32/0xe3
 [<ffffffff81331193>] ? _spin_lock+0xa/0xc
 [<ffffffff815979b8>] start_kernel+0x8d/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1400 end=1600 flags=1
bootmem::alloc_bootmem_core nid=0 size=200000 [512 pages] align=200000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff815b4c1d>] ? ___alloc_bootmem_node+0x1c/0x3b
 [<ffffffff815b4c1d>] ___alloc_bootmem_node+0x1c/0x3b
 [<ffffffff815b4c67>] __alloc_bootmem_node+0x13/0x15
 [<ffffffff8131eeed>] __earlyonly_bootmem_alloc+0x14/0x16
 [<ffffffff815cb652>] vmemmap_alloc_block+0xc0/0xc9
 [<ffffffff815ca401>] vmemmap_populate+0x147/0x24e
 [<ffffffff815cb530>] sparse_mem_map_populate+0x2d/0x3f
 [<ffffffff815b6c3a>] sparse_init+0xf7/0x18a
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff815aeec9>] paging_init+0x43/0x52
 [<ffffffff8159f051>] setup_arch+0x6c1/0x77d
 [<ffffffff815b32d8>] ? cgroup_init_subsys+0x32/0xe3
 [<ffffffff81331193>] ? _spin_lock+0xa/0xc
 [<ffffffff815979b8>] start_kernel+0x8d/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1600 end=1800 flags=1
bootmem::alloc_bootmem_core nid=0 size=200000 [512 pages] align=200000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff815b4c1d>] ? ___alloc_bootmem_node+0x1c/0x3b
 [<ffffffff815b4c1d>] ___alloc_bootmem_node+0x1c/0x3b
 [<ffffffff815b4c67>] __alloc_bootmem_node+0x13/0x15
 [<ffffffff8131eeed>] __earlyonly_bootmem_alloc+0x14/0x16
 [<ffffffff815cb652>] vmemmap_alloc_block+0xc0/0xc9
 [<ffffffff815ca401>] vmemmap_populate+0x147/0x24e
 [<ffffffff815cb530>] sparse_mem_map_populate+0x2d/0x3f
 [<ffffffff815b6c3a>] sparse_init+0xf7/0x18a
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff815aeec9>] paging_init+0x43/0x52
 [<ffffffff8159f051>] setup_arch+0x6c1/0x77d
 [<ffffffff815b32d8>] ? cgroup_init_subsys+0x32/0xe3
 [<ffffffff81331193>] ? _spin_lock+0xa/0xc
 [<ffffffff815979b8>] start_kernel+0x8d/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1800 end=1a00 flags=1
 [ffffe20000000000-ffffe200007fffff] PMD -> [ffff880001200000-ffff8800019fffff] on node 0
bootmem::mark_bootmem_node nid=0 start=1001 end=1101 reserve=0 flags=0
bootmem::__free nid=0 start=1001 end=1101
Zone PFN ranges:
  DMA      0x00000000 -> 0x00001000
  DMA32    0x00001000 -> 0x00100000
  Normal   0x00100000 -> 0x00100000
Movable zone start PFN for each node
early_node_map[2] active PFN ranges
    0: 0x00000000 -> 0x0000009f
    0: 0x00000100 -> 0x0001fff0
On node 0 totalpages: 130959
  DMA zone: 1765 pages, LIFO batch:0
bootmem::alloc_bootmem_core nid=0 size=180 [1 pages] align=80 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff815b4c1d>] ___alloc_bootmem_node+0x1c/0x3b
 [<ffffffff815b4c67>] __alloc_bootmem_node+0x13/0x15
 [<ffffffff8131ee12>] zone_wait_table_init+0x8a/0xe1
 [<ffffffff815cade4>] init_currently_empty_zone+0x29/0xfd
 [<ffffffff815cb354>] free_area_init_node+0x365/0x3b1
 [<ffffffff8116d39e>] ? __bitmap_weight+0x3e/0x89
 [<ffffffff8116bb3a>] ? generic_swap+0x0/0x23
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff815b5d0d>] free_area_init_nodes+0x4f6/0x545
 [<ffffffff815b6cc1>] ? sparse_init+0x17e/0x18a
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff815aeed1>] paging_init+0x4b/0x52
 [<ffffffff8159f051>] setup_arch+0x6c1/0x77d
 [<ffffffff815b32d8>] ? cgroup_init_subsys+0x32/0xe3
 [<ffffffff81331193>] ? _spin_lock+0xa/0xc
 [<ffffffff815979b8>] start_kernel+0x8d/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1001 end=1002 flags=1
  DMA32 zone: 125224 pages, LIFO batch:31
bootmem::alloc_bootmem_core nid=0 size=3000 [3 pages] align=80 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff815b4c1d>] ___alloc_bootmem_node+0x1c/0x3b
 [<ffffffff815b4c67>] __alloc_bootmem_node+0x13/0x15
 [<ffffffff8131ee12>] zone_wait_table_init+0x8a/0xe1
 [<ffffffff815cade4>] init_currently_empty_zone+0x29/0xfd
 [<ffffffff815cb354>] free_area_init_node+0x365/0x3b1
 [<ffffffff8116d39e>] ? __bitmap_weight+0x3e/0x89
 [<ffffffff8116bb3a>] ? generic_swap+0x0/0x23
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff815b5d0d>] free_area_init_nodes+0x4f6/0x545
 [<ffffffff815b6cc1>] ? sparse_init+0x17e/0x18a
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff815aeed1>] paging_init+0x4b/0x52
 [<ffffffff8159f051>] setup_arch+0x6c1/0x77d
 [<ffffffff815b32d8>] ? cgroup_init_subsys+0x32/0xe3
 [<ffffffff81331193>] ? _spin_lock+0xa/0xc
 [<ffffffff815979b8>] start_kernel+0x8d/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1002 end=1005 flags=1
bootmem::alloc_bootmem_core nid=0 size=1000 [1 pages] align=1000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4aca>] ? alloc_bootmem_core+0x252/0x2b0
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff815b4b8d>] ___alloc_bootmem_nopanic+0x65/0xa0
 [<ffffffff815b4bd9>] ___alloc_bootmem+0x11/0x39
 [<ffffffff815b4c84>] __alloc_bootmem+0xb/0xd
 [<ffffffff8131e908>] spp_getpage+0x3a/0x6f
 [<ffffffff8102a496>] set_pte_vaddr_pud+0x11f/0x251
 [<ffffffff8116d39e>] ? __bitmap_weight+0x3e/0x89
 [<ffffffff8116bb3a>] ? generic_swap+0x0/0x23
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff8102a63a>] set_pte_vaddr+0x72/0x80
 [<ffffffff815b5d38>] ? free_area_init_nodes+0x521/0x545
 [<ffffffff815b6cc1>] ? sparse_init+0x17e/0x18a
 [<ffffffff8102d281>] __native_set_fixmap+0x24/0x2c
 [<ffffffff8102d2be>] native_set_fixmap+0x35/0x3c
 [<ffffffff8159f76f>] map_vsyscall+0x23/0x25
 [<ffffffff8159f071>] setup_arch+0x6e1/0x77d
 [<ffffffff815b32d8>] ? cgroup_init_subsys+0x32/0xe3
 [<ffffffff81331193>] ? _spin_lock+0xa/0xc
 [<ffffffff815979b8>] start_kernel+0x8d/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1005 end=1006 flags=1
ACPI: PM-Timer IO Port: 0xb008
ACPI: Local APIC address 0xfee00000
ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] disabled)
ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] disabled)
ACPI: LAPIC (acpi_id[0x03] lapic_id[0x03] disabled)
ACPI: LAPIC (acpi_id[0x04] lapic_id[0x04] disabled)
ACPI: LAPIC (acpi_id[0x05] lapic_id[0x05] disabled)
ACPI: LAPIC (acpi_id[0x06] lapic_id[0x06] disabled)
ACPI: LAPIC (acpi_id[0x07] lapic_id[0x07] disabled)
ACPI: LAPIC (acpi_id[0x08] lapic_id[0x08] disabled)
ACPI: LAPIC (acpi_id[0x09] lapic_id[0x09] disabled)
ACPI: LAPIC (acpi_id[0x0a] lapic_id[0x0a] disabled)
ACPI: LAPIC (acpi_id[0x0b] lapic_id[0x0b] disabled)
ACPI: LAPIC (acpi_id[0x0c] lapic_id[0x0c] disabled)
ACPI: LAPIC (acpi_id[0x0d] lapic_id[0x0d] disabled)
ACPI: LAPIC (acpi_id[0x0e] lapic_id[0x0e] disabled)
ACPI: LAPIC (acpi_id[0x0f] lapic_id[0x0f] disabled)
ACPI: IOAPIC (id[0x01] address[0xfec00000] gsi_base[0])
IOAPIC[0]: apic_id 1, version 0, address 0xfec00000, GSI 0-23
ACPI: INT_SRC_OVR (bus 0 bus_irq 5 global_irq 5 high level)
ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
ACPI: INT_SRC_OVR (bus 0 bus_irq 10 global_irq 10 high level)
ACPI: INT_SRC_OVR (bus 0 bus_irq 11 global_irq 11 high level)
ACPI: IRQ5 used by override.
ACPI: IRQ9 used by override.
ACPI: IRQ10 used by override.
ACPI: IRQ11 used by override.
Setting APIC routing to flat
Using ACPI (MADT) for SMP configuration information
SMP: Allowing 16 CPUs, 15 hotplug CPUs
bootmem::alloc_bootmem_core nid=0 size=43 [1 pages] align=80 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff8102d2be>] ? native_set_fixmap+0x35/0x3c
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff8102a5b9>] ? set_pte_vaddr_pud+0x242/0x251
 [<ffffffff8132ee8a>] ? printk+0x67/0x6d
 [<ffffffff815b4b8d>] ___alloc_bootmem_nopanic+0x65/0xa0
 [<ffffffff815b4bd9>] ___alloc_bootmem+0x11/0x39
 [<ffffffff815b4c84>] __alloc_bootmem+0xb/0xd
 [<ffffffff815a7f2b>] ioapic_init_mappings+0x41/0x16a
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff8159f09d>] setup_arch+0x70d/0x77d
 [<ffffffff815b32d8>] ? cgroup_init_subsys+0x32/0xe3
 [<ffffffff81331193>] ? _spin_lock+0xa/0xc
 [<ffffffff815979b8>] start_kernel+0x8d/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1006 end=1007 flags=1
bootmem::alloc_bootmem_core nid=0 size=150 [1 pages] align=80 goal=0 limit=ffffffff
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff8102a5b9>] ? set_pte_vaddr_pud+0x242/0x251
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff815b4b8d>] ___alloc_bootmem_nopanic+0x65/0xa0
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff815b4bd9>] ___alloc_bootmem+0x11/0x39
 [<ffffffff815b4c77>] __alloc_bootmem_low+0xe/0x10
 [<ffffffff815a0004>] e820_reserve_resources+0x2d/0x124
 [<ffffffff8159f0a7>] setup_arch+0x717/0x77d
 [<ffffffff815b32d8>] ? cgroup_init_subsys+0x32/0xe3
 [<ffffffff81331193>] ? _spin_lock+0xa/0xc
 [<ffffffff815979b8>] start_kernel+0x8d/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1007 end=1007 flags=1
bootmem::alloc_bootmem_core nid=0 size=68 [1 pages] align=80 goal=0 limit=ffffffff
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff81012ce8>] ? show_trace+0x10/0x14
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff815b4aca>] ? alloc_bootmem_core+0x252/0x2b0
 [<ffffffff815b4b8d>] ___alloc_bootmem_nopanic+0x65/0xa0
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff815b4bd9>] ___alloc_bootmem+0x11/0x39
 [<ffffffff815b4c77>] __alloc_bootmem_low+0xe/0x10
 [<ffffffff815c4272>] firmware_map_add_early+0x27/0x5d
 [<ffffffff815a00ea>] e820_reserve_resources+0x113/0x124
 [<ffffffff8159f0a7>] setup_arch+0x717/0x77d
 [<ffffffff815b32d8>] ? cgroup_init_subsys+0x32/0xe3
 [<ffffffff81331193>] ? _spin_lock+0xa/0xc
 [<ffffffff815979b8>] start_kernel+0x8d/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1007 end=1007 flags=1
bootmem::alloc_bootmem_core nid=0 size=68 [1 pages] align=80 goal=0 limit=ffffffff
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff815b4b8d>] ___alloc_bootmem_nopanic+0x65/0xa0
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff815b4bd9>] ___alloc_bootmem+0x11/0x39
 [<ffffffff815b4c77>] __alloc_bootmem_low+0xe/0x10
 [<ffffffff815c4272>] firmware_map_add_early+0x27/0x5d
 [<ffffffff815a00ea>] e820_reserve_resources+0x113/0x124
 [<ffffffff8159f0a7>] setup_arch+0x717/0x77d
 [<ffffffff815b32d8>] ? cgroup_init_subsys+0x32/0xe3
 [<ffffffff81331193>] ? _spin_lock+0xa/0xc
 [<ffffffff815979b8>] start_kernel+0x8d/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1007 end=1007 flags=1
bootmem::alloc_bootmem_core nid=0 size=68 [1 pages] align=80 goal=0 limit=ffffffff
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff815b4b8d>] ___alloc_bootmem_nopanic+0x65/0xa0
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff815b4bd9>] ___alloc_bootmem+0x11/0x39
 [<ffffffff815b4c77>] __alloc_bootmem_low+0xe/0x10
 [<ffffffff815c4272>] firmware_map_add_early+0x27/0x5d
 [<ffffffff815a00ea>] e820_reserve_resources+0x113/0x124
 [<ffffffff8159f0a7>] setup_arch+0x717/0x77d
 [<ffffffff815b32d8>] ? cgroup_init_subsys+0x32/0xe3
 [<ffffffff81331193>] ? _spin_lock+0xa/0xc
 [<ffffffff815979b8>] start_kernel+0x8d/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1007 end=1007 flags=1
bootmem::alloc_bootmem_core nid=0 size=68 [1 pages] align=80 goal=0 limit=ffffffff
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff815b4b8d>] ___alloc_bootmem_nopanic+0x65/0xa0
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff815b4bd9>] ___alloc_bootmem+0x11/0x39
 [<ffffffff815b4c77>] __alloc_bootmem_low+0xe/0x10
 [<ffffffff815c4272>] firmware_map_add_early+0x27/0x5d
 [<ffffffff815a00ea>] e820_reserve_resources+0x113/0x124
 [<ffffffff8159f0a7>] setup_arch+0x717/0x77d
 [<ffffffff815b32d8>] ? cgroup_init_subsys+0x32/0xe3
 [<ffffffff81331193>] ? _spin_lock+0xa/0xc
 [<ffffffff815979b8>] start_kernel+0x8d/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1007 end=1007 flags=1
bootmem::alloc_bootmem_core nid=0 size=68 [1 pages] align=80 goal=0 limit=ffffffff
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff815b4b8d>] ___alloc_bootmem_nopanic+0x65/0xa0
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff815b4bd9>] ___alloc_bootmem+0x11/0x39
 [<ffffffff815b4c77>] __alloc_bootmem_low+0xe/0x10
 [<ffffffff815c4272>] firmware_map_add_early+0x27/0x5d
 [<ffffffff815a00ea>] e820_reserve_resources+0x113/0x124
 [<ffffffff8159f0a7>] setup_arch+0x717/0x77d
 [<ffffffff815b32d8>] ? cgroup_init_subsys+0x32/0xe3
 [<ffffffff81331193>] ? _spin_lock+0xa/0xc
 [<ffffffff815979b8>] start_kernel+0x8d/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1007 end=1007 flags=1
bootmem::alloc_bootmem_core nid=0 size=68 [1 pages] align=80 goal=0 limit=ffffffff
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff815b4b8d>] ___alloc_bootmem_nopanic+0x65/0xa0
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff815b4bd9>] ___alloc_bootmem+0x11/0x39
 [<ffffffff815b4c77>] __alloc_bootmem_low+0xe/0x10
 [<ffffffff815c4272>] firmware_map_add_early+0x27/0x5d
 [<ffffffff815a00ea>] e820_reserve_resources+0x113/0x124
 [<ffffffff8159f0a7>] setup_arch+0x717/0x77d
 [<ffffffff815b32d8>] ? cgroup_init_subsys+0x32/0xe3
 [<ffffffff81331193>] ? _spin_lock+0xa/0xc
 [<ffffffff815979b8>] start_kernel+0x8d/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1007 end=1007 flags=1
bootmem::alloc_bootmem_core nid=0 size=20 [1 pages] align=80 goal=0 limit=ffffffff
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff815b4b8d>] ___alloc_bootmem_nopanic+0x65/0xa0
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff815b4bd9>] ___alloc_bootmem+0x11/0x39
 [<ffffffff815b4c77>] __alloc_bootmem_low+0xe/0x10
 [<ffffffff815b2bc4>] __register_nosave_region+0x65/0xa4
 [<ffffffff815a05a0>] e820_mark_nosave_regions+0x4d/0x9f
 [<ffffffff8159f0ba>] setup_arch+0x72a/0x77d
 [<ffffffff815b32d8>] ? cgroup_init_subsys+0x32/0xe3
 [<ffffffff81331193>] ? _spin_lock+0xa/0xc
 [<ffffffff815979b8>] start_kernel+0x8d/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1007 end=1007 flags=1
PM: Registered nosave memory: 000000000009f000 - 00000000000a0000
PM: Registered nosave memory: 00000000000a0000 - 00000000000e8000
PM: Registered nosave memory: 00000000000e8000 - 0000000000100000
Allocating PCI resources starting at 30000000 (gap: 20000000:dffbd000)
bootmem::alloc_bootmem_core nid=0 size=2f [1 pages] align=80 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff815b4b8d>] ___alloc_bootmem_nopanic+0x65/0xa0
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff815b4bd9>] ___alloc_bootmem+0x11/0x39
 [<ffffffff815b4c84>] __alloc_bootmem+0xb/0xd
 [<ffffffff815979e9>] start_kernel+0xbe/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1007 end=1007 flags=1
bootmem::alloc_bootmem_core nid=0 size=2f [1 pages] align=80 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff815b4b8d>] ___alloc_bootmem_nopanic+0x65/0xa0
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff815b4bd9>] ___alloc_bootmem+0x11/0x39
 [<ffffffff815b4c84>] __alloc_bootmem+0xb/0xd
 [<ffffffff81597a20>] start_kernel+0xf5/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1007 end=1007 flags=1
bootmem::alloc_bootmem_core nid=0 size=800 [1 pages] align=80 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff815b4b8d>] ___alloc_bootmem_nopanic+0x65/0xa0
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff815b4bd9>] ___alloc_bootmem+0x11/0x39
 [<ffffffff815b4c84>] __alloc_bootmem+0xb/0xd
 [<ffffffff8159f40b>] setup_per_cpu_areas+0x7d/0x352
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff81597a4a>] start_kernel+0x11f/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1007 end=1007 flags=1
PERCPU: Allocating 65184 bytes of per cpu data
bootmem::alloc_bootmem_core nid=0 size=fea0 [16 pages] align=1000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff815b4b8d>] ? ___alloc_bootmem_nopanic+0x65/0xa0
 [<ffffffff815b4c1d>] ___alloc_bootmem_node+0x1c/0x3b
 [<ffffffff815b4c67>] __alloc_bootmem_node+0x13/0x15
 [<ffffffff8159f53e>] setup_per_cpu_areas+0x1b0/0x352
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff81597a4a>] start_kernel+0x11f/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1007 end=1017 flags=1
bootmem::alloc_bootmem_core nid=0 size=fea0 [16 pages] align=1000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff815b4c1d>] ___alloc_bootmem_node+0x1c/0x3b
 [<ffffffff815b4c67>] __alloc_bootmem_node+0x13/0x15
 [<ffffffff8159f53e>] setup_per_cpu_areas+0x1b0/0x352
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff81597a4a>] start_kernel+0x11f/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1017 end=1027 flags=1
bootmem::alloc_bootmem_core nid=0 size=fea0 [16 pages] align=1000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff815b4c1d>] ___alloc_bootmem_node+0x1c/0x3b
 [<ffffffff815b4c67>] __alloc_bootmem_node+0x13/0x15
 [<ffffffff8159f53e>] setup_per_cpu_areas+0x1b0/0x352
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff81597a4a>] start_kernel+0x11f/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1027 end=1037 flags=1
bootmem::alloc_bootmem_core nid=0 size=fea0 [16 pages] align=1000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff815b4c1d>] ___alloc_bootmem_node+0x1c/0x3b
 [<ffffffff815b4c67>] __alloc_bootmem_node+0x13/0x15
 [<ffffffff8159f53e>] setup_per_cpu_areas+0x1b0/0x352
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff81597a4a>] start_kernel+0x11f/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1037 end=1047 flags=1
bootmem::alloc_bootmem_core nid=0 size=fea0 [16 pages] align=1000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff815b4c1d>] ___alloc_bootmem_node+0x1c/0x3b
 [<ffffffff815b4c67>] __alloc_bootmem_node+0x13/0x15
 [<ffffffff8159f53e>] setup_per_cpu_areas+0x1b0/0x352
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff81597a4a>] start_kernel+0x11f/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1047 end=1057 flags=1
bootmem::alloc_bootmem_core nid=0 size=fea0 [16 pages] align=1000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff815b4c1d>] ___alloc_bootmem_node+0x1c/0x3b
 [<ffffffff815b4c67>] __alloc_bootmem_node+0x13/0x15
 [<ffffffff8159f53e>] setup_per_cpu_areas+0x1b0/0x352
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff81597a4a>] start_kernel+0x11f/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1057 end=1067 flags=1
bootmem::alloc_bootmem_core nid=0 size=fea0 [16 pages] align=1000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff815b4c1d>] ___alloc_bootmem_node+0x1c/0x3b
 [<ffffffff815b4c67>] __alloc_bootmem_node+0x13/0x15
 [<ffffffff8159f53e>] setup_per_cpu_areas+0x1b0/0x352
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff81597a4a>] start_kernel+0x11f/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1067 end=1077 flags=1
bootmem::alloc_bootmem_core nid=0 size=fea0 [16 pages] align=1000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff815b4c1d>] ___alloc_bootmem_node+0x1c/0x3b
 [<ffffffff815b4c67>] __alloc_bootmem_node+0x13/0x15
 [<ffffffff8159f53e>] setup_per_cpu_areas+0x1b0/0x352
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff81597a4a>] start_kernel+0x11f/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1077 end=1087 flags=1
bootmem::alloc_bootmem_core nid=0 size=fea0 [16 pages] align=1000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff815b4c1d>] ___alloc_bootmem_node+0x1c/0x3b
 [<ffffffff815b4c67>] __alloc_bootmem_node+0x13/0x15
 [<ffffffff8159f53e>] setup_per_cpu_areas+0x1b0/0x352
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff81597a4a>] start_kernel+0x11f/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1087 end=1097 flags=1
bootmem::alloc_bootmem_core nid=0 size=fea0 [16 pages] align=1000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff815b4c1d>] ___alloc_bootmem_node+0x1c/0x3b
 [<ffffffff815b4c67>] __alloc_bootmem_node+0x13/0x15
 [<ffffffff8159f53e>] setup_per_cpu_areas+0x1b0/0x352
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff81597a4a>] start_kernel+0x11f/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1097 end=10a7 flags=1
bootmem::alloc_bootmem_core nid=0 size=fea0 [16 pages] align=1000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff815b4c1d>] ___alloc_bootmem_node+0x1c/0x3b
 [<ffffffff815b4c67>] __alloc_bootmem_node+0x13/0x15
 [<ffffffff8159f53e>] setup_per_cpu_areas+0x1b0/0x352
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff81597a4a>] start_kernel+0x11f/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=10a7 end=10b7 flags=1
bootmem::alloc_bootmem_core nid=0 size=fea0 [16 pages] align=1000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff815b4c1d>] ___alloc_bootmem_node+0x1c/0x3b
 [<ffffffff815b4c67>] __alloc_bootmem_node+0x13/0x15
 [<ffffffff8159f53e>] setup_per_cpu_areas+0x1b0/0x352
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff81597a4a>] start_kernel+0x11f/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=10b7 end=10c7 flags=1
bootmem::alloc_bootmem_core nid=0 size=fea0 [16 pages] align=1000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff815b4c1d>] ___alloc_bootmem_node+0x1c/0x3b
 [<ffffffff815b4c67>] __alloc_bootmem_node+0x13/0x15
 [<ffffffff8159f53e>] setup_per_cpu_areas+0x1b0/0x352
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff81597a4a>] start_kernel+0x11f/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=10c7 end=10d7 flags=1
bootmem::alloc_bootmem_core nid=0 size=fea0 [16 pages] align=1000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff815b4c1d>] ___alloc_bootmem_node+0x1c/0x3b
 [<ffffffff815b4c67>] __alloc_bootmem_node+0x13/0x15
 [<ffffffff8159f53e>] setup_per_cpu_areas+0x1b0/0x352
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff81597a4a>] start_kernel+0x11f/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=10d7 end=10e7 flags=1
bootmem::alloc_bootmem_core nid=0 size=fea0 [16 pages] align=1000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff815b4c1d>] ___alloc_bootmem_node+0x1c/0x3b
 [<ffffffff815b4c67>] __alloc_bootmem_node+0x13/0x15
 [<ffffffff8159f53e>] setup_per_cpu_areas+0x1b0/0x352
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff81597a4a>] start_kernel+0x11f/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=10e7 end=10f7 flags=1
bootmem::alloc_bootmem_core nid=0 size=fea0 [16 pages] align=1000 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff815b4c1d>] ___alloc_bootmem_node+0x1c/0x3b
 [<ffffffff815b4c67>] __alloc_bootmem_node+0x13/0x15
 [<ffffffff8159f53e>] setup_per_cpu_areas+0x1b0/0x352
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff81597a4a>] start_kernel+0x11f/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1104 end=1114 flags=1
NR_CPUS: 64, nr_cpu_ids: 16, nr_node_ids 1
bootmem::alloc_bootmem_core nid=0 size=8 [1 pages] align=80 goal=0 limit=ffffffff
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff815b4b8d>] ___alloc_bootmem_nopanic+0x65/0xa0
 [<ffffffff815b4bd9>] ___alloc_bootmem+0x11/0x39
 [<ffffffff815b4c77>] __alloc_bootmem_low+0xe/0x10
 [<ffffffff8159f6ca>] setup_per_cpu_areas+0x33c/0x352
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff81597a4a>] start_kernel+0x11f/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1114 end=1114 flags=1
bootmem::alloc_bootmem_core nid=0 size=200 [1 pages] align=80 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4aca>] ? alloc_bootmem_core+0x252/0x2b0
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff815b4b8d>] ___alloc_bootmem_nopanic+0x65/0xa0
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff815b4bd9>] ___alloc_bootmem+0x11/0x39
 [<ffffffff815b4c84>] __alloc_bootmem+0xb/0xd
 [<ffffffff815b0a0b>] sched_init+0x3d/0x547
 [<ffffffff81597a78>] start_kernel+0x14d/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1114 end=1115 flags=1
Built 1 zonelists in Node order, mobility grouping on.  Total pages: 126989
Policy zone: DMA32
Kernel command line: ro root=/dev/VolGroup00/LogVol00 bootmem_debug
Initializing CPU#0
PID hash table entries: 2048 (order: 11, 16384 bytes)
bootmem::alloc_bootmem_core nid=0 size=4000 [4 pages] align=80 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff81080b2a>] ? __set_irq_handler+0x131/0x140
 [<ffffffff815b4b8d>] ___alloc_bootmem_nopanic+0x65/0xa0
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff815b4bd9>] ___alloc_bootmem+0x11/0x39
 [<ffffffff815b4c84>] __alloc_bootmem+0xb/0xd
 [<ffffffff815b1aa5>] pidhash_init+0x81/0xb8
 [<ffffffff81597b1e>] start_kernel+0x1f3/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1115 end=1119 flags=1
TSC: PIT calibration confirmed by PMTIMER.
TSC: using PIT calibration value
Detected 2199.870 MHz processor.
bootmem::alloc_bootmem_core nid=0 size=10000 [16 pages] align=80 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff81012ce8>] ? show_trace+0x10/0x14
 [<ffffffff81016b0b>] ? tsc_read_refs+0x5a/0x82
 [<ffffffff815b4b8d>] ___alloc_bootmem_nopanic+0x65/0xa0
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff815b4bd9>] ___alloc_bootmem+0x11/0x39
 [<ffffffff815b4c84>] __alloc_bootmem+0xb/0xd
 [<ffffffff813200af>] vgacon_scrollback_startup+0x29/0x7c
 [<ffffffff8118a340>] vgacon_startup+0x377/0x38f
 [<ffffffff815bf6a0>] con_init+0x1b/0x21c
 [<ffffffff815bf007>] console_init+0x19/0x2b
 [<ffffffff81597b73>] start_kernel+0x248/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1119 end=1129 flags=1
bootmem::alloc_bootmem_core nid=0 size=1b0 [1 pages] align=80 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff813314c2>] ? _spin_lock_irqsave+0x2b/0x33
 [<ffffffff815b4b8d>] ___alloc_bootmem_nopanic+0x65/0xa0
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff815b4bd9>] ___alloc_bootmem+0x11/0x39
 [<ffffffff815b4c84>] __alloc_bootmem+0xb/0xd
 [<ffffffff815bf768>] con_init+0xe3/0x21c
 [<ffffffff815bf007>] console_init+0x19/0x2b
 [<ffffffff81597b73>] start_kernel+0x248/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1129 end=1129 flags=1
bootmem::alloc_bootmem_core nid=0 size=fa0 [1 pages] align=80 goal=1000000 limit=0
Pid: 0, comm: swapper Not tainted 2.6.27.19 #1

Call Trace:
 [<ffffffff815b4938>] alloc_bootmem_core+0xc0/0x2b0
 [<ffffffff815b4b8d>] ___alloc_bootmem_nopanic+0x65/0xa0
 [<ffffffff81597140>] ? early_idt_handler+0x0/0x71
 [<ffffffff815b4bd9>] ___alloc_bootmem+0x11/0x39
 [<ffffffff815b4c84>] __alloc_bootmem+0xb/0xd
 [<ffffffff815bf7cc>] con_init+0x147/0x21c
 [<ffffffff815bf007>] console_init+0x19/0x2b
 [<ffffffff81597b73>] start_kernel+0x248/0x3aa
 [<ffffffff815972ba>] x86_64_start_reservations+0xa5/0xa9
 [<ffffffff815973ca>] x86_64_start_kernel+0xe9/0xf8

bootmem::__reserve nid=0 start=1129 end=112a flags=1
Console: colour VGA+ 80x25
console [tty0] enabled
Checking aperture...
No AGP bridge found
Calgary: detecting Calgary via BIOS EBDA area
Calgary: Unable to locate Rio Grande table in EBDA - bailing!
bootmem::free_all_bootmem_core nid=0 start=0 end=1fff0 aligned=1
bootmem::free_all_bootmem_core nid=0 released=1eb1a
Memory: 502888k/524224k available (3297k kernel code, 20948k reserved, 1812k data, 1252k init)
CPA: page pool initialized 1 of 1 pages preallocated
SLUB: Genslabs=13, HWalign=64, Order=0-3, MinObjects=0, CPUs=16, Nodes=1
Calibrating delay loop (skipped), value calculated using timer frequency.. 4399.74 BogoMIPS (lpj=2199870)
Security Framework initialized
SELinux:  Initializing.
SELinux:  Starting in permissive mode
Dentry cache hash table entries: 65536 (order: 7, 524288 bytes)
Inode-cache hash table entries: 32768 (order: 6, 262144 bytes)
Mount-cache hash table entries: 256
Initializing cgroup subsys ns
Initializing cgroup subsys cpuacct
Initializing cgroup subsys devices
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU 0/0 -> Node 0
SMP alternatives: switching to UP code
ACPI: Core revision 20080609
..TIMER: vector=0x30 apic1=0 pin1=0 apic2=-1 pin2=-1
CPU0: QEMU Virtual CPU version 0.9.1 stepping 03
Using local APIC timer interrupts.
APIC timer calibration result 59777751
Detected 59.777 MHz APIC timer.
Brought up 1 CPUs
Total of 1 processors activated (4399.74 BogoMIPS).
WARNING: This combination of AMDprocessors is not suitable for SMP.
CPU0 attaching NULL sched-domain.
net_namespace: 1552 bytes
Booting paravirtualized kernel on KVM
Time: 14:22:28  Date: 03/08/09
NET: Registered protocol family 16
No dock devices found.
ACPI: bus type pci registered
PCI: Using configuration type 1 for base access
ACPI: EC: Look up EC in DSDT
ACPI: Interpreter enabled
ACPI: (supports S0 S5)
ACPI: Using IOAPIC for interrupt routing
ACPI: PCI Root Bridge [PCI0] (0000:00)
PCI: 0000:00:01.1 reg 20 io port: [c000, c00f]
PCI: 0000:00:01.2 reg 20 io port: [c020, c03f]
pci 0000:00:01.3: quirk: region b000-b03f claimed by PIIX4 ACPI
pci 0000:00:01.3: quirk: region b100-b10f claimed by PIIX4 SMB
PCI: 0000:00:02.0 reg 10 32bit mmio: [f0000000, f1ffffff]
PCI: 0000:00:02.0 reg 14 32bit mmio: [f2000000, f2000fff]
PCI: 0000:00:03.0 reg 10 io port: [c040, c05f]
PCI: 0000:00:04.0 reg 10 io port: [c080, c0bf]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: PCI Interrupt Link [LNKA] (IRQs 5 *10 11)
ACPI: PCI Interrupt Link [LNKB] (IRQs 5 *10 11)
ACPI: PCI Interrupt Link [LNKC] (IRQs 5 10 *11)
ACPI: PCI Interrupt Link [LNKD] (IRQs 5 10 *11)
Linux Plug and Play Support v0.97 (c) Adam Belay
pnp: PnP ACPI init
ACPI: bus type pnp registered
pnp: PnP ACPI: found 5 devices
ACPI: ACPI bus type pnp unregistered
SCSI subsystem initialized
libata version 3.00 loaded.
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
PCI: Using ACPI for IRQ routing
NetLabel: Initializing
NetLabel:  domain hash size = 128
NetLabel:  protocols = UNLABELED CIPSOv4
NetLabel:  unlabeled traffic allowed by default
PCI-GART: No AMD northbridge found.
tracer: 1286 pages allocated for 65536 entries of 80 bytes
   actual entries 65586
bus: 00 index 0 io port: [0, ffff]
Switched to high resolution mode on CPU 0
bus: 00 index 1 mmio: [0, ffffffffffffffff]
NET: Registered protocol family 2
IP route cache hash table entries: 4096 (order: 3, 32768 bytes)
TCP established hash table entries: 16384 (order: 6, 262144 bytes)
TCP bind hash table entries: 16384 (order: 6, 262144 bytes)
TCP: Hash tables configured (established 16384 bind 16384)
TCP reno registered
NET: Registered protocol family 1
checking if image is initramfs... it is
Freeing initrd memory: 3177k freed
audit: initializing netlink socket (disabled)
type=2000 audit(1236522145.837:1): initialized
HugeTLB registered 2 MB page size, pre-allocated 0 pages
VFS: Disk quotas dquot_6.5.1
Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
msgmni has been set to 988
SELinux:  Registering netfilter hooks
Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered (default)
pci 0000:00:00.0: Limiting direct PCI/PCI transfers
pci 0000:00:01.0: Activating ISA DMA hang workarounds
pci 0000:00:02.0: Boot video device
pci_hotplug: PCI Hot Plug PCI Core version: 0.5
acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
acpiphp_glue: can't get bus number, assuming 0
decode_hpp: Could not get hotplug parameters. Use defaults
acpiphp: Slot [1] registered
acpiphp: Slot [2] registered
acpiphp: Slot [3] registered
acpiphp: Slot [4] registered
acpiphp: Slot [5] registered
acpiphp: Slot [6] registered
acpiphp: Slot [7] registered
acpiphp: Slot [8] registered
acpiphp: Slot [9] registered
acpiphp: Slot [10] registered
acpiphp: Slot [11] registered
acpiphp: Slot [12] registered
acpiphp: Slot [13] registered
acpiphp: Slot [14] registered
acpiphp: Slot [15] registered
acpiphp: Slot [16] registered
acpiphp: Slot [17] registered
acpiphp: Slot [18] registered
acpiphp: Slot [19] registered
acpiphp: Slot [20] registered
acpiphp: Slot [21] registered
acpiphp: Slot [22] registered
acpiphp: Slot [23] registered
acpiphp: Slot [24] registered
acpiphp: Slot [25] registered
acpiphp: Slot [26] registered
acpiphp: Slot [27] registered
acpiphp: Slot [28] registered
acpiphp: Slot [29] registered
acpiphp: Slot [30] registered
acpiphp: Slot [31] registered
input: Power Button (FF) as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input0
ACPI: Power Button (FF) [PWRF]
processor ACPI0007:00: registered as cooling_device0
Non-volatile memory driver v1.2
Linux agpgart interface v0.103
Serial: 8250/16550 driver4 ports, IRQ sharing enabled
brd: module loaded
loop: module loaded
input: Macintosh mouse button emulation as /devices/virtual/input/input1
Driver 'sd' needs updating - please use bus_type methods
Driver 'sr' needs updating - please use bus_type methods
ata_piix 0000:00:01.1: version 2.12
scsi0 : ata_piix
scsi1 : ata_piix
ata1: PATA max MWDMA2 cmd 0x1f0 ctl 0x3f6 bmdma 0xc000 irq 14
ata2: PATA max MWDMA2 cmd 0x170 ctl 0x376 bmdma 0xc008 irq 15
ata2.00: ATAPI: QEMU DVD-ROM, 0.9.1, max UDMA/100
ata2.00: configured for MWDMA2
isa bounce pool size: 16 pages
scsi 1:0:0:0: CD-ROM            QEMU     QEMU DVD-ROM     0.9. PQ: 0 ANSI: 5
sr0: scsi3-mmc drive: 4x/4x xa/form2 tray
Uniform CD-ROM driver Revision: 3.20
sr 1:0:0:0: Attached scsi CD-ROM sr0
sr 1:0:0:0: Attached scsi generic sg0 type 5
ohci_hcd: 2006 August 04 USB 1.1 'Open' Host Controller (OHCI) Driver
USB Universal Host Controller Interface driver v3.0
ACPI: PCI Interrupt Link [LNKD] enabled at IRQ 11
uhci_hcd 0000:00:01.2: PCI INT D -> Link[LNKD] -> GSI 11 (level, high) -> IRQ 11
uhci_hcd 0000:00:01.2: UHCI Host Controller
uhci_hcd 0000:00:01.2: new USB bus registered, assigned bus number 1
uhci_hcd 0000:00:01.2: irq 11, io base 0x0000c020
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
usb usb1: New USB device found, idVendor=1d6b, idProduct=0001
usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb1: Product: UHCI Host Controller
usb usb1: Manufacturer: Linux 2.6.27.19 uhci_hcd
usb usb1: SerialNumber: 0000:00:01.2
PNP: PS/2 Controller [PNP0303:KBD,PNP0f13:MOU] at 0x60,0x64 irq 1,12
serio: i8042 KBD port at 0x60,0x64 irq 1
serio: i8042 AUX port at 0x60,0x64 irq 12
mice: PS/2 mouse device common for all mice
rtc_cmos 00:01: rtc core: registered rtc_cmos as rtc0
rtc0: alarms up to one day
device-mapper: uevent: version 1.0.3
device-mapper: ioctl: 4.14.0-ioctl (2008-04-23) initialised: dm-devel@redhat.com
input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input2
cpuidle: using governor ladder
cpuidle: using governor menu
usbcore: registered new interface driver hiddev
usbcore: registered new interface driver usbhid
usbhid: v2.6:USB HID core driver
nf_conntrack version 0.5.0 (4096 buckets, 16384 max)
CONFIG_NF_CT_ACCT is deprecated and will be removed soon. Plase use
nf_conntrack.acct=1 kernel paramater, acct=1 nf_conntrack module option or
sysctl net.netfilter.nf_conntrack_acct=1 to enable it.
ip_tables: (C) 2000-2006 Netfilter Core Team
TCP cubic registered
Initializing XFRM netlink socket
NET: Registered protocol family 17
registered taskstats version 1
  Magic number: 1:887:383
usb usb1: hash matches
Freeing unused kernel memory: 1252k freed
Write protecting the kernel read-only data: 4732k
input: ImExPS/2 Generic Explorer Mouse as /devices/platform/i8042/serio1/input/input3
ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 10
virtio-pci 0000:00:03.0: PCI INT A -> Link[LNKC] -> GSI 10 (level, high) -> IRQ 10
virtio-pci 0000:00:04.0: PCI INT A -> Link[LNKD] -> GSI 11 (level, high) -> IRQ 11
 vda: vda1 vda2
kjournald starting.  Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
type=1404 audit(1236522147.454:2): enforcing=1 old_enforcing=0 auid=4294967295 ses=4294967295
Clocksource tsc unstable (delta = -63080507 ns)
SELinux: 8192 avtab hash slots, 178516 rules.
SELinux: 8192 avtab hash slots, 178516 rules.
SELinux:  8 users, 12 roles, 2435 types, 119 bools, 1 sens, 1024 cats
SELinux:  73 classes, 178516 rules
SELinux:  Completing initialization.
SELinux:  Setting up existing superblocks.
SELinux: initialized (dev dm-0, type ext3), uses xattr
SELinux: initialized (dev tmpfs, type tmpfs), uses transition SIDs
SELinux: initialized (dev usbfs, type usbfs), uses genfs_contexts
SELinux: initialized (dev selinuxfs, type selinuxfs), uses genfs_contexts
SELinux: initialized (dev mqueue, type mqueue), uses transition SIDs
SELinux: initialized (dev hugetlbfs, type hugetlbfs), uses genfs_contexts
SELinux: initialized (dev devpts, type devpts), uses transition SIDs
SELinux: initialized (dev inotifyfs, type inotifyfs), uses genfs_contexts
SELinux: initialized (dev tmpfs, type tmpfs), uses transition SIDs
SELinux: initialized (dev anon_inodefs, type anon_inodefs), uses genfs_contexts
SELinux: initialized (dev pipefs, type pipefs), uses task SIDs
SELinux: initialized (dev debugfs, type debugfs), uses genfs_contexts
SELinux: initialized (dev sockfs, type sockfs), uses task SIDs
SELinux: initialized (dev proc, type proc), uses genfs_contexts
SELinux: initialized (dev bdev, type bdev), uses genfs_contexts
SELinux: initialized (dev rootfs, type rootfs), uses genfs_contexts
SELinux: initialized (dev sysfs, type sysfs), uses genfs_contexts
type=1403 audit(1236522147.797:3): policy loaded auid=4294967295 ses=4294967295
piix4_smbus 0000:00:01.3: SMBus Host Controller at 0xb100, revision 0
input: PC Speaker as /devices/platform/pcspkr/input/input4
FDC 0 is a S82078B
device-mapper: multipath: version 1.0.5 loaded
EXT3 FS on dm-0, internal journal
kjournald starting.  Commit interval 5 seconds
EXT3 FS on vda1, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
SELinux: initialized (dev vda1, type ext3), uses xattr
SELinux: initialized (dev tmpfs, type tmpfs), uses transition SIDs
Adding 524280k swap on /dev/mapper/VolGroup00-LogVol01.  Priority:-1 extents:1 across:524280k
SELinux: initialized (dev binfmt_misc, type binfmt_misc), uses genfs_contexts
NET: Registered protocol family 10
lo: Disabled Privacy Extensions
ip6_tables: (C) 2000-2006 Netfilter Core Team
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
SELinux: initialized (dev rpc_pipefs, type rpc_pipefs), uses genfs_contexts
warning: `dbus-daemon' uses deprecated v2 capabilities in a way that may be insecure.
eth0: no IPv6 routers present

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox