* [PATCH qemu-server v2 0/1] vm start: log qemu version when starting a VM
@ 2026-06-30 7:03 Maximiliano Sandoval
2026-06-30 7:03 ` [PATCH qemu-server v2 1/2] test: mock query-version qmp command Maximiliano Sandoval
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Maximiliano Sandoval @ 2026-06-30 7:03 UTC (permalink / raw)
To: pve-devel
See commits for more details.
Differences from v1:
- Fix a typo s/pgk/pkg/
- Rename helper to get_qemu_package_version
- Add dummy output in mockup method
Maximiliano Sandoval (1):
vm start: log qemu version when starting a VM
src/PVE/QemuServer.pm | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
base-commit: 9b732b93ec088bd30babeba2a85a4a3f1cc50927
prerequisite-patch-id: 45483b95397a18e894d566b75d38b6a3e8aebb32
--
2.47.3
^ permalink raw reply [flat|nested] 5+ messages in thread* [PATCH qemu-server v2 1/2] test: mock query-version qmp command 2026-06-30 7:03 [PATCH qemu-server v2 0/1] vm start: log qemu version when starting a VM Maximiliano Sandoval @ 2026-06-30 7:03 ` Maximiliano Sandoval 2026-06-30 7:03 ` [PATCH qemu-server v2 2/2] vm start: log qemu version when starting a VM Maximiliano Sandoval 2026-06-30 11:13 ` superseded: [PATCH qemu-server v2 0/1] " Maximiliano Sandoval 2 siblings, 0 replies; 5+ messages in thread From: Maximiliano Sandoval @ 2026-06-30 7:03 UTC (permalink / raw) To: pve-devel In the next commit we add a call to query-version to log the package version when starting a VM. Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com> --- src/test/MigrationTest/QmMock.pm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/test/MigrationTest/QmMock.pm b/src/test/MigrationTest/QmMock.pm index 311dbb39..c6fc1f50 100644 --- a/src/test/MigrationTest/QmMock.pm +++ b/src/test/MigrationTest/QmMock.pm @@ -54,6 +54,11 @@ my sub mocked_mon_cmd { return []; } elsif ($command eq 'qom-set') { return; + } elsif ($command eq 'query-version') { + return { + qemu => { major => '11', minor => '0', micro => '0' }, + package => 'pve-qemu-kvm_11.0.0-4', + }; } die "mon_cmd (mocked) - implement me: $command"; } -- 2.47.3 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH qemu-server v2 2/2] vm start: log qemu version when starting a VM 2026-06-30 7:03 [PATCH qemu-server v2 0/1] vm start: log qemu version when starting a VM Maximiliano Sandoval 2026-06-30 7:03 ` [PATCH qemu-server v2 1/2] test: mock query-version qmp command Maximiliano Sandoval @ 2026-06-30 7:03 ` Maximiliano Sandoval 2026-06-30 8:08 ` Fiona Ebner 2026-06-30 11:13 ` superseded: [PATCH qemu-server v2 0/1] " Maximiliano Sandoval 2 siblings, 1 reply; 5+ messages in thread From: Maximiliano Sandoval @ 2026-06-30 7:03 UTC (permalink / raw) To: pve-devel Previously, having the system journal and task logs from a boot was not enough to determine which qemu version is installed nor the running QEMU version of a VM. This is addressed by logging pve-qemu-kvm's package version when starting the VM. The package version is obtained with the 'query-version' qmp command. Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com> --- Notes: sample output in the journal: Jun 24 10:39:14 pve-148 qm[26137]: VM 100 started with PID 26166 using pve-qemu-kvm_11.0.0-4. src/PVE/QemuServer.pm | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/PVE/QemuServer.pm b/src/PVE/QemuServer.pm index cdf66e89..3ecd16a7 100644 --- a/src/PVE/QemuServer.pm +++ b/src/PVE/QemuServer.pm @@ -5853,7 +5853,8 @@ sub vm_start_nolock { eval { PVE::QemuServer::PCI::reserve_pci_usage($pci_reserve_list, $vmid, undef, $pid) }; warn $@ if $@; - syslog("info", "VM $vmid started with PID $pid."); + my $pkg_version = get_qemu_package_version($vmid); + syslog("info", "VM $vmid started with PID $pid using $pkg_version."); PVE::QemuServer::RunState::create_cleanup_flag($vmid); @@ -8068,6 +8069,12 @@ sub get_running_qemu_version { return "$res->{qemu}->{major}.$res->{qemu}->{minor}"; } +sub get_qemu_package_version { + my ($vmid) = @_; + my $res = mon_cmd($vmid, "query-version"); + return $res->{package}; +} + sub qemu_use_old_bios_files { my ($machine_type) = @_; -- 2.47.3 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH qemu-server v2 2/2] vm start: log qemu version when starting a VM 2026-06-30 7:03 ` [PATCH qemu-server v2 2/2] vm start: log qemu version when starting a VM Maximiliano Sandoval @ 2026-06-30 8:08 ` Fiona Ebner 0 siblings, 0 replies; 5+ messages in thread From: Fiona Ebner @ 2026-06-30 8:08 UTC (permalink / raw) To: Maximiliano Sandoval, pve-devel Am 30.06.26 um 9:04 AM schrieb Maximiliano Sandoval: > Previously, having the system journal and task logs from a boot was not > enough to determine which qemu version is installed nor the running QEMU > version of a VM. This is addressed by logging pve-qemu-kvm's package > version when starting the VM. > > The package version is obtained with the 'query-version' qmp command. > > Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com> > --- > > Notes: > sample output in the journal: > > Jun 24 10:39:14 pve-148 qm[26137]: VM 100 started with PID 26166 using pve-qemu-kvm_11.0.0-4. > > src/PVE/QemuServer.pm | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) > > diff --git a/src/PVE/QemuServer.pm b/src/PVE/QemuServer.pm > index cdf66e89..3ecd16a7 100644 > --- a/src/PVE/QemuServer.pm > +++ b/src/PVE/QemuServer.pm > @@ -5853,7 +5853,8 @@ sub vm_start_nolock { > eval { PVE::QemuServer::PCI::reserve_pci_usage($pci_reserve_list, $vmid, undef, $pid) }; > warn $@ if $@; > > - syslog("info", "VM $vmid started with PID $pid."); > + my $pkg_version = get_qemu_package_version($vmid); > + syslog("info", "VM $vmid started with PID $pid using $pkg_version."); > > PVE::QemuServer::RunState::create_cleanup_flag($vmid); > > @@ -8068,6 +8069,12 @@ sub get_running_qemu_version { > return "$res->{qemu}->{major}.$res->{qemu}->{minor}"; > } > > +sub get_qemu_package_version { If you want to keep it beside get_running_qemu_version(), then that one should be moved to QMPHelpers as well. The main QemuServer.pm module is already bloated enough. We should take the opportunities to reduce it. > + my ($vmid) = @_; > + my $res = mon_cmd($vmid, "query-version"); > + return $res->{package}; > +}> + > sub qemu_use_old_bios_files { > my ($machine_type) = @_; > ^ permalink raw reply [flat|nested] 5+ messages in thread
* superseded: [PATCH qemu-server v2 0/1] vm start: log qemu version when starting a VM 2026-06-30 7:03 [PATCH qemu-server v2 0/1] vm start: log qemu version when starting a VM Maximiliano Sandoval 2026-06-30 7:03 ` [PATCH qemu-server v2 1/2] test: mock query-version qmp command Maximiliano Sandoval 2026-06-30 7:03 ` [PATCH qemu-server v2 2/2] vm start: log qemu version when starting a VM Maximiliano Sandoval @ 2026-06-30 11:13 ` Maximiliano Sandoval 2 siblings, 0 replies; 5+ messages in thread From: Maximiliano Sandoval @ 2026-06-30 11:13 UTC (permalink / raw) To: pve-devel Maximiliano Sandoval <m.sandoval@proxmox.com> writes: > See commits for more details. > > Differences from v1: > > - Fix a typo s/pgk/pkg/ > - Rename helper to get_qemu_package_version > - Add dummy output in mockup method > > Maximiliano Sandoval (1): > vm start: log qemu version when starting a VM > > src/PVE/QemuServer.pm | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) Superseded-by: https://lore.proxmox.com/all/20260630110446.314299-1-m.sandoval@proxmox.com/T/#u -- Maximiliano ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-06-30 11:14 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-06-30 7:03 [PATCH qemu-server v2 0/1] vm start: log qemu version when starting a VM Maximiliano Sandoval 2026-06-30 7:03 ` [PATCH qemu-server v2 1/2] test: mock query-version qmp command Maximiliano Sandoval 2026-06-30 7:03 ` [PATCH qemu-server v2 2/2] vm start: log qemu version when starting a VM Maximiliano Sandoval 2026-06-30 8:08 ` Fiona Ebner 2026-06-30 11:13 ` superseded: [PATCH qemu-server v2 0/1] " Maximiliano Sandoval
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox