On 2/21/21 2:59 PM, Claudio Fontana wrote: > On 2/21/21 10:55 AM, Philippe Mathieu-Daudé wrote: >> On 2/21/21 10:24 AM, Claudio Fontana wrote: >>> From: Claudio Fontana <cfont...@centriq4.arch.suse.de> >>> >>> KVM has its own cpu->kvm_vtime. >>> >>> Adjust cpu vmstate by putting unused fields instead of the >>> VMSTATE_TIMER_PTR when TCG is not available. >>> >>> Signed-off-by: Claudio Fontana <cfont...@suse.de> >>> --- >>> target/arm/cpu.c | 4 +++- >>> target/arm/machine.c | 5 +++++ >>> 2 files changed, 8 insertions(+), 1 deletion(-) >>> >>> diff --git a/target/arm/cpu.c b/target/arm/cpu.c >>> index 1d81a1e7ac..b929109054 100644 >>> --- a/target/arm/cpu.c >>> +++ b/target/arm/cpu.c >>> @@ -1322,6 +1322,7 @@ static void arm_cpu_realizefn(DeviceState *dev, Error >>> **errp) >>> } >>> } >>> >>> +#ifdef CONFIG_TCG >>> { >>> uint64_t scale; >>> >>> @@ -1347,7 +1348,8 @@ static void arm_cpu_realizefn(DeviceState *dev, Error >>> **errp) >>> cpu->gt_timer[GTIMER_HYPVIRT] = timer_new(QEMU_CLOCK_VIRTUAL, >>> scale, >>> arm_gt_hvtimer_cb, cpu); >> >> What about Xen? > > Good question, what about it.. > > Ccing also Olaf.
This being arm, maybe Alex could shed some light? I think you are active on Xen on ARM right? Thanks, Ciao > > >> >>> } >>> -#endif >>> +#endif /* CONFIG_TCG */ >>> +#endif /* !CONFIG_USER_ONLY */ >>> >>> cpu_exec_realizefn(cs, &local_err); >>> if (local_err != NULL) { >>> diff --git a/target/arm/machine.c b/target/arm/machine.c >>> index 666ef329ef..13d7c6d930 100644 >>> --- a/target/arm/machine.c >>> +++ b/target/arm/machine.c >>> @@ -822,8 +822,13 @@ const VMStateDescription vmstate_arm_cpu = { >>> VMSTATE_UINT32(env.exception.syndrome, ARMCPU), >>> VMSTATE_UINT32(env.exception.fsr, ARMCPU), >>> VMSTATE_UINT64(env.exception.vaddress, ARMCPU), >>> +#ifdef CONFIG_TCG >>> VMSTATE_TIMER_PTR(gt_timer[GTIMER_PHYS], ARMCPU), >>> VMSTATE_TIMER_PTR(gt_timer[GTIMER_VIRT], ARMCPU), >>> +#else >>> + VMSTATE_UNUSED(sizeof(QEMUTimer *)), >>> + VMSTATE_UNUSED(sizeof(QEMUTimer *)), >>> +#endif /* CONFIG_TCG */ >>> { >>> .name = "power_state", >>> .version_id = 0, >>> >> >