From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1M01Y8-0000xz-AC for qemu-devel@nongnu.org; Fri, 01 May 2009 18:49:44 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1M01Y3-0000tL-Ni for qemu-devel@nongnu.org; Fri, 01 May 2009 18:49:43 -0400 Received: from [199.232.76.173] (port=60744 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1M01Y3-0000t6-K3 for qemu-devel@nongnu.org; Fri, 01 May 2009 18:49:39 -0400 Received: from fmmailgate01.web.de ([217.72.192.221]:38771) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1M01Y2-0005sB-UO for qemu-devel@nongnu.org; Fri, 01 May 2009 18:49:39 -0400 Message-ID: <49FB7C81.80101@web.de> Date: Sat, 02 May 2009 00:49:37 +0200 From: Jan Kiszka MIME-Version: 1.0 References: <20090501211717.24514.23246.stgit@mchn012c.ww002.siemens.net> In-Reply-To: <20090501211717.24514.23246.stgit@mchn012c.ww002.siemens.net> Content-Type: text/plain; charset=UTF-8 Sender: jan.kiszka@web.de Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PATCH 9/8] kvm: Save/restore TSC counter List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: Avi Kivity , qemu-devel@nongnu.org This bit was still missing for stable save/restore or migrate. Only KVM uses CPUState::tsc, so this value was not yet included into the CPU snapshot. --- target-i386/cpu.h | 2 +- target-i386/machine.c | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/target-i386/cpu.h b/target-i386/cpu.h index c6bca94..538cbb1 100644 --- a/target-i386/cpu.h +++ b/target-i386/cpu.h @@ -837,7 +837,7 @@ static inline int cpu_get_time_fast(void) #define cpu_signal_handler cpu_x86_signal_handler #define cpu_list x86_cpu_list =20 -#define CPU_SAVE_VERSION 8 +#define CPU_SAVE_VERSION 9 =20 /* MMU modes definitions */ #define MMU_MODE0_SUFFIX _kernel diff --git a/target-i386/machine.c b/target-i386/machine.c index 4fc7335..27aebf4 100644 --- a/target-i386/machine.c +++ b/target-i386/machine.c @@ -149,6 +149,8 @@ void cpu_save(QEMUFile *f, void *opaque) qemu_put_be64s(f, &env->mtrr_var[i].base); qemu_put_be64s(f, &env->mtrr_var[i].mask); } + + qemu_put_be64s(f, &env->tsc); } =20 #ifdef USE_X86LDOUBLE @@ -183,8 +185,7 @@ int cpu_load(QEMUFile *f, void *opaque, int version_i= d) uint16_t fpus, fpuc, fptag, fpregs_format; int32_t a20_mask; =20 - if (version_id !=3D 3 && version_id !=3D 4 && version_id !=3D 5 - && version_id !=3D 6 && version_id !=3D 7 && version_id !=3D 8) + if (version_id < 3 || version_id > CPU_SAVE_VERSION) return -EINVAL; for(i =3D 0; i < CPU_NB_REGS; i++) qemu_get_betls(f, &env->regs[i]); @@ -328,6 +329,9 @@ int cpu_load(QEMUFile *f, void *opaque, int version_i= d) qemu_get_be64s(f, &env->mtrr_var[i].mask); } } + if (version_id >=3D 9) { + qemu_get_be64s(f, &env->tsc); + } =20 /* XXX: ensure compatiblity for halted bit ? */ /* XXX: compute redundant hflags bits */