[pve-devel] qemu-server : memory hotplug patch v8

Alexandre Derumier aderumier at odiso.com
Sun Jan 25 13:55:31 CET 2015


Ok,I find I have found the problem.

Windows have no problem with any memory static + dimm_memory,
but Linux want alignment on 128MB for dimm_memory.

But that's also mean that static memory need to be aligned on 128MB,
because dimm_memory start on first memory address available.

Also, without numa, linux guest have alignment problems on some setup
and windows need numa to do memory hotplug.
So, I think it's ok to say that numa need to be enabled to get this work fine.

This new patch, defined only 2 options:
memory:
maxmemory:

maxmemory, enable memory dimm devices and memory hotplug.
memory is static_memory + dimm_memory.

I force static_memory = 512MB, so we can get correct 128MB alignment with 1,2 or 4 sockets/numa nodes.
The remaining memory is assigned to dimm_memory




here some tests with differents alignement

TESTS RESULTS
-------------
totalmemoxy (static_memory + dimm_memory) - numa - sockets number : results
windows
-------
2048 (512 + 1536) - numa - 1 : boot
2048 (512 + 1536) - numa - 2 : boot
2048 (512 + 1536) - numa - 4 : boot
2048 (512 + 1536) - nonnuma - 1 : boot
2048 (512 + 1536) - nonnuma - 2 : boot
2048 (512 + 1536) - nonnuma - 4 : boot

1024 (256 + 768) - numa - 1 : boot
1024 (256 + 768) - numa - 2 : boot
1024 (256 + 768) - numa - 4 : boot
1024 (256 + 768) - nonnuma - 1 : boot
1024 (256 + 768) - nonnuma - 2 : boot
1024 (256 + 768) - nonnuma - 4 : boot

1280 (256 + 1024) - numa - 1 : boot
1280 (256 + 1024) - numa - 2 : boot
1280 (256 + 1024) - numa - 4 : boot
1280 (256 + 1024) - nonnuma - 1 : boot
1280 (256 + 1024) - nonnuma - 2 : boot
1280 (256 + 1024) - nonnuma - 4 : boot


1024 (128 + 896) - numa - 1 : not enough memory for ramdisk 
1024 (128 + 896) - numa - 2 : not enough memory for ramdisk
1024 (128 + 896) - numa - 4 : not enough memory for ramdisk
1024 (128 + 896) - nonnuma - 1 : boot
1024 (128 + 896) - nonnuma - 2 : boot
1024 (128 + 896) - nonnuma - 4 : boot

linux 3.16
----------

1024 (512 + 512) - numa - 1 : boot
1024 (512 + 512) - numa - 2 : boot
1024 (512 + 512) - numa - 4 : boot
1024 (512 + 512) - nonnuma - 1 : boot
1024 (512 + 512) - nonnuma - 2 : boot
1024 (512 + 512) - nonnuma - 4 : boot


1152 (512 + 640) - numa - 1 : boot
1152 (512 + 640) - numa - 2 : boot
1152 (512 + 640) - numa - 4 : boot
1152 (512 + 640) - nonnuma - 1 : boot
1152 (512 + 640) - nonnuma - 2 : don't boot
1152 (512 + 640) - nonnuma - 4 : don't boot

2048 (512 + 1536) - numa - 1 : boot
2048 (512 + 1536) - numa - 2 : boot
2048 (512 + 1536) - numa - 4 : boot
2048 (512 + 1536) - nonnuma - 1 : boot
2048 (512 + 1536) - nonnuma - 2 : don't boot
2048 (512 + 1536) - nonnuma - 4 : don't boot


1024 (256 + 768) - numa - 1 : boot
1024 (256 + 768) - numa - 2 : boot
1024 (256 + 768) - numa - 4 : boot - alignment warning	
1024 (256 + 768) - nonnuma - 1 : boot
1024 (256 + 768) - nonnuma - 2 : don't boot
1024 (256 + 768) - nonnuma - 4 : don't boot



1280 (256 + 1024) - numa - 1 : boot
1280 (256 + 1024) - numa - 2 : boot
1280 (256 + 1024) - numa - 4 : boot - alignment warning
1280 (256 + 1024) - nonnuma - 1 : boot
1280 (256 + 1024) - nonnuma - 2 : don't boot
1280 (256 + 1024) - nonnuma - 4 : don't boot


1024 (128 + 896) - numa - 1 : boot
1024 (128 + 896) - numa - 2 : boot - alignment warning
1024 (128 + 896) - numa - 4 : boot- alignment warning
1024 (128 + 896) - nonnuma - 1 : boot
1024 (128 + 896) - nonnuma - 2 : don't boot
1024 (128 + 896) - nonnuma - 4 : don't boot




More information about the pve-devel mailing list