From: Jakob Klocker <j.klocker@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [PATCH guest-common/manager/qemu-server v6 0/3] fix #5032: add guest time sync via QGA
Date: Tue, 10 Nov 2026 11:45:58 +0100 [thread overview]
Message-ID: <20261110104601.200493-1-j.klocker@proxmox.com> (raw)
This series adds a new agent option 'sync-time-on-resume' to
automatically synchronize the guest clock via the QEMU Guest Agent
after operations that can leave the guest time stale. The option is
disabled by default and only takes effect when the QEMU Guest Agent is
enabled.
When a VM resumes with a restored RAM state (waking from hibernation or
rolling back to a snapshot that includes RAM), the guest clock
continues from the point the state was saved and no longer matches
wall-clock time. Skew also appears whenever the guest is briefly
frozen and resumed - after creating a snapshot, an
ordinary pause/resume, the resume step of a live migration, or a
vzdump in suspend mode.
When enabled, the option triggers a guest-set-time call:
* after resuming from hibernation (suspend-to-disk)
* after rolling back to a snapshot that includes RAM
* after a live migration
* after an ordinary pause/resume
* after taking a snapshot
* after a vzdump backup in suspend mode
The start, resume and rollback API endpoints also accept a
'sync-time-on-resume' parameter that overrides the configured value for
a single operation.
The option is exposed in the VM configuration GUI
so it can be toggled per guest.
Changes since v5:
* drop the migration version check (covered by the strict config check
series and the same-version cluster requirement)
* vzdump: sync the guest clock after resuming from a suspend mode backup;
snapshot mode doesn't pause the vCPUs and stop mode boots the guest
fresh, so neither needs a sync
* vm_resume: skip the sync when resuming from 'prelaunch' (e.g. a VM
started paused for a backup) or after a reset, the guest boots fresh in
both cases
* guest_set_time: return whether the time was actually set
* rebased on current master
Changes since v4:
* rebased on current master
* no functional changes
Link: https://bugzilla.proxmox.com/show_bug.cgi?id=5032
pve-guest-common:
Jakob Klocker (1):
AbstractConfig: allow passing options to snapshot_rollback
src/PVE/AbstractConfig.pm | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
pve-manager:
Jakob Klocker (1):
fix #5032: ui: qemu agent: add sync-time-on-resume option
www/manager6/form/AgentFeatureSelector.js | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
qemu-server:
Jakob Klocker (1):
fix #5032: agent: sync guest time via QGA when the clock falls behind
src/PVE/API2/Qemu.pm | 75 ++++++++++++++++++++++++++++++++--
src/PVE/CLI/qm.pm | 2 +-
src/PVE/QemuConfig.pm | 12 +++++-
src/PVE/QemuMigrate.pm | 3 ++
src/PVE/QemuServer.pm | 18 +++++++-
src/PVE/QemuServer/Agent.pm | 64 +++++++++++++++++++++++++++++
src/PVE/QemuServer/RunState.pm | 15 ++++++-
src/PVE/VZDump/QemuServer.pm | 25 +++++++++++-
8 files changed, 203 insertions(+), 11 deletions(-)
Summary over all repositories:
10 files changed, 224 insertions(+), 13 deletions(-)
--
Generated by murpp 0.12.0
next reply other threads:[~2026-11-10 10:48 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-10 10:45 Jakob Klocker [this message]
2026-11-10 10:45 ` [PATCH pve-guest-common v6 1/3] AbstractConfig: allow passing options to snapshot_rollback Jakob Klocker
2026-11-10 10:46 ` [PATCH pve-manager v6 2/3] fix #5032: ui: qemu agent: add sync-time-on-resume option Jakob Klocker
2026-11-10 10:46 ` [PATCH qemu-server v6 3/3] fix #5032: agent: sync guest time via QGA when the clock falls behind Jakob Klocker
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=20261110104601.200493-1-j.klocker@proxmox.com \
--to=j.klocker@proxmox.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.