Fix deep C-state TSC desynchronization
On 06/15/2010 10:34 AM, Zachary Amsden wrote: When CPUs with unstable TSCs enter deep C-state, TSC may stop running. This causes us to require resynchronization. Since we can't tell when this may potentially happen, we assume the worst by forcing re-compensation for it at every point the VCPU task is d... 14 Jul 2010 13:11
[PATCH] max730x: make pullups configurable via platformdata
The gpios on the max730x chips have support for internal pullups while in input mode. This patch adds support for configuring these pullups via platform data. A new member ("input_pullup_active") to the platform data struct is introduced. A set bit in this variable activates the pullups while the respective port... 15 Jun 2010 04:21
[PATCH 17/17] Add timekeeping documentation
Basic informational document about x86 timekeeping and how KVM is affected. Signed-off-by: Zachary Amsden <zamsden(a)> --- Documentation/kvm/timekeeping.txt | 599 +++++++++++++++++++++++++++++++++++++ 1 files changed, 599 insertions(+), 0 deletions(-) create mode 100644 Documentation/kvm/timekeeping... 15 Jun 2010 04:21
[PATCH 12/17] Add helper function get_kernel_ns
Add a helper function for the multiple places this is used. Note that it must not be called in preemptible context, as that would mean the kernel could enter software suspend state, which would cause non-atomic operation of the monotonic_to_bootbased computation. Open question: should the KVM_SET_CLOCK / KVM_GET... 15 Jun 2010 04:21
[PATCH 16/17] TSC reset compensation
Attempt to synchronize TSCs which are reset to the same value. In the case of a reliable hardware TSC, we can just re-use the same offset, but on non-reliable hardware, we can get closer by adjusting the offset to match the elapsed time. Signed-off-by: Zachary Amsden <zamsden(a)> --- arch/x86/kvm/x86.... 15 Jun 2010 04:21
[PATCH 15/17] Fix AMD C1 TSC desynchronization
Some AMD based machines can have TSC drift when in C1 HLT state because despite attempting to scale the TSC increment when dividing down the P-state, the processor may return to full P-state to service cache probes. The TSC of halted CPUs can advance faster than that of running CPUs as a result, causing unpredicta... 15 Jun 2010 04:21
[PATCH 08/17] Add clock sync request to hardware enable
If there are active VCPUs which are marked as belonging to a particular hardware CPU, request a clock sync for them when enabling hardware; the TSC could be desynchronized on a newly arriving CPU, and we need to recompute guests system time relative to boot after a suspend event. This covers both cases. Note ... 15 Jun 2010 04:21
[PATCH 07/17] Perform hardware_enable in CPU_STARTING callback
The CPU_STARTING callback was added upstream with the intention of being used for KVM, specifically for the hardware enablement that must be done before we can run in hardware virt. It had bugs on the x86_64 architecture at the time, where it was called after CPU_ONLINE. The arches have since merged and the bug i... 15 Jun 2010 04:21
[PATCH 05/17] Keep SMP VMs more in sync on unstable TSC
SMP VMs on machines with unstable TSC have their TSC offset adjusted by the local offset delta from last measurement. This does not take into account how long it has been since the measurement, leading to drift. Minimize the drift by accounting for any time difference the kernel has observed. Signed-off-by: Zac... 15 Jun 2010 04:21
[PATCH 10/17] Make KVM clock computation work for other scales
The math in kvm_get_time_scale relies on the fact that NSEC_PER_SEC < 2^32. To use the same function to compute arbitrary time scales, we must extend the first reduction step to shrink the base rate to a 32-bit value, and possibly reduce the scaled rate into a 32-bit as well. Note we must take care to avoid an ... 15 Jun 2010 04:21