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
>

Reply via email to