[pve-devel] [PATCH-SERIE v6 qemu-server/pve-manager] rework memory hotplug + virtiomem
Alexandre Derumier
aderumier at odiso.com
Mon Jun 19 09:28:29 CEST 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
Changelog v5:
- move dimm hot-unplug patches on top of the serie
- cleanup from last Fiona comments
Changelog v6:
- qemu-server : rebase on last git
qemu-server:
Alexandre Derumier (10):
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: 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 | 41 +-
PVE/QemuConfig.pm | 4 +-
PVE/QemuMigrate.pm | 6 +-
PVE/QemuServer.pm | 37 +-
PVE/QemuServer/Helpers.pm | 3 +-
PVE/QemuServer/Memory.pm | 422 +++++++++++++++---
PVE/QemuServer/PCI.pm | 8 +
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 ++
17 files changed, 744 insertions(+), 82 deletions(-)
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
pve-manager:
Alexandre Derumier (2):
ui: qemu: hardware: add new memory format support
ui: qemu : memoryedit: add new max && virtio fields
www/manager6/qemu/HardwareView.js | 17 ++++++++--
www/manager6/qemu/MemoryEdit.js | 52 +++++++++++++++++++++++++------
2 files changed, 58 insertions(+), 11 deletions(-)
--
2.39.2
More information about the pve-devel
mailing list