On Sat, Oct 4, 2025 at 5:19 PM Michael Tokarev <[email protected]> wrote: > > On 9/11/25 12:56, TANG Tiancheng wrote: > > This patch set fixes several timer-related migration issues in QEMU's > > RISC-V implementation that cause timer events to be lost or behave > > incorrectly after snapshot save/restore or live migration. > > > > The problems addressed are: > > > > 1. ACLINT mtimer time_delta not migrated: The time_delta field in > > RISCVAclintMTimerState was missing from vmstate, causing incorrect > > mtime values after snapshot restore. This resulted in guest time > > appearing "frozen" until enough virtual time elapsed to compensate > > for the offset error. > > > > 2. ACLINT mtimer timers array not migrated: Active timer events > > scheduled via riscv_aclint_mtimer_write_timecmp() were not being > > migrated, causing pending timer interrupts to be lost after restore. > > > > 3. CPU stimer/vstimer not migrated: The S-mode and VS-mode timer > > pointers in CPURISCVState were missing from vmstate_riscv_cpu, > > causing supervisor-level timer events to be lost. > > > > The patch set introduces a new VMSTATE_TIMER_PTR_VARRAY macro to handle > > migration of variable-length timer pointer arrays, and adds the missing > > timer fields to the appropriate vmstate structures. > > > > Signed-off-by: TANG Tiancheng <[email protected]> > > --- > > Changes in v3: > > - Remove 'include/' of the subject at patch v2 2/4. > > - Added Reviewed-by from Peter Xu. > > - Link to v2: > > https://lore.kernel.org/qemu-devel/[email protected] > > > > Changes in v2: > > - Split VMSTATE_VARRAY_OF_POINTER_UINT32() into a separate patch, > > and define VMSTATE_TIMER_PTR_VARRAY() in riscv_aclint.h. > > - Added Reviewed-by from Daniel Henrique Barboza. > > - Link to v1: > > https://lore.kernel.org/qemu-devel/[email protected] > > > > --- > > TANG Tiancheng (4): > > hw/intc: Save time_delta in RISC-V mtimer VMState > > migration: Add support for a variable-length array of UINT32 pointers > > hw/intc: Save timers array in RISC-V mtimer VMState > > target/riscv: Save stimer and vstimer in CPU vmstate > > Am I right this stuff is not back-portable to previous qemu > stable releases, as it introduces new fields into the migration > stream which, which can't be picked up by these releases?
Yes, I don't think this should be backported as it'stargetting migration. Alistair > > From the description it seems like all this stuff should be fixed > in previous stable qemu releases too. > > Thanks, > > /mjt >
