linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] memory unplug v7 - introduction
@ 2007-07-06  9:19 KAMEZAWA Hiroyuki
  2007-07-06  9:23 ` [PATCH] memory unplug v7 - migration by kernel KAMEZAWA Hiroyuki
                   ` (6 more replies)
  0 siblings, 7 replies; 14+ messages in thread
From: KAMEZAWA Hiroyuki @ 2007-07-06  9:19 UTC (permalink / raw)
  To: LKML; +Cc: linux-mm, Andrew Morton, Christoph Lameter, mel

Hi,

This is a memory unplug base patch set against 2.6.22-rc6-mm1.
called v7 (I skipped v6 post because of my internal patch handling.)

Andrew, could you give me your advice toward next step (merge) ?

Changelog V5->V7
 - reflected all coments on V5 and following threads.

Patch series are following.

(1)migrate_nocontext.patch
(2)lru_page_race_fix.patch
(3)walk_mem_resource.patch
(4)page_isolation_base_v7.patch
(5)page_removal_base_v7.patch
(6)ia64_page_hotremove.patch

I think patch (1) (2) (3) has enough quality and can be merged without
regression.
patch (1) and (2) is for "page migration by the kernel".
patch (3) is cleanup of memory hotplug.

patch (4)(5) depens on Mel's page grouping.
patch (5) will need more work for enhancement for NUMA and stable-removal.
(In current code, a user may have to retry offlining if pages are *very* busy.)
But it works well on my test.

How to use
 - user kernelcore=XXX boot option to create ZONE_MOVABLE.
   Memory unplug itself can work without ZONE_MOVABLE (if you allow retrying..)
   but it will be better to use kernelcore= if your section size is big.
  
 - After bootup, execute following.
     # echo "offline" > /sys/devices/system/memory/memoryX/state
 - you can push back offlined memory by following
     # echo "online" > /sys/devices/system/memory/memoryX/state

TODO
 - more tests.
 - Now, there is no check around ZONE_MOVABLE and bootmem.
   I hope bootmem can treat kernelcore=....
   We have some idea about this.
 - add better logic to allocate memory for migration (for NUMA). 
   Problems here are that we have no way to rememeber "How page is allocated".
   cpusets info and policy info is in "task_struct", which cannot be accessed
   from a page struct..maybe what we can do is (1) add more information to page 
   or (2) use just a simple way. or (3) some magical technique...
 - interface code for other archs. plz request if you want.
 - remove memmap after memory unplug.  (after sparsemem-vmemap inclusion)
 - node hotplug support

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	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2007-07-06 22:44 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-07-06  9:19 [PATCH] memory unplug v7 - introduction KAMEZAWA Hiroyuki
2007-07-06  9:23 ` [PATCH] memory unplug v7 - migration by kernel KAMEZAWA Hiroyuki
2007-07-06 18:11   ` Christoph Lameter
2007-07-06  9:24 ` [PATCH] memory unplug v7 [2/6] - isolate_lru_page fix KAMEZAWA Hiroyuki
2007-07-06 18:11   ` Christoph Lameter
2007-07-06  9:25 ` [PATCH] memory unplug v7 [3/6] memory hotplug cleanup KAMEZAWA Hiroyuki
2007-07-06  9:26 ` [PATCH] memory unplug v7 [4/6] - page isolation KAMEZAWA Hiroyuki
2007-07-06 22:28   ` Andrew Morton
2007-07-06 22:31     ` KAMEZAWA Hiroyuki
2007-07-06  9:27 ` [PATCH] memory unplug v7 [5/6] - page offline KAMEZAWA Hiroyuki
2007-07-06  9:28 ` [PATCH] memory unplug v7 [6/6] - ia64 interface KAMEZAWA Hiroyuki
2007-07-06 22:34 ` [PATCH] memory unplug v7 - introduction Andrew Morton
2007-07-06 22:40   ` Christoph Lameter
2007-07-06 22:44   ` KAMEZAWA Hiroyuki

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