Avi Kivity wrote:
On 07/27/2010 02:49 PM, Andre Przywara wrote:
What is the guest executing when it hangs?
Both VCPUs are halted, the monitor and System.map tell me it's in
native_safe_halt().
The code sequence confirms this, it is an intentional sti;hlt condition.
Using -smp 16 also shows that all 16 VCPUs are stuck.
Well, strange. The intent of that patch was to make the clock never go
backwards. Perhaps the change made it go forwards by a large amount,
and the guest is not hung, just waiting for some timer that is far in
the future.
Can you do something like
- if (ret < last)
+ if (ret < last) {
+ static u64 max_delta;
+ if (last - ret > max_delta) {
+ max_delta = last - ret;
+ printk("advancing kvmclock by: %llx\n", max_delta);
+ }
return last;
+ }
to see if this is happening?
No change, it still hangs. I also don't see the printk.
The output with smp=1 is like this:
[ 1.186549] ACPI: Power Button [PWRF]
[ 1.189204] XENFS: not registering filesystem on non-xen platform
[ 1.195001] Non-volatile memory driver v1.3
[ 1.196358] Linux agpgart interface v0.103
[ 1.197687] [drm] Initialized drm 1.1.0 20060810
[ 1.198926] [drm:i915_init] *ERROR* drm/i915 can't work without
intel_agp module!
[ 1.201213] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
ÿ[ 1.460714] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[ 1.463243] 00:06: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[ 1.467153] brd: module loaded
[ 1.469245] loop: module loaded
With smp=2 the output stops just before the strange "y" character (I
guess it's ASCII 255), which I assume is an artifact of the serial console.
As you can see at the timestamps, it takes some time between the last
shown line (1.201213) and the first missing one (1.460714).
Thanks,
Andre.
--
Andre Przywara
AMD-OSRC (Dresden)
Tel: x29712
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html