On 01/30/2012 05:54 PM, Peter Maydell wrote:
> This lets the user specify the desired semantics. By default, the RTC
> will follow adjustments from the host's NTP client, and will remain in
> sync when the virtual machine is stopped. The previous behavior, which
> provides determinism with both icount and qtest, remains available with
> "-rtc clock=vm".
>
> pl031 supports migration, so we need to convert the time
> base from rtc_clock to vm_clock and back for backwards compatibility.
If it would be cleaner I'm entirely happy for us to do a version
bump and break binary compatibility. (We bump the version on
the CPUState pretty regularly anyhow; save/load for ARM devices
currently is mostly for the benefit of snapshot save/restore rather
than between-qemu-versions migration.)
Actually it's not really just backwards compatibility.
rtc_clock may be counting up from a different time base on the source
and destination machine. vm_clock is the only time base that is
migrated, so it is the only one that is safe to use in the data stream.
Perhaps I could transfer the timer deadline relative to the current
rtc_clock value and convert it again on the destination. However, it
would be basically the same code that transfers the value relative to
the vm_clock; it's just a different offset to apply.
Paolo