[PATCH: 000/017] (RFC)Memory hotplug for new nodes v.3.

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

 



Hello.

I'll post newest patches for memory hotadd with pgdat allocation as V3.
There are many changes to make more common code.

This may be too many patches, but I would like to show
total feature of this code now.

This patches are for 2.6.16-rc5-mm3.
I tested these patch on just Tiger4(ia64) with emulation now.
But, I'll test them for x86-64 too after this post.

Please comment.

---------------------------------------

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.

Note:
 - 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 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


-- 
Yasunori Goto 


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

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux