On Wed, Dec 02, 2020 at 06:28:26PM +0100, Greg Kurz wrote: > A guest with enough RAM, eg. 128G, is likely to detect savevm downtime > and to complain about stalled CPUs. This happens because we re-read > the timebase just before migrating it and we thus don't account for > all the time between VM stop and pre-save. > > A very similar situation was already addressed for live migration of > paused guests (commit d14f33976282). Extend the logic to do the same > with savevm. > > Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1893787 > Signed-off-by: Greg Kurz <gr...@kaod.org>
Applied to ppc-for-6.0, thanks. > --- > hw/ppc/ppc.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/hw/ppc/ppc.c b/hw/ppc/ppc.c > index 1b9827207676..5cbbff1f8d0c 100644 > --- a/hw/ppc/ppc.c > +++ b/hw/ppc/ppc.c > @@ -1027,7 +1027,8 @@ static void timebase_save(PPCTimebase *tb) > */ > tb->guest_timebase = ticks + first_ppc_cpu->env.tb_env->tb_offset; > > - tb->runstate_paused = runstate_check(RUN_STATE_PAUSED); > + tb->runstate_paused = > + runstate_check(RUN_STATE_PAUSED) || > runstate_check(RUN_STATE_SAVE_VM); > } > > static void timebase_load(PPCTimebase *tb) > @@ -1088,7 +1089,7 @@ static int timebase_pre_save(void *opaque) > { > PPCTimebase *tb = opaque; > > - /* guest_timebase won't be overridden in case of paused guest */ > + /* guest_timebase won't be overridden in case of paused guest or savevm > */ > if (!tb->runstate_paused) { > timebase_save(tb); > } > > -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature