On 05/23/2014 12:17 PM, Laine Stump wrote:
*However*, this discussion forced me to investigate some of the
basic
assumptions that I'd been making when coming in to fix this bug. In
particular, my assumption was that the value of "adjustment" that was
set in the status would be preserved across a domain save/restore
operation, or a migration, but after talking to jdenemar and looking
at the code, I believe that this is *not* the case.
Okay, disregard this "sky is falling" outburst. I was misreading the
code and misinterpreting what jdenemar told me. The updated value of
adjustment and basis *are* properly preserved across save/restore and
migrate.
The problem Eric pointed out is real though (if the domain RTC is
modified while libvirtd isn't available to catch the RTC_CHANGE event,
libvirt will have an incorrect idea of adjustment. This will be
temporary until another RTC_CHANGE event happens *unless* the domain is
migrated or saved/restored before another RTC_CHANGE happens, in which
case the incorrectness will be semi-permanent (until the domain is
completely stopped and restarted).)
Also, as I understand it, this means that if a domain is migrated with
persistence, the new domain on the destination will have made the change
to adjustment and basis permanent, but if it stays on the same host that
change will only be valid until the domain is destroyed - next time it
is started it will go back to the original settings.