This patch series attempts to add time resync support to qemu-ga by introducing qemu-ga commands guest-get-time and guest-set-time.
Right now, when a guest is paused or migrated to a file then loaded from that file, the guest OS has no idea that there was a big gap in the time. Depending on how long the gap was, NTP might not be able to resynchronize the guest. So adding new guest-agent command that is called any time a guest is resumed and which tells the guest to update its own wall clock time based on the information from the host will make it easier for a guest to resynchronize without waiting for NTP. The previous RFC send for discussion and suggestion as link here: http://article.gmane.org/gmane.comp.emulators.qemu/186126 The interface for these commands like: { 'command': 'guest-get-time', 'returns': 'int' } { 'command': 'guest-set-time', 'data': { 'time': int } } Notes: For the implementition of win32-specific commands, I plan to send it out in another thread later. Suggestions and comments are welcome! Changes since v4: - Fix the missing error exit pointed by Eric. - Doc improvement from Eric. Changes since v3: - Doc improvement based on Eric's suggestions. - Overflow check improve from Eric. Changes since v2: - Get rid of utc-offset, and make it just pass single nanoseconds relative to the Epoch in UTC/GMT according to Anthony and Eric's comments. - Make time argument mandatory. - Fix the overflow check for year-2038 problem. - Error handel improvment from Eric. Changes since v1: - Squashed patches add support to get host time and add guest-get-time command into one. - Documents improvment based on the suggestions from Eric and Mike. - Change the name of 'HostTimeInfo' to 'TimeInfo'. - Better use-case and logic for 'guest-set-time' command suggested by Eric. - Error handel improvment from Luiz. Lei Li (2): qga: add guest-get-time command qga: add guest-set-time command