[pve-devel] [PATCH v4 qemu-server 00/16] rework memory hotplug + virtiomem
Alexandre Derumier
aderumier at odiso.com
Mon Feb 13 13:00:05 CET 2023
This patch series rework the current memory hotplug + virtiomem.
memory option now have extra options:
memory: [[current=]<integer>] [,max=<enum>] [,virtio=<1|0>]
ex: memory: current=1024,max=131072,virtio=1
for classic memory hotplug, when maxmemory is defined,
we use 64 fixed size dimm.
The max option is a multiple of 64GB.
The virtio option enable new virtio-mem support,
instead of plugging dimm, it's add/removed block inside
big dimm.
virtio-mem can use 32000 blocks, the blocksize is compute from
max memory.
Changelog v2:
update differents patches based on Fiona comments.
(I have send 2 others mails with comments not yet addressed)
Biggest change is on virtio-mem, instead of trying to have same amount of memory
on each virtiomem (some block could be unmovable and break unplug),
we try to balance/dispatch remaining block on other available virtiomems.
Also, the minimum blocksize supported by linux guest os is 4MB currently,
even if virtiomem can use 2MB on qemu side.
Changelog v3:
- cleanup from last Fiona comments
- classic hotplug : fix memory unplug
- virtio-mem: split retry logic in a second optional patch
(feel free to apply it later if needed)
Changelog v4:
- cleanup from last Fiona comments
Alexandre Derumier (16):
memory: extract some code to their own sub for mocking
tests: add memory tests
memory: refactor sockets
memory: remove calls to parse_hotplug_features
add memory parser
memory: add get_static_mem
memory: use static_memory in foreach_dimm
config: memory: add 'max' option
memory: get_max_mem: use config memory max
memory: rename qemu_dimm_list to qemu_memdevices_list
memory: don't use foreach_reversedimm for unplug
memory: use 64 slots && static dimm size when max is defined
test: add memory-max tests
memory: add virtio-mem support
memory: virtio-mem : implement redispatch retry.
tests: add virtio-mem tests
PVE/API2/Qemu.pm | 38 +-
PVE/QemuConfig.pm | 4 +-
PVE/QemuMigrate.pm | 6 +-
PVE/QemuServer.pm | 40 +-
PVE/QemuServer/Helpers.pm | 3 +-
PVE/QemuServer/Memory.pm | 527 ++++++++++++++----
PVE/QemuServer/PCI.pm | 8 +
test/cfg2cmd/memory-hotplug-hugepages.conf | 12 +
.../cfg2cmd/memory-hotplug-hugepages.conf.cmd | 62 +++
test/cfg2cmd/memory-hotplug.conf | 11 +
test/cfg2cmd/memory-hotplug.conf.cmd | 174 ++++++
test/cfg2cmd/memory-hugepages-1g.conf | 11 +
test/cfg2cmd/memory-hugepages-1g.conf.cmd | 30 +
test/cfg2cmd/memory-hugepages-2m.conf | 11 +
test/cfg2cmd/memory-hugepages-2m.conf.cmd | 30 +
test/cfg2cmd/memory-max-128G.conf | 11 +
test/cfg2cmd/memory-max-128G.conf.cmd | 86 +++
test/cfg2cmd/memory-max-512G.conf | 11 +
test/cfg2cmd/memory-max-512G.conf.cmd | 58 ++
test/cfg2cmd/memory-virtio-hugepages-1G.conf | 12 +
.../memory-virtio-hugepages-1G.conf.cmd | 35 ++
test/cfg2cmd/memory-virtio-max.conf | 11 +
test/cfg2cmd/memory-virtio-max.conf.cmd | 35 ++
test/cfg2cmd/memory-virtio.conf | 11 +
test/cfg2cmd/memory-virtio.conf.cmd | 35 ++
test/run_config2command_tests.pl | 15 +
26 files changed, 1135 insertions(+), 152 deletions(-)
create mode 100644 test/cfg2cmd/memory-hotplug-hugepages.conf
create mode 100644 test/cfg2cmd/memory-hotplug-hugepages.conf.cmd
create mode 100644 test/cfg2cmd/memory-hotplug.conf
create mode 100644 test/cfg2cmd/memory-hotplug.conf.cmd
create mode 100644 test/cfg2cmd/memory-hugepages-1g.conf
create mode 100644 test/cfg2cmd/memory-hugepages-1g.conf.cmd
create mode 100644 test/cfg2cmd/memory-hugepages-2m.conf
create mode 100644 test/cfg2cmd/memory-hugepages-2m.conf.cmd
create mode 100644 test/cfg2cmd/memory-max-128G.conf
create mode 100644 test/cfg2cmd/memory-max-128G.conf.cmd
create mode 100644 test/cfg2cmd/memory-max-512G.conf
create mode 100644 test/cfg2cmd/memory-max-512G.conf.cmd
create mode 100644 test/cfg2cmd/memory-virtio-hugepages-1G.conf
create mode 100644 test/cfg2cmd/memory-virtio-hugepages-1G.conf.cmd
create mode 100644 test/cfg2cmd/memory-virtio-max.conf
create mode 100644 test/cfg2cmd/memory-virtio-max.conf.cmd
create mode 100644 test/cfg2cmd/memory-virtio.conf
create mode 100644 test/cfg2cmd/memory-virtio.conf.cmd
--
2.30.2
More information about the pve-devel
mailing list