login
Login
/
Register
Search
Search this site:
Forums
News
Blogs
Features
Site
Home
»
Mailing list archives
»
linux-kernel
»
2010
»
August
»
20
Re: [KVM timekeeping 12/35] Robust TSC compensation
view
thread
Previous message: [
thread
] [
date
] [
author
]
Next message: [
thread
] [
date
] [
author
]
[view in full thread]
From: Glauber Costa
Subject:
Re: [KVM timekeeping 12/35] Robust TSC compensation
Date: Friday, August 20, 2010 - 10:40 am
On Thu, Aug 19, 2010 at 10:07:26PM -1000, Zachary Amsden wrote:
quoted text
> Make the match of TSC find TSC writes that are close to each other > instead of perfectly identical; this allows the compensator to also > work in migration / suspend scenarios. > > Signed-off-by: Zachary Amsden <zamsden@redhat.com> > --- > arch/x86/kvm/x86.c | 14 ++++++++++---- > 1 files changed, 10 insertions(+), 4 deletions(-) > > diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c > index 52680f6..0f3e5fb 100644 > --- a/arch/x86/kvm/x86.c > +++ b/arch/x86/kvm/x86.c > @@ -928,21 +928,27 @@ void kvm_write_tsc(struct kvm_vcpu *vcpu, u64 data) > struct kvm *kvm = vcpu->kvm; > u64 offset, ns, elapsed; > unsigned long flags; > + s64 sdiff; > > spin_lock_irqsave(&kvm->arch.tsc_write_lock, flags); > offset = data - native_read_tsc(); > ns = get_kernel_ns(); > elapsed = ns - kvm->arch.last_tsc_nsec; > + sdiff = data - kvm->arch.last_tsc_write; > + if (sdiff < 0) > + sdiff = -sdiff; > > /* > - * Special case: identical write to TSC within 5 seconds of > + * Special case: close write to TSC within 5 seconds of > * another CPU is interpreted as an attempt to synchronize > - * (the 5 seconds is to accomodate host load / swapping). > + * The 5 seconds is to accomodate host load / swapping as > + * well as any reset of TSC during the boot process. > * > * In that case, for a reliable TSC, we can match TSC offsets, > - * or make a best guest using kernel_ns value. > + * or make a best guest using elapsed value. > */ > - if (data == kvm->arch.last_tsc_write && elapsed < 5ULL * NSEC_PER_SEC) { > + if (sdiff < nsec_to_cycles(5ULL * NSEC_PER_SEC) && > + elapsed < 5ULL * NSEC_PER_SEC) { > if (!check_tsc_unstable()) {
Isn't 5 way too long for this case? --
unsubscribe notice
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to
majordomo@vger.kernel.org
More majordomo info at
http://vger.kernel.org/majordomo-info.html
Please read the FAQ at
http://www.tux.org/lkml/
Previous message: [
thread
] [
date
] [
author
]
Next message: [
thread
] [
date
] [
author
]
Messages in current thread:
[KVM timekeeping 12/35] Robust TSC compensation
, Zachary Amsden
, (Fri Aug 20, 1:07 am)
Re: [KVM timekeeping 12/35] Robust TSC compensation
, Glauber Costa
, (Fri Aug 20, 10:40 am)
Re: [KVM timekeeping 12/35] Robust TSC compensation
, Zachary Amsden
, (Mon Aug 23, 6:01 pm)
Re: [KVM timekeeping 12/35] Robust TSC compensation
, Daniel Verkamp
, (Tue Aug 24, 2:33 pm)
Navigation
Mailing list archives
Recent posts
Popular discussions
linux-kernel
:
Michael Trimarchi
Re: [PATCH] VFS: make file->f_pos access atomic on 32bit arch
Miklos Szeredi
[patch 14/15] vfs: more path_permission() conversions
Serge E. Hallyn
Re: [RFC v5][PATCH 7/8] Infrastructure for shared objects
Bernd Schmidt
Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3
Takashi Iwai
[PATCH 2/2] input: Add LED support to Synaptics device
git
:
Junio C Hamano
Re: mingw, windows, crlf/lf, and git
Eyvind Bernhardsen
Re: Where has "git ls-remote" reference pattern matching gone?
Shawn O. Pearce
Re: Switching from CVS to GIT
Todd Zullinger
Re: [PATCH 2/2] send-email: rfc2047-quote subject lines with non-ascii characters
Santi Béjar
Re: How to use git-fmt-merge-msg?
linux-netdev
:
Ramkrishna Vepa
[net-2.6 PATCH 1/10] Neterion: New driver: Driver help file
Mark Anthony
invitation / inquiry
Ingo Molnar
Re: [PATCH 08/16] dma-debug: add core checking functions
David Miller
Re: [PATCH 1/3] f_phonet: dev_kfree_skb instead of dev_kfree_skb_any in TX callback
Sascha Hauer
[PATCH 03/12] fec: do not typedef struct types
git-commits-head
:
Linux Kernel Mailing List
amba: struct device - replace bus_id with dev_name(), dev_set_name()
Linux Kernel Mailing List
MIPS: Yosemite: Convert SMP startup lock to arch spinlock.
Linux Kernel Mailing List
ARM: S5PC100: IRQ and timer
Linux Kernel Mailing List
davinci: edma: clear interrupt status for interrupt enabled channels only
Linux Kernel Mailing List
x86, mm, kprobes: fault.c, simplify notify_page_fault()
openbsd-misc
:
Daniel A. Ramaley
Re: [semi-OT] Can anyone recommend an OpenBSD-compatible colour laser printer?
Matthias Kilian
Re: can't get vesa @ 1280x800 or nv
Tobias Ulmer
Re: Problem after upgrade 4.5 to 4.6: ERR M
Philip Guenther
Re: SIGCHLD and libpthread.so
J.C. Roberts
Re: [semi-OT] Can anyone recommend an OpenBSD-compatible colour laser printer?
Colocation donated by:
Syndicate