Messages in this thread | | | Date | Tue, 18 Dec 2007 19:20:51 +0200 | From | Avi Kivity <> | Subject | Guest kernel hangs in smp kvm for older kernels prior to tsc sync cleanup |
| |
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
| |