From: Avi Kivity <avi@qumranet.com>
To: Ingo Molnar <mingo@elte.hu>, Thomas Gleixner <tglx@linutronix.de>
Cc: kvm-devel <kvm-devel@lists.sourceforge.net>,
linux-kernel <linux-kernel@vger.kernel.org>
Subject: Guest kernel hangs in smp kvm for older kernels prior to tsc sync cleanup
Date: Tue, 18 Dec 2007 19:20:51 +0200 [thread overview]
Message-ID: <47680173.6060606@qumranet.com> (raw)
Booting RHEL 5 i386 in kvm with -no-kvm-irqchip -smp 4 will hang in
udev. I bisected this to a change in the _guest_ kernel:
> commit 95492e4646e5de8b43d9a7908d6177fb737b61f0
> Author: Ingo Molnar <mingo@elte.hu>
> Date: Fri Feb 16 01:27:34 2007 -0800
>
> [PATCH] x86: rewrite SMP TSC sync code
>
> make the TSC synchronization code more robust, and unify it
> between x86_64 and
> i386.
>
> The biggest change is the removal of the 'fix up TSCs' code on
> x86_64 and
> i386, in some rare cases it was /causing/ time-warps on SMP systems.
>
> The new code only checks for TSC asynchronity - and if it can prove a
> time-warp (if it can observe the TSC going backwards when going
> from one CPU
> to another within a critical section), then the TSC clock-source
> is turned
> off.
>
> The TSC synchronization-checking code also got moved into a
> separate file.
So, guest kernels prior to this commit will hang in kvm smp; after this
commit they will boot fine.
While the change mentions that it fixes a time warp bug, it also says it
should be rare. So clearly kvm smp tsc handing is buggy. Ingo/Thomas,
(or anybody else), do you have any insight as to what kvm can be doing
wrong to trigger this behavior?
--
error compiling committee.c: too many arguments to function
WARNING: multiple messages have this Message-ID (diff)
From: Avi Kivity <avi-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
To: Ingo Molnar <mingo-X9Un+BFzKDI@public.gmane.org>,
Thomas Gleixner <tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org>
Cc: kvm-devel
<kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org>,
linux-kernel
<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Guest kernel hangs in smp kvm for older kernels prior to tsc sync cleanup
Date: Tue, 18 Dec 2007 19:20:51 +0200 [thread overview]
Message-ID: <47680173.6060606@qumranet.com> (raw)
Booting RHEL 5 i386 in kvm with -no-kvm-irqchip -smp 4 will hang in
udev. I bisected this to a change in the _guest_ kernel:
> commit 95492e4646e5de8b43d9a7908d6177fb737b61f0
> Author: Ingo Molnar <mingo-X9Un+BFzKDI@public.gmane.org>
> Date: Fri Feb 16 01:27:34 2007 -0800
>
> [PATCH] x86: rewrite SMP TSC sync code
>
> make the TSC synchronization code more robust, and unify it
> between x86_64 and
> i386.
>
> The biggest change is the removal of the 'fix up TSCs' code on
> x86_64 and
> i386, in some rare cases it was /causing/ time-warps on SMP systems.
>
> The new code only checks for TSC asynchronity - and if it can prove a
> time-warp (if it can observe the TSC going backwards when going
> from one CPU
> to another within a critical section), then the TSC clock-source
> is turned
> off.
>
> The TSC synchronization-checking code also got moved into a
> separate file.
So, guest kernels prior to this commit will hang in kvm smp; after this
commit they will boot fine.
While the change mentions that it fixes a time warp bug, it also says it
should be rare. So clearly kvm smp tsc handing is buggy. Ingo/Thomas,
(or anybody else), do you have any insight as to what kvm can be doing
wrong to trigger this behavior?
--
error compiling committee.c: too many arguments to function
-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
next reply other threads:[~2007-12-18 17:21 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-12-18 17:20 Avi Kivity [this message]
2007-12-18 17:20 ` Guest kernel hangs in smp kvm for older kernels prior to tsc sync cleanup Avi Kivity
2007-12-18 22:19 ` Ingo Molnar
2007-12-18 22:19 ` Ingo Molnar
2007-12-19 6:33 ` Avi Kivity
2007-12-19 6:33 ` Avi Kivity
2007-12-19 11:19 ` [kvm-devel] " Avi Kivity
2007-12-19 11:19 ` Avi Kivity
2007-12-19 11:39 ` [kvm-devel] " Avi Kivity
2007-12-19 14:06 ` Ingo Molnar
2007-12-19 14:06 ` Ingo Molnar
2007-12-19 14:27 ` [kvm-devel] " Avi Kivity
2007-12-19 15:32 ` Glauber de Oliveira Costa
2007-12-19 15:32 ` Glauber de Oliveira Costa
2007-12-19 15:41 ` [kvm-devel] " Avi Kivity
2007-12-20 10:34 ` Glauber de Oliveira Costa
2007-12-20 10:34 ` Glauber de Oliveira Costa
2007-12-19 16:55 ` [kvm-devel] " Amit Shah
2007-12-19 16:55 ` Amit Shah
2007-12-19 17:04 ` [kvm-devel] Guest kernel hangs in smp kvm for older kernelsprior " Dor Laor
2007-12-19 17:04 ` Dor Laor
2007-12-19 17:09 ` [kvm-devel] " Avi Kivity
2007-12-19 17:09 ` Avi Kivity
2007-12-19 14:53 ` [kvm-devel] Guest kernel hangs in smp kvm for older kernels prior " Avi Kivity
2007-12-19 14:53 ` Avi Kivity
2007-12-19 15:09 ` [kvm-devel] " Ingo Molnar
2007-12-19 15:21 ` Avi Kivity
2007-12-19 15:21 ` Avi Kivity
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=47680173.6060606@qumranet.com \
--to=avi@qumranet.com \
--cc=kvm-devel@lists.sourceforge.net \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=tglx@linutronix.de \
/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.