From: Fiona Ebner <f.ebner@proxmox.com>
To: pve-devel@lists.proxmox.com, aderumier@odiso.com
Subject: Re: [pve-devel] [PATCH qemu-server 10/10] memory: fix hotplug with virtiomem && maxmem
Date: Fri, 16 Dec 2022 14:42:31 +0100 [thread overview]
Message-ID: <b2ea9330-180a-bcee-0147-da29a236d20b@proxmox.com> (raw)
In-Reply-To: <20221209192726.1499142-11-aderumier@odiso.com>
Am 09.12.22 um 20:27 schrieb Alexandre Derumier:
> diff --git a/PVE/QemuServer/Memory.pm b/PVE/QemuServer/Memory.pm
> index 70ab65a..84a9126 100644
> --- a/PVE/QemuServer/Memory.pm
> +++ b/PVE/QemuServer/Memory.pm
> @@ -9,6 +9,7 @@ use PVE::Exception qw(raise raise_param_exc);
> use PVE::QemuServer;
> use PVE::QemuServer::Monitor qw(mon_cmd);
> use PVE::QemuServer::PCI qw(print_pci_addr);
> +use PVE::GuestHelpers qw(safe_string_ne safe_num_ne safe_boolean_ne);
>
> use base qw(Exporter);
>
> @@ -230,24 +231,32 @@ sub foreach_reverse_dimm {
> }
>
> sub qemu_memory_hotplug {
> - my ($vmid, $conf, $defaults, $opt, $value) = @_;
> + my ($vmid, $conf, $new_mem) = @_;
>
> - return $value if !PVE::QemuServer::check_running($vmid);
> + return if !PVE::QemuServer::check_running($vmid);
Unrelated change not belonging in this patch
>
> - my $sockets = 1;
> - $sockets = $conf->{sockets} if $conf->{sockets};
> + my $confmem = PVE::QemuServer::parse_memory($conf->{memory});
> +
> + # skip non hotpluggable value
> + if (safe_string_ne($new_mem->{max}, $confmem->{max}) ||
> + safe_boolean_ne($new_mem->{virtio}, $confmem->{virtio})) {
> + die "skip\n";
This special error "return" value should really not be used here. It's
just too intransparent in the long run. This should be done by the
callers and actually belongs in the patches introducing 'virtio' and
'max' (handling) respectively.
> + }
> +
> + my $value = $new_mem->{current};
> + my $memory = $confmem->{current};
>
> - my $memory = get_current_memory($conf);
> return $value if $value == $memory;
>
> + my $sockets = 1;
> + $sockets = $conf->{sockets} if $conf->{sockets};
> +
> my $static_memory = get_static_mem($conf);
>
> die "memory can't be lower than $static_memory MB" if $value < $static_memory;
> my $MAX_MEM = get_max_mem($conf);
> die "you cannot add more memory than max mem $MAX_MEM MB!\n" if $value > $MAX_MEM;
>
> - my $confmem = PVE::QemuServer::parse_memory($conf->{memory});
> -
> if ($confmem->{virtio}) {
> my $blocksize = get_virtiomem_block_size($conf);
> my $requested_size = ($value - $static_memory) / $sockets * 1024 * 1024;
next prev parent reply other threads:[~2022-12-16 13:42 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-09 19:27 [pve-devel] [PATCH qemu-server 00/10] rework memory hotplug + virtiomem Alexandre Derumier
2022-12-09 19:27 ` [pve-devel] [PATCH qemu-server 01/10] test: add memory tests Alexandre Derumier
2022-12-16 13:38 ` Fiona Ebner
2022-12-09 19:27 ` [pve-devel] [PATCH qemu-server 02/10] add memory parser Alexandre Derumier
2022-12-16 13:38 ` Fiona Ebner
2023-01-02 10:50 ` DERUMIER, Alexandre
2023-01-05 12:47 ` Fiona Ebner
2023-01-02 11:23 ` DERUMIER, Alexandre
2023-01-05 12:48 ` Fiona Ebner
[not found] ` <4ba723fb986517054761eb65f38812fac86a895b.camel@groupe-cyllene.com>
2023-01-09 14:35 ` Fiona Ebner
2022-12-09 19:27 ` [pve-devel] [PATCH qemu-server 03/10] config: memory: add 'max' option Alexandre Derumier
2022-12-16 13:38 ` Fiona Ebner
2022-12-09 19:27 ` [pve-devel] [PATCH qemu-server 04/10] memory: add get_static_mem Alexandre Derumier
2022-12-16 13:38 ` Fiona Ebner
2022-12-09 19:27 ` [pve-devel] [PATCH qemu-server 05/10] memory: get_max_mem: use config memory max Alexandre Derumier
2022-12-16 13:39 ` Fiona Ebner
2022-12-09 19:27 ` [pve-devel] [PATCH qemu-server 06/10] memory: use 64 slots && static dimm size with max is defined Alexandre Derumier
2022-12-16 13:39 ` Fiona Ebner
2022-12-19 12:05 ` DERUMIER, Alexandre
2022-12-19 12:28 ` Fiona Ebner
2022-12-09 19:27 ` [pve-devel] [PATCH qemu-server 07/10] test: add memory-max tests Alexandre Derumier
2022-12-09 19:27 ` [pve-devel] [PATCH qemu-server 08/10] memory: add virtio-mem support Alexandre Derumier
2022-12-16 13:42 ` Fiona Ebner
[not found] ` <7b9306c429440304fb37601ece5ffdbad0b90e5f.camel@groupe-cyllene.com>
2022-12-20 10:26 ` Fiona Ebner
[not found] ` <b354aab5e4791e7c862b15470ca24c273b8030be.camel@groupe-cyllene.com>
2022-12-20 12:31 ` DERUMIER, Alexandre
2022-12-09 19:27 ` [pve-devel] [PATCH qemu-server 09/10] tests: add virtio-mem tests Alexandre Derumier
2022-12-16 13:42 ` Fiona Ebner
2022-12-19 14:48 ` Thomas Lamprecht
2022-12-09 19:27 ` [pve-devel] [PATCH qemu-server 10/10] memory: fix hotplug with virtiomem && maxmem Alexandre Derumier
2022-12-16 13:42 ` Fiona Ebner [this message]
2022-12-16 13:38 ` [pve-devel] [PATCH qemu-server 00/10] rework memory hotplug + virtiomem Fiona Ebner
2022-12-19 11:31 ` 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=b2ea9330-180a-bcee-0147-da29a236d20b@proxmox.com \
--to=f.ebner@proxmox.com \
--cc=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