[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] target-i386: clear guest TSC on reset
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH] target-i386: clear guest TSC on reset |
Date: |
Thu, 05 Dec 2013 17:32:54 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130923 Thunderbird/17.0.9 |
Il 05/12/2013 17:12, Marcelo Tosatti ha scritto:
>> > - call kvm_set_ticks() from cpu_set_ticks() and cpu_enable_ticks()
> env->tsc is just a placeholder for the vcpu TSC.
>
> A vcpus TSC from QEMU's point of view is a register initialized to zero,
> which requires read/write from KVM, and migration.
QEMU already tracks the TSC in cpu_get_ticks(). So far this is used
only for TCG, but for example the code is there that preserves the TSC
when you stop/resume the VM and when you migrate the VM. Reset is not
yet there, which is a bug similar to the one Fernando is trying to solve
for KVM.
So, from QEMU's point of view the TSC should be a global value across
the whole system (timer_state.cpu_ticks_offset) + a per-VCPU TSC offset
(env->tsc_adjust). When talking to KVM, the per-VCPU TSC offset in turn
has two parts, both set with KVM_SET_MSRS: one is computed from
MSR_IA32_TSC, the other comes from MSR_IA32_TSC_ADJUST.
The point here would be to treat it as such.
With this change, env->tsc need not be migrated. The global value
timer_state.cpu_ticks_offset is migrated already. The host-side TSC
adjust can be computed from rdtsc()-timer_state.cpu_ticks_offset on the
destination machine and/or at reset time. The guest-side TSC adjust is
env->tsc_adjust as it is now.
Paolo
- [Qemu-devel] [PATCH 2/2] target-i386: do not special case TSC writeback, (continued)
- [Qemu-devel] [PATCH 2/2] target-i386: do not special case TSC writeback, Fernando Luis Vázquez Cao, 2013/12/06
- Re: [Qemu-devel] [PATCH] target-i386: clear guest TSC on reset, Paolo Bonzini, 2013/12/06
- Re: [Qemu-devel] [PATCH] target-i386: clear guest TSC on reset, Fernando Luis Vázquez Cao, 2013/12/06
- Re: [Qemu-devel] [PATCH] target-i386: clear guest TSC on reset, Paolo Bonzini, 2013/12/06
- Re: [Qemu-devel] [PATCH] target-i386: clear guest TSC on reset, Fernando Luis Vazquez Cao, 2013/12/06
- Re: [Qemu-devel] [PATCH] target-i386: clear guest TSC on reset, Marcelo Tosatti, 2013/12/06
- Re: [Qemu-devel] [PATCH] target-i386: clear guest TSC on reset, Fernando Luis Vázquez Cao, 2013/12/09
- Re: [Qemu-devel] [PATCH] target-i386: clear guest TSC on reset, Fernando Luis Vázquez Cao, 2013/12/11
- Re: [Qemu-devel] [PATCH] target-i386: clear guest TSC on reset, Paolo Bonzini, 2013/12/12
- Re: [Qemu-devel] [PATCH] target-i386: clear guest TSC on reset, Marcelo Tosatti, 2013/12/05
- Re: [Qemu-devel] [PATCH] target-i386: clear guest TSC on reset,
Paolo Bonzini <=