Commit eade0f19 authored by bellard's avatar bellard

fix for hosts resuming from software suspend (initial patch by John Coiner)


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1884 c046a42c-6fe2-441c-8c8c-71466251a162
parent 07de1eaa
...@@ -558,6 +558,7 @@ int64_t cpu_get_real_ticks(void) ...@@ -558,6 +558,7 @@ int64_t cpu_get_real_ticks(void)
#error unsupported CPU #error unsupported CPU
#endif #endif
static int64_t cpu_ticks_prev;
static int64_t cpu_ticks_offset; static int64_t cpu_ticks_offset;
static int cpu_ticks_enabled; static int cpu_ticks_enabled;
...@@ -566,7 +567,15 @@ static inline int64_t cpu_get_ticks(void) ...@@ -566,7 +567,15 @@ static inline int64_t cpu_get_ticks(void)
if (!cpu_ticks_enabled) { if (!cpu_ticks_enabled) {
return cpu_ticks_offset; return cpu_ticks_offset;
} else { } else {
return cpu_get_real_ticks() + cpu_ticks_offset; int64_t ticks;
ticks = cpu_get_real_ticks();
if (cpu_ticks_prev > ticks) {
/* Note: non increasing ticks may happen if the host uses
software suspend */
cpu_ticks_offset += cpu_ticks_prev - ticks;
}
cpu_ticks_prev = ticks;
return ticks + cpu_ticks_offset;
} }
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment