Skip to contentSkip to conversation

ANNOUNCE: 2.6.9-rc1-mm1-mhp1

DISCUSSION Dave Hansen 1 participant 1 message Aug 26, 2004

lore
Share & tools
lore
#0 lore raw

Oh no, not another kernel tree!

I promise I won't make a regular habit of posting this to LKML, but I figured I'd do it at least once just in case anybody here cares. We have most of our discussions on [email protected]

The main aim of this patch set (other than having the longest possible version name) is to give the memory hotplug developers a common base to work from. It is hopefully split up in such a way that it is easy to replace an implementation in the middle of the stack without disturbing too much other stuff.

All of the A?-*.patch files are things that I hope to get merged in the near future. Some have been sent out for review already, some haven't. Review of or comments on anything in the set would be greatly appreciated. Please ignore the debugging patch as much as possible :)

The patches are here for now:
http://sprucegoose.sr71.net/patches/
But, that's not permanent and may change at some time in the future.

They're alphabetically applied, but there's also a series file.

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

Changes since 2.6.8.1-mm3-mhp1:

merged into -mm:
A0-virts_are_voidstar.patch
A1-noalign-virt_to_page-args.patch
A2-fetch_pgd_into_ul.patch
A3-early_printk-cast-VGABASE.patch
A4-include-page.h-virt_to_page.patch
A5-sysenter-types.patch

New:
C7-nonlinear-consts.patch
K2-swap_cleanup
K3-swap_mem_hotplug

K{2,3} are some of the first hooks in to the swap code to support memory removal. The first patch just moves some code around, and the second one creates an special case of the inactive_list for pages under removal. These still need a bit of cleaning up, but they appear to do some good. Time will tell whether the swap code will be sufficient, or we need a more drastic approach.

On my 4G machine, I can boot with mem=2G, and add memory back after booting. For right now, this only works in 128MB sections, but to add the memory from 2G up to 2G+128MB, you just do this:

	echo 0x80000000 > /sys/devices/system/memory/probe

You'll get hotplug events via /sbin/hotplug, and then you can

echo online > /sys/devices/system/memory/memoryXX/status

to actually make the memory available. You'll know what XX is because of the hotplug events. You can then do this:

echo offline > /sys/devices/system/memory/memoryXX/status

But, that doesn't really do very much right now other than mark all the pages in that particular memory section as slated for removal and trying to allocate all of them.

-- Dave