[PATCH] wait_table and zonelist initializing for memory hotadd: update zonelists
authorYasunori Goto <y-goto@jp.fujitsu.com>
Fri, 23 Jun 2006 09:03:11 +0000 (02:03 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Fri, 23 Jun 2006 14:42:46 +0000 (07:42 -0700)
commit6811378e7d8b9aa4fca2a1ca73d24c9d67c9cb12
tree37f2f5a2bf2e60848a571f8f43685c7406d7b238
parentcca448fe92246fb59efe55ba2e048ded0971a9af
[PATCH] wait_table and zonelist initializing for memory hotadd: update zonelists

In current code, zonelist is considered to be build once, no modification.
But MemoryHotplug can add new zone/pgdat.  It must be updated.

This patch modifies build_all_zonelists().  By this, build_all_zonelist() can
reconfig pgdat's zonelists.

To update them safety, this patch use stop_machine_run().  Other cpus don't
touch among updating them by using it.

In old version (V2 of node hotadd), kernel updated them after zone
initialization.  But present_page of its new zone is still 0, because
online_page() is not called yet at this time.  Build_zonelists() checks
present_pages to find present zone.  It was too early.  So, I changed it after
online_pages().

Signed-off-by: Yasunori Goto <y-goto@jp.fujitsu.com>
Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
mm/memory_hotplug.c
mm/page_alloc.c