On Tue, Feb 14, 2006 at 04:57:32PM -0800, Bryce Harrington wrote: > On Mon, Feb 13, 2006 at 01:23:33PM -0500, Silbermann, Martine wrote: > > * From memory hotplug test plan to scripts - discussion > > Here's some answers to questions that came up today. I mentioned today that I was working on getting my nfs machines to boot with memory hotplug, but hadn't sorted out some configurational issues. I've got this working now. It turns out that I couldn't get 2.6.15 kernels configured with hot memory add, but I can get 2.6.16 kernels to do it. So I'll have to do a config that runs on 2.6.16 kernels and later. I've also experimented a little with the memory hotplug capability: First, with the system booted up with all memory online... cl009 ~ # cd /sys/devices/system/memory/ cl009 memory # ls block_size_bytes memory1 memory11 memory13 memory15 memory3 memory5 memory7 memory9 memory0 memory10 memory12 memory14 memory2 memory4 memory6 memory8 cl009 memory # cd memory7/ cl009 memory7 # ls phys_device phys_index state cl009 memory7 # cat * 0 00000007 online cl009 memory7 # echo "offline" > state cl009 memory7 # echo $? 1 cl009 memory7 # cat state online Now I've booted it with mem="128M". My lilo.conf looks like this: image=/boot/kernel-2.6.16-rc3 label=2.6.16r3 read-only root=/dev/hda3 initrd=/boot/initrd-2.6.16-rc3 append="mem=128M" Only two banks of memory show up: cl009 ~ # cd /sys/devices/system/memory/ cl009 memory # ls block_size_bytes memory0 memory1 According to http://lhms.sourceforge.net/ there ought to be a 'probe' file in the above directory listing. It also says I should be able to do the following to bring more memory online, however it isn't working: cl009 sys # echo "online" > /sys/device/system/memory/memory2/state -bash: /sys/device/system/memory/memory2/state: No such file or directory cl009 sys # echo $? 1 I've not spotted any documentation describing how this should work (perhaps this is something hotplug_sig could help solve?) so am not sure if there's something more I need to do to activate it, or if perhaps it doesn't work fully yet. Here is the kernel configuration settings I'm using: Processor type and features < > /dev/cpu/microcode - Intel IA32 CPU microcode support <*> /dev/cpu/*/msr - Model-specific register support <*> /dev/cpu/*/cpuid - CPU information support Firmware Drivers ---> High Memory Support (4GB) ---> Memory split (3G/1G user/kernel split) ---> Memory model (Sparse Memory) ---> [*] Allow for memory hot-add [*] Allocate 3rd-level pagetables from highmem [ ] Math emulation [*] MTRR (Memory Type Range Register) support ... [*] Support for hot-pluggable CPUs (EXPERIMENTAL) Here is the help text for the "Memory model" setting: CONFIG_SPARSEMEM_MANUAL: This will be the only option for some systems, including memory hotplug systems. This is normal. For many other systems, this will be an alternative to "Discontiguous Memory". This option provides some potential performance benefits, along with decreased code complexity, but it is newer, and more experimental. If unsure, choose "Discontiguous Memory" or "Flat Memory" over this option. However, the memory add feature has no help text associated with it: Allow for memory hot-add There is no help available for this kernel option. Symbol: MEMORY_HOTPLUG [=y] Prompt: Allow for memory hot-add Defined at mm/Kconfig:116 Depends on: SPARSEMEM && HOTPLUG && !SOFTWARE_SUSPEND Location: -> Processor type and features I googled a bit but didn't find anything particularly illuminating. Does someone here have some tips about what I should do or where I could look? Thanks, Bryce