Messages in this thread | | | Date | Wed, 03 Dec 2003 11:41:01 -0800 | From | "Martin J. Bligh" <> | Subject | Re: memory hotremove prototype, take 3 |
| |
> this is a new version of my memory hotplug prototype patch, against > linux-2.6.0-test11. > > Freeing 100% of a specified memory zone is non-trivial and necessary > for memory hot removal. This patch splits memory into 1GB zones, and > implements complete zone memory freeing using kswapd or "remapping". > > A bit more detailed explanation and some test scripts are at: > http://people.valinux.co.jp/~iwamoto/mh.html > > Main changes against previous versions are: > - The stability is greatly improved. Kernel crashes (probably related > with kswapd) still happen, but they are rather rare so that I'm > having difficulty reproducing crashes. > Page remapping under simultaneous tar + rm -rf works. > - Implemented a solution to a deadlock caused by ext2_rename, which > increments a refcount of a directory page twice. > > Questions and comments are welcome.
I really think that doing this over zones and pgdats isn't the best approach. You're going to make memory allocation and reclaim vastly less efficient, and you're exposing a bunch of very specialised code inside the main memory paths.
Have you looked at Daniel's CONFIG_NONLINEAR stuff? That provides a much cleaner abstraction for getting rid of discontiguous memory in the non truly-NUMA case, and should work really well for doing mem hot add / remove as well.
M.
PS. What's this bit of the patch for?
void *vmalloc(unsigned long size) { +#ifdef CONFIG_MEMHOTPLUGTEST + return __vmalloc(size, GFP_KERNEL, PAGE_KERNEL); +#else return __vmalloc(size, GFP_KERNEL | __GFP_HIGHMEM, PAGE_KERNEL); +#endif } - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |