[pve-devel] [PATCH v4 qemu-server 10/16] memory: rename qemu_dimm_list to qemu_memdevices_list

Fiona Ebner f.ebner at proxmox.com
Wed Feb 22 16:19:12 CET 2023


Am 13.02.23 um 13:00 schrieb Alexandre Derumier:
> current qemu_dimm_list can return any kind of memory devices.
> 
> make it more generic, with a regex filter to choose kind of device
> from id.
> 
> Signed-off-by: Alexandre Derumier <aderumier at odiso.com>
> ---
>  PVE/QemuServer/Memory.pm | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/PVE/QemuServer/Memory.pm b/PVE/QemuServer/Memory.pm
> index c912e4f..a13b3a1 100644
> --- a/PVE/QemuServer/Memory.pm
> +++ b/PVE/QemuServer/Memory.pm
> @@ -333,7 +333,7 @@ sub qemu_memory_hotplug {
>  		while (1) {
>  		    eval { PVE::QemuServer::qemu_devicedel($vmid, $name) };
>  		    sleep 3;
> -		    my $dimm_list = qemu_dimm_list($vmid);
> +		    my $dimm_list = qemu_memdevices_list($vmid, '^dimm(\d+)$');
>  		    last if !$dimm_list->{$name};
>  		    raise_param_exc({ $name => "error unplug memory module" }) if $retry > 5;
>  		    $retry++;
> @@ -363,14 +363,14 @@ sub can_hotplug {
>      return 1;
>  }
>  
> -sub qemu_dimm_list {
> -    my ($vmid) = @_;
> +sub qemu_memdevices_list {
> +    my ($vmid, $filter) = @_;

Nit: not sure if we really need/want a full-blown filter here. I'd just
start out with a $type and we can make sure to only use IDs of the form
$type\d+. If we ever need more, we can always change it to a filter.

>  
>      my $dimmarray = mon_cmd($vmid, "query-memory-devices");
>      my $dimms = {};
>  
>      foreach my $dimm (@$dimmarray) {
> -
> +        next if $filter && $dimm->{data}->{id} !~ /$filter/;
>          $dimms->{$dimm->{data}->{id}}->{id} = $dimm->{data}->{id};
>          $dimms->{$dimm->{data}->{id}}->{node} = $dimm->{data}->{node};
>          $dimms->{$dimm->{data}->{id}}->{addr} = $dimm->{data}->{addr};





More information about the pve-devel mailing list