From: David Matlack <dmatlack@google.com>
To: Marcelo Tosatti <mtosatti@redhat.com>
Cc: pbonzini@redhat.com, kvm@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] kvm: x86: add trace event for pvclock updates
Date: Wed, 12 Nov 2014 10:00:50 -0800 [thread overview]
Message-ID: <20141112180050.GA22530@google.com> (raw)
In-Reply-To: <20141111011850.GA12749@amt.cnet>
On 11/10 11:18 PM, Marcelo Tosatti wrote:
> On Wed, Nov 05, 2014 at 11:46:42AM -0800, David Matlack wrote:
> > The new trace event records:
> > * the id of vcpu being updated
> > * the pvclock_vcpu_time_info struct being written to guest memory
> >
> > This is useful for debugging pvclock bugs, such as the bug fixed by
> > "[PATCH] kvm: x86: Fix kvm clock versioning.".
> >
> > Signed-off-by: David Matlack <dmatlack@google.com>
>
> So you actually hit that bug in practice? Can you describe the
> scenario?
We noticed guests running stress workloads would occasionally get stuck
on the far side of a save/restore. Inspecting the guest state revealed
arch/x86/kernel/pvclock.c:last_value was stuck at a value like
8020566108469899263, despite TSC and pvclock looking sane.
Since these guests ran without PVCLOCK_TSC_STABLE_BIT set in their
CPUID, they were stuck with this large time value until real time
caught up (in about 250 years :).
We've been unable to reproduce the bug with "kvm: x86: Fix kvm clock
versioning." so we didn't invest in catching the overflow in the act,
but a likely explanation is the guest gets save/restore-ed while
computing the pvclock delta:
u64 delta = __native_read_tsc() - src->tsc_timestamp;
causing the subtraction to underflow and delta to be huge.
>
>
prev parent reply other threads:[~2014-11-12 18:00 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-05 19:46 [PATCH] kvm: x86: add trace event for pvclock updates David Matlack
2014-11-06 10:53 ` Paolo Bonzini
2014-11-11 1:18 ` Marcelo Tosatti
2014-11-12 18:00 ` David Matlack [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20141112180050.GA22530@google.com \
--to=dmatlack@google.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mtosatti@redhat.com \
--cc=pbonzini@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.