[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v3]MC146818 RTC: coordinate guest clock base to dest
From: |
address@hidden |
Subject: |
[Qemu-devel] [PATCH v3]MC146818 RTC: coordinate guest clock base to destination host after migration |
Date: |
Mon, 26 Sep 2016 16:42:17 +0800 |
MC146818 RTC: coordinate guest clock base to destination host after migration
qemu tracks guest time based on vector [base_rtc, last_update], in which
last_update stands for a monotonic tick which is actually uptime of the host.
according to rtc implementation codes of recent releases and upstream, after
migration, the time base vector [base_rtc, last_update] isn't updated to
coordinate with the destionation host, ie. qemu doesnt update last_update to
uptime of the destination host.
what problem have we got because of this bug? after migration, guest time may
jump back to several days ago, that will make some critical business
applications,
such as lotus notes, malfunction.
this patch is trying to fix the problem. first, when vmsave in progress, we
rtc_update_time to refresh time stamp in cmos array, then during vmrestore,
we rtc_set_time to update qemu base_rtc and last_update variable according to
time
stamp in cmos array.
Signed-off-by: Junlian Bell <address@hidden>
---
hw/timer/mc146818rtc.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/hw/timer/mc146818rtc.c b/hw/timer/mc146818rtc.c
index ea625f2..1e0ed14 100644
--- a/hw/timer/mc146818rtc.c
+++ b/hw/timer/mc146818rtc.c
@@ -717,11 +717,19 @@ static void rtc_set_date_from_host(ISADevice *dev)
rtc_set_cmos(s, &tm);
}
+static void rtc_pre_save(void *opaque)
+{
+ RTCState *s = opaque;
+
+ rtc_update_time(s);
+}
+
static int rtc_post_load(void *opaque, int version_id)
{
RTCState *s = opaque;
- if (version_id <= 2) {
+ if (version_id <= 2 ||
+ rtc_clock == QEMU_CLOCK_REALTIME){
rtc_set_time(s);
s->offset = 0;
check_update_timer(s);
--
2.9.0.windows.1
- Re: [Qemu-devel] [PATCH]MC146818 RTC: coordinate guest clock base to destination host after migration, (continued)
- Re: [Qemu-devel] [PATCH]MC146818 RTC: coordinate guest clock base to destination host after migration, address@hidden, 2016/09/20
- Re: [Qemu-devel] [PATCH]MC146818 RTC: coordinate guest clock base to destination host after migration, address@hidden, 2016/09/20
- Re: [Qemu-devel] [PATCH]MC146818 RTC: coordinate guest clock base to destination host after migration, Paolo Bonzini, 2016/09/20
- Re: [Qemu-devel] [PATCH]MC146818 RTC: coordinate guest clock base to destination host after migration, address@hidden, 2016/09/21
- Re: [Qemu-devel] [PATCH]MC146818 RTC: coordinate guest clock base to destination host after migration, address@hidden, 2016/09/21
- Re: [Qemu-devel] [PATCH]MC146818 RTC: coordinate guest clock base to destination host after migration, Paolo Bonzini, 2016/09/21
- Re: [Qemu-devel] [PATCH]MC146818 RTC: coordinate guest clock base to destination host after migration, address@hidden, 2016/09/22
- [Qemu-devel] [PATCH v2]MC146818 RTC: coordinate guest clock base to destination host after migration, address@hidden, 2016/09/25
- Re: [Qemu-devel] [PATCH v2]MC146818 RTC: coordinate guest clock base to destination host after migration, Paolo Bonzini, 2016/09/26
- [Qemu-devel] [PATCH v3]MC146818 RTC: coordinate guest clock base to destination host after migration,
address@hidden <=
- Re: [Qemu-devel] [PATCH v3]MC146818 RTC: coordinate guest clock base to destination host after migration, Paolo Bonzini, 2016/09/26
- [Qemu-devel] [PATCH v4]MC146818 RTC: coordinate guest clock base to destination host after migration, address@hidden, 2016/09/26
- Re: [Qemu-devel] [PATCH v4]MC146818 RTC: coordinate guest clock base to destination host after migration, Paolo Bonzini, 2016/09/26
- [Qemu-devel] [PATCH]MC146818 RTC: Get correct guest time when irq coalesced, address@hidden, 2016/09/26
- Re: [Qemu-devel] [PATCH]MC146818 RTC: Get correct guest time when irq coalesced, Paolo Bonzini, 2016/09/26
- Re: [Qemu-devel] [PATCH]MC146818 RTC: Get correct guest time when irq coalesced, address@hidden, 2016/09/26