[pve-devel] [PATCH qemu-server 3/4] use qmeventd to execute qm cleanup

Wolfgang Bumiller w.bumiller at proxmox.com
Wed Oct 17 11:45:08 CEST 2018


Since we'll be using 2.12.1 before 3.0, this needs to be updated.
While doing so, could you please split this patch up? I'd like to get
the first two hunks in today. The 3rd one with the rest of the series.

On Tue, Oct 16, 2018 at 12:07:05PM +0200, Dominik Csapak wrote:
> we add a second qmp socket/monitor to vms with qemu >= 3.0 (because
> of live migration) and execute qmeventd to monitor it
> 
> Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
> ---
>  PVE/QemuServer.pm | 17 +++++++++++++++--
>  1 file changed, 15 insertions(+), 2 deletions(-)
> 
> diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
> index 541d7b0..4838e79 100644
> --- a/PVE/QemuServer.pm
> +++ b/PVE/QemuServer.pm
> @@ -3200,6 +3200,11 @@ sub config_to_command {
>      push @$cmd, '-chardev', "socket,id=qmp,path=$qmpsocket,server,nowait";
>      push @$cmd, '-mon', "chardev=qmp,mode=control";
>  
> +    if (qemu_machine_feature_enabled ($machine_type, $kvmver, 3, 0)) {
> +	my $eventsocket = qmp_socket($vmid, 0, 'event');
> +	push @$cmd, '-chardev', "socket,id=qmp-event,path=$eventsocket,server,nowait";
> +	push @$cmd, '-mon', "chardev=qmp-event,mode=control";
> +    }
>  
>      push @$cmd, '-pidfile' , pidfile_name($vmid);
>  
> @@ -3690,9 +3695,10 @@ sub spice_port {
>  }
>  
>  sub qmp_socket {
> -    my ($vmid, $qga) = @_;
> +    my ($vmid, $qga, $name) = @_;
>      my $sockettype = $qga ? 'qga' : 'qmp';
> -    return "${var_run_tmpdir}/$vmid.$sockettype";
> +    my $ext = $name ? '-'.$name : '';
> +    return "${var_run_tmpdir}/$vmid$ext.$sockettype";
>  }
>  
>  sub pidfile_name {
> @@ -5050,6 +5056,13 @@ sub vm_start {
>  		    property => "guest-stats-polling-interval",
>  		    value => 2) if (!defined($conf->{balloon}) || $conf->{balloon});
>  
> +	# start cleanup daemon
> +	if (qemu_machine_feature_enabled ($forcemachine, kvm_user_version(), 3, 0)) {
> +	    my $monitorcmd = ['/usr/sbin/qmeventd', qmp_socket($vmid, 0, 'event')];
> +	    my $cleanupcmd = ['/usr/sbin/qm', 'cleanup', $vmid];
> +	    push @$monitorcmd, @$cleanupcmd;
> +	    run_command($monitorcmd);
> +	}
>      });
>  }
>  
> -- 
> 2.11.0




More information about the pve-devel mailing list