From: Alexandre Derumier <aderumier@odiso.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH-SERIE v6 qemu-server/pve-manager] rework memory hotplug + virtiomem
Date: Mon, 19 Jun 2023 09:28:29 +0200 [thread overview]
Message-ID: <20230619072841.38531-1-aderumier@odiso.com> (raw)
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
next reply other threads:[~2023-06-19 7:29 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-19 7:28 Alexandre Derumier [this message]
2023-06-19 7:28 ` [pve-devel] [PATCH v6 qemu-server 01/10] add memory parser Alexandre Derumier
2023-09-01 10:23 ` Fiona Ebner
2023-06-19 7:28 ` [pve-devel] [PATCH v2 pve-manager 1/2] ui: qemu: hardware: add new memory format support Alexandre Derumier
2023-06-19 7:28 ` [pve-devel] [PATCH v6 qemu-server 02/10] memory: add get_static_mem Alexandre Derumier
2023-06-19 7:28 ` [pve-devel] [PATCH v2 pve-manager 2/2] ui: qemu : memoryedit: add new max && virtio fields Alexandre Derumier
2023-09-01 9:48 ` Thomas Lamprecht
2023-09-01 10:24 ` Fiona Ebner
2023-09-02 6:18 ` DERUMIER, Alexandre
2023-09-04 10:48 ` Fiona Ebner
2023-09-04 11:40 ` Thomas Lamprecht
2023-09-04 11:48 ` Fiona Ebner
2023-09-05 15:10 ` DERUMIER, Alexandre
2023-09-05 15:16 ` Thomas Lamprecht
2023-09-05 22:35 ` DERUMIER, Alexandre
2024-07-08 15:10 ` Fiona Ebner
2024-07-09 9:38 ` DERUMIER, Alexandre via pve-devel
2023-06-19 7:28 ` [pve-devel] [PATCH v6 qemu-server 03/10] memory: use static_memory in foreach_dimm Alexandre Derumier
2023-09-01 11:39 ` [pve-devel] applied: " Fiona Ebner
2023-06-19 7:28 ` [pve-devel] [PATCH v6 qemu-server 04/10] config: memory: add 'max' option Alexandre Derumier
2023-06-19 7:28 ` [pve-devel] [PATCH v6 qemu-server 05/10] memory: get_max_mem: use config memory max Alexandre Derumier
2023-06-19 7:28 ` [pve-devel] [PATCH v6 qemu-server 06/10] memory: use 64 slots && static dimm size when max is defined Alexandre Derumier
2023-06-19 7:28 ` [pve-devel] [PATCH v6 qemu-server 07/10] test: add memory-max tests Alexandre Derumier
2023-06-19 7:28 ` [pve-devel] [PATCH v6 qemu-server 08/10] memory: add virtio-mem support Alexandre Derumier
2023-06-19 7:28 ` [pve-devel] [PATCH v6 qemu-server 09/10] memory: virtio-mem : implement redispatch retry Alexandre Derumier
2023-06-19 7:28 ` [pve-devel] [PATCH v6 qemu-server 10/10] tests: add virtio-mem tests Alexandre Derumier
2023-09-01 12:24 ` [pve-devel] [PATCH-SERIE v6 qemu-server/pve-manager] rework memory hotplug + virtiomem Fiona Ebner
[not found] ` <CAOKSTBveZE6K6etnDESKXBt1_XpDYUMGpr12qQPyuv0beDRcQw@mail.gmail.com>
2023-09-01 16:30 ` DERUMIER, Alexandre
2023-09-01 16:32 ` DERUMIER, Alexandre
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230619072841.38531-1-aderumier@odiso.com \
--to=aderumier@odiso.com \
--cc=pve-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox