qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v2] kvmclock: Ensure time in migration never goe


From: Marcin Gibuła
Subject: Re: [Qemu-devel] [PATCH v2] kvmclock: Ensure time in migration never goes backward
Date: Mon, 02 Jun 2014 22:31:44 +0200
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0

+    cpu_physical_memory_read(kvmclock_struct_pa, &time, sizeof(time));
+
+    delta = migration_tsc - time.tsc_timestamp;

Hi,

when I was testing live storage migration with libvirt I found out that this patch can cause virtual machine to hang when completing mirror job.

This is (probably) because kvmclock_current_nsec() is called twice in a row and on second call time.tsc_timestamp is larger than migration_tsc. This causes delta to be huge and sets timer to invalid value.

The double call happens when switching from old to new disk (pivoting in libvirt's nomenclature).

Example values:

First call: migration_tsc: 12052203518652476, time_tsc: 12052203301565676, delta 108543400

Second call: migration_tsc: 12052203518652476, time_tsc: 12052204478600322, delta 9223372036374801885

Perhaps it is worth adding:

if (time.tsc_timestamp > migration_tsc) {
    return 0;
}

there? Untested though...

--
mg



reply via email to

[Prev in Thread] Current Thread [Next in Thread]