|| ||Yasunori Goto <email@example.com>|
|| ||Andrew Morton <firstname.lastname@example.org>|
|| ||[PATCH: 000/017]Memory hotplug for new nodes v.4.|
|| ||Fri, 17 Mar 2006 17:20:12 +0900|
|| ||"Luck, Tony" <email@example.com>, Andi Kleen <firstname.lastname@example.org>,
Linux Kernel ML <email@example.com>,
firstname.lastname@example.org, linux-mm <email@example.com>|
I'll post newest patches for memory hotadd with pgdat allocation as V4.
This includes some of small fixes
- Fix compile errors on config HOTADD /NO HOTADD, NUMA/non NUMA, etc.
- Add/update some comments.
This patches are for 2.6.16-rc6-mm1.
I tested these patch on just Tiger4(ia64) with emulation now.
Unfortunately, x86-64 box which I can use has been busy in this week.
So, I couldn't make/test patch for it yet. :-(
But, probably, remain x86-64's issue is just making arch_register_node() to
create sysfs file for new node like 17th patch.
When I can use it again, I'll make and test it.
This is memory hotadd code when new node is added.
In this patch, pgdat is allocated when new node is comming.
To initialize pgdat and zones, a set of patches are necessary.
- to allcate and initialize pgdat, zone, zonelist.
- to make new kswapd
- to initialize node_data array (ia64)
- to register sysfs file for new node.
- to call memory_hotplug code from acpi container driver
which receive ACPI's notification from firmware.
Ia64 big NUMA box needs this feature. I heard that x86-64 needs this too.
Powerpc might use some of this code.
- kzalloc is used for pgdat allocation in this version.
So, even if pgdat is allocated, it will be allocated on the other node.
This is only to simplify patches a bit. :-P
Followings are updates.
Updates from V3 to V4.
- update for 2.6.16-rc6-mm1.
- Fix compile errors against Hotadd/NoHotadd, NUMA/NonNUMA, etc.
- Add/update some comments.
- Some functions which can be static become static.
- not call add_memory() for already exist memory at
Updates from V2 to V3.
- update for 2.6.16-rc5-mm3.
- The caller function of pgdat allcation and so on become common code.
- Passing node id at add_memory().
- build_zonelists() is called after that pages are onlined.
- Updating NODE_DATA() for ia64 become simple and become
common code between booting and hotadd.
(But other consideration will be necessary for hot-remove.)
- kswapd is called by kthread_run().
- finding node id by acpi use handle of its memory device.
Updates from V1 to V2.
- update for 2.6.16-rc5-mm2.
- not only ia64, This is tested on x86_64 with NUMA emulation too. :-)
- wait_table_size() allcation is changed.
- Take max size as much as possible.
- Change using GFP_ATOMIC. It is inside of zone_init_lock.
(Warining message of might_sleep() is very well.)
- stop_machine_run(build_zonelists) is move to outside of lock.
- pgdat_insert() is moved to generic code to be used by x86_64.
- add decision of ZONE_DMA32 or ZONE_NORMAL to x86_64's add_memory().
- Make a separated patch to change from __init to __meminit.
- Fix some typo
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to firstname.lastname@example.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/