public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
From: Arjan Koers <0h61vkll2ly8@xutrox.com>
To: kvm@vger.kernel.org
Cc: Zachary Amsden <zamsden@redhat.com>,
	Marcelo Tosatti <mtosatti@redhat.com>,
	Michael Tokarev <mjt@tls.msk.ru>, Avi Kivity <avi@redhat.com>,
	Glauber Costa <glommer@redhat.com>,
	Andre Przywara <andre.przywara@amd.com>
Subject: Re: 2.6.35-rc1 regression with pvclock and smp guests
Date: Wed, 20 Oct 2010 22:47:39 +0200	[thread overview]
Message-ID: <4CBF556B.7020803@xutrox.com> (raw)
In-Reply-To: <4CAFC11B.8010603@xutrox.com>

On 2010-10-09 03:10, Arjan Koers wrote:
> > On 2010-10-09 00:06, Marcelo Tosatti wrote:
...
>> >>
>> >> Backports attached. Michael, Arjan, please give them a try.
>> >>
> >
> > Thanks for the patches.
> >
> > Successfully tested with 2.6.34.7, 2.6.35.7 and 2.6.36-rc7 host
> > (with a 2.6.35.7 guest).

Here's a smaller version of a previous email that didn't make it to
the list...


The host side fixes stop the hanging problem, but the real problem is
on the guest:
The guest starts with one hv_clock struct, which gets written to by
the host (for CPU0).
The percpu code allocates separate hv_clock structs for each CPU and
copies the data from the old hv_clock struct to the new structs.
The CPU1 hv_clock struct with old CPU0 data is accessed, which causes
the problems.

I've performed some tests with an unmodified 2.6.32.24 host and a
recent kvm.git guest. The unmodified guest hangs. A modified guest
where the CPU1 hv_clock struct is initialized to 0, doesn't hang.

Here's a boot log that shows what happens:

 +-printk_cpu (kernel/printk.c)
 |                +-&hv_clock CPU0 (arch/x86/kernel/kvmclock.c)
 |                |        +-hv_clock.version CPU0
 |                |        |                +-&hv_clock CPU1
 |                |        |                |        +-hv_clock.version CPU1
 |                |        |                |        |
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000] Linux version 2.6.36-rc7-201010141519-guestmp-kvm+ (arjan@dev-lenny) (gcc version 4.4.5 20100728 (prerelease) (Debian 4.4.4-8) ) #1 SMP Thu Oct 14 15:22:48 UTC 2010
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-2.6.36-rc7-201010141519-guestmp-kvm+ root=UUID=22a4b388-70e0-4d2a-9aa1-bd842504378a ro quiet
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000] BIOS-provided physical RAM map:
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000]  BIOS-e820: 0000000000000000 - 000000000009bc00 (usable)
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000]  BIOS-e820: 000000000009bc00 - 00000000000a0000 (reserved)
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000]  BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000]  BIOS-e820: 0000000000100000 - 000000001fffd000 (usable)
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000]  BIOS-e820: 000000001fffd000 - 0000000020000000 (reserved)
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000]  BIOS-e820: 00000000fffc0000 - 0000000100000000 (reserved)
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000]  BIOS-e820: feffd00000000000 - ff00100000000000 (reserved)
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000] NX (Execute Disable) protection: active
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000] DMI 2.4 present.
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000] e820 update range: 0000000000000000 - 0000000000001000 (usable) ==> (reserved)
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000] e820 remove range: 00000000000a0000 - 0000000000100000 (usable)
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000] No AGP bridge found
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000] last_pfn = 0x1fffd max_arch_pfn = 0x400000000
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000] MTRR default type: write-back
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000] MTRR fixed ranges enabled:
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000]   00000-9FFFF write-back
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000]   A0000-BFFFF uncachable
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000]   C0000-FFFFF write-protect
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000] MTRR variable ranges enabled:
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000]   0 base 00E0000000 mask FFE0000000 uncachable
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000]   1 disabled
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000]   2 disabled
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000]   3 disabled
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000]   4 disabled
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000]   5 disabled
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000]   6 disabled
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000]   7 disabled
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000] x86 PAT enabled: cpu 0, old 0x0, new 0x7010600070106
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000] initial memory mapped : 0 - 20000000
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000] Using GB pages for direct mapping
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000] init_memory_mapping: 0000000000000000-000000001fffd000
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000]  0000000000 - 001fe00000 page 2M
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000]  001fe00000 - 001fffd000 page 4k
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000] kernel direct mapping tables up to 1fffd000 @ 8000-b000
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000] RAMDISK: 17df6000 - 1803e000
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000] ACPI: RSDP 00000000000fdb80 00014 (v00 BOCHS )
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000] ACPI: RSDT 000000001fffde10 00034 (v01 BOCHS  BXPCRSDT 00000001 BXPC 00000001)
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000] ACPI: FACP 000000001ffffe40 00074 (v01 BOCHS  BXPCFACP 00000001 BXPC 00000001)
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000] ACPI: DSDT 000000001fffdfd0 01E22 (v01   BXPC   BXDSDT 00000001 INTL 20090123)
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000] ACPI: FACS 000000001ffffe00 00040
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000] ACPI: SSDT 000000001fffdf80 00044 (v01 BOCHS  BXPCSSDT 00000001 BXPC 00000001)
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000] ACPI: APIC 000000001fffde90 0007A (v01 BOCHS  BXPCAPIC 00000001 BXPC 00000001)
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000] ACPI: HPET 000000001fffde50 00038 (v01 BOCHS  BXPCHPET 00000001 BXPC 00000001)
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000] ACPI: Local APIC address 0xfee00000
[0 ffffffff81324fc0        0 ffffffff81324fc0        0     0.000000] kvm-clock: Using msrs 12 and 11
pass the address of the hv_clock struct to the host; the host starts writing to it:
[0 ffffffff81324fc0   11c3c2 ffffffff81324fc0   11c3c2     0.000000] kvm-clock: cpu 0, msr 0:1324fc1, boot clock
pv_clock data is accessed in kvm_get_tsc_khz:
[0 ffffffff81324fc0   11c3ca ffffffff81324fc0   11c3ca     0.000000]  [ffffea0000000000-ffffea00007fffff] PMD -> [ffff880001c00000-ffff8800023fffff] on node 0
[0 ffffffff81324fc0   11c3ca ffffffff81324fc0   11c3ca     0.000000] Zone PFN ranges:
[0 ffffffff81324fc0   11c3ca ffffffff81324fc0   11c3ca     0.000000]   DMA      0x00000001 -> 0x00001000
[0 ffffffff81324fc0   11c3ca ffffffff81324fc0   11c3ca     0.000000]   DMA32    0x00001000 -> 0x00100000
[0 ffffffff81324fc0   11c3ca ffffffff81324fc0   11c3ca     0.000000]   Normal   empty
[0 ffffffff81324fc0   11c3ca ffffffff81324fc0   11c3ca     0.000000] Movable zone start PFN for each node
[0 ffffffff81324fc0   11c3ca ffffffff81324fc0   11c3ca     0.000000] early_node_map[2] active PFN ranges
[0 ffffffff81324fc0   11c3ca ffffffff81324fc0   11c3ca     0.000000]     0: 0x00000001 -> 0x0000009b
[0 ffffffff81324fc0   11c3ca ffffffff81324fc0   11c3ca     0.000000]     0: 0x00000100 -> 0x0001fffd
[0 ffffffff81324fc0   11c3ca ffffffff81324fc0   11c3ca     0.000000] On node 0 totalpages: 130967
[0 ffffffff81324fc0   11c3ca ffffffff81324fc0   11c3ca     0.000000]   DMA zone: 56 pages used for memmap
[0 ffffffff81324fc0   11c3ca ffffffff81324fc0   11c3ca     0.000000]   DMA zone: 0 pages reserved
[0 ffffffff81324fc0   11c3ca ffffffff81324fc0   11c3ca     0.000000]   DMA zone: 3938 pages, LIFO batch:0
[0 ffffffff81324fc0   11c3ca ffffffff81324fc0   11c3ca     0.000000]   DMA32 zone: 1736 pages used for memmap
[0 ffffffff81324fc0   11c3ca ffffffff81324fc0   11c3ca     0.000000]   DMA32 zone: 125237 pages, LIFO batch:31
[0 ffffffff81324fc0   11c4ae ffffffff81324fc0   11c4ae     0.000000] ACPI: PM-Timer IO Port: 0xb008
[0 ffffffff81324fc0   11c4ae ffffffff81324fc0   11c4ae     0.000000] ACPI: Local APIC address 0xfee00000
[0 ffffffff81324fc0   11c4ae ffffffff81324fc0   11c4ae     0.000000] ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
[0 ffffffff81324fc0   11c4ae ffffffff81324fc0   11c4ae     0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled)
[0 ffffffff81324fc0   11c4ae ffffffff81324fc0   11c4ae     0.000000] ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
[0 ffffffff81324fc0   11c4ae ffffffff81324fc0   11c4ae     0.000000] IOAPIC[0]: apic_id 2, version 17, address 0xfec00000, GSI 0-23
[0 ffffffff81324fc0   11c4ae ffffffff81324fc0   11c4ae     0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[0 ffffffff81324fc0   11c4ae ffffffff81324fc0   11c4ae     0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 5 global_irq 5 high level)
[0 ffffffff81324fc0   11c4ae ffffffff81324fc0   11c4ae     0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[0 ffffffff81324fc0   11c4ae ffffffff81324fc0   11c4ae     0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 10 global_irq 10 high level)
[0 ffffffff81324fc0   11c4ae ffffffff81324fc0   11c4ae     0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 11 global_irq 11 high level)
[0 ffffffff81324fc0   11c4ae ffffffff81324fc0   11c4ae     0.000000] ACPI: IRQ0 used by override.
[0 ffffffff81324fc0   11c4ae ffffffff81324fc0   11c4ae     0.000000] ACPI: IRQ2 used by override.
[0 ffffffff81324fc0   11c4ae ffffffff81324fc0   11c4ae     0.000000] ACPI: IRQ5 used by override.
[0 ffffffff81324fc0   11c4ae ffffffff81324fc0   11c4ae     0.000000] ACPI: IRQ9 used by override.
[0 ffffffff81324fc0   11c4ae ffffffff81324fc0   11c4ae     0.000000] ACPI: IRQ10 used by override.
[0 ffffffff81324fc0   11c4ae ffffffff81324fc0   11c4ae     0.000000] ACPI: IRQ11 used by override.
[0 ffffffff81324fc0   11c4ae ffffffff81324fc0   11c4ae     0.000000] Using ACPI (MADT) for SMP configuration information
[0 ffffffff81324fc0   11c4ae ffffffff81324fc0   11c4ae     0.000000] ACPI: HPET id: 0x8086a201 base: 0xfed00000
[0 ffffffff81324fc0   11c4ae ffffffff81324fc0   11c4ae     0.000000] SMP: Allowing 2 CPUs, 0 hotplug CPUs
[0 ffffffff81324fc0   11c4ae ffffffff81324fc0   11c4ae     0.000000] nr_irqs_gsi: 40
[0 ffffffff81324fc0   11c4ae ffffffff81324fc0   11c4ae     0.000000] Allocating PCI resources starting at 20000000 (gap: 20000000:dffc0000)
[0 ffffffff81324fc0   11c4ae ffffffff81324fc0   11c4ae     0.000000] Booting paravirtualized kernel on KVM
[0 ffffffff81324fc0   11c4ae ffffffff81324fc0   11c4ae     0.000000] setup_percpu: NR_CPUS:2 nr_cpumask_bits:2 nr_cpu_ids:2 nr_node_ids:1
[0 ffffffff81324fc0   11c4ae ffffffff81324fc0   11c4ae     0.000000] early_res array is doubled to 64 at [3000 - 37ff]
[0 ffffffff81324fc0   11c4ae ffffffff81324fc0   11c4ae     0.000000] PERCPU: Embedded 26 pages/cpu @ffff880001400000 s76736 r8192 d21568 u1048576
[0 ffffffff81324fc0   11c4ae ffffffff81324fc0   11c4ae     0.000000] pcpu-alloc: s76736 r8192 d21568 u1048576 alloc=1*2097152
[0 ffffffff81324fc0   11c4ae ffffffff81324fc0   11c4ae     0.000000] pcpu-alloc: [0] 0 1
the single hv_clock struct has been copied to two new structs (one for each CPU); the contents are correct for CPU0, but not for CPU1
the host may still write to the old pv_clock location; can this cause problems?

if the CPU1 hv_clock struct is zeroed here, pvclock_clocksource_read will not return wrong data and the guest won't hang

pass the address of the CPU0 hv_clock struct to the host; the host starts writing to it:
[0 ffff880001411fc0   11c4b0 ffff880001511fc0   11c4ae     0.000000] kvm-clock: cpu 0, msr 0:1411fc1, primary cpu clock
[0 ffff880001411fc0   11c4b0 ffff880001511fc0   11c4ae     0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 129175
[0 ffff880001411fc0   11c4b0 ffff880001511fc0   11c4ae     0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-2.6.36-rc7-201010141519-guestmp-kvm+ root=UUID=22a4b388-70e0-4d2a-9aa1-bd842504378a ro quiet
[0 ffff880001411fc0   11c4b0 ffff880001511fc0   11c4ae     0.000000] PID hash table entries: 2048 (order: 2, 16384 bytes)
[0 ffff880001411fc0   11c4b0 ffff880001511fc0   11c4ae     0.000000] Dentry cache hash table entries: 65536 (order: 7, 524288 bytes)
[0 ffff880001411fc0   11c4b0 ffff880001511fc0   11c4ae     0.000000] Inode-cache hash table entries: 32768 (order: 6, 262144 bytes)
[0 ffff880001411fc0   11c4b0 ffff880001511fc0   11c4ae     0.000000] Checking aperture...
[0 ffff880001411fc0   1244dc ffff880001511fc0   11c4ae     0.000000] No AGP bridge found
[0 ffff880001411fc0   1245fc ffff880001511fc0   11c4ae     0.000000] Subtract (39 early reservations)
[0 ffff880001411fc0   1245fc ffff880001511fc0   11c4ae     0.000000]   #1 [0001000000 - 00013d6d38]   TEXT DATA BSS
[0 ffff880001411fc0   1245fc ffff880001511fc0   11c4ae     0.000000]   #2 [0017df6000 - 001803e000]         RAMDISK
[0 ffff880001411fc0   1245fc ffff880001511fc0   11c4ae     0.000000]   #3 [000009bc00 - 0000100000]   BIOS reserved
[0 ffff880001411fc0   1245fc ffff880001511fc0   11c4ae     0.000000]   #4 [00013d7000 - 00013d7071]             BRK
[0 ffff880001411fc0   1245fc ffff880001511fc0   11c4ae     0.000000]   #5 [0000001000 - 0000003000]      TRAMPOLINE
[0 ffff880001411fc0   1245fc ffff880001511fc0   11c4ae     0.000000]   #6 [0000008000 - 0000009000]         PGTABLE
[0 ffff880001411fc0   1245fc ffff880001511fc0   11c4ae     0.000000]   #7 [00013d7080 - 00013d8080]         BOOTMEM
[0 ffff880001411fc0   1245fc ffff880001511fc0   11c4ae     0.000000]   #8 [00013d6d40 - 00013d6da0]         BOOTMEM
[0 ffff880001411fc0   1245fc ffff880001511fc0   11c4ae     0.000000]   #9 [0001bd9000 - 0001bda000]         BOOTMEM
[0 ffff880001411fc0   1245fc ffff880001511fc0   11c4ae     0.000000]   #10 [0001bda000 - 0001bdb000]         BOOTMEM
[0 ffff880001411fc0   1245fc ffff880001511fc0   11c4ae     0.000000]   #11 [0001c00000 - 0002400000]        MEMMAP 0
[0 ffff880001411fc0   1245fc ffff880001511fc0   11c4ae     0.000000]   #12 [00013d6dc0 - 00013d6f40]         BOOTMEM
[0 ffff880001411fc0   1245fc ffff880001511fc0   11c4ae     0.000000]   #13 [00013d8080 - 00013db080]         BOOTMEM
[0 ffff880001411fc0   1245fc ffff880001511fc0   11c4ae     0.000000]   #14 [00013dc000 - 00013dd000]         BOOTMEM
[0 ffff880001411fc0   1245fc ffff880001511fc0   11c4ae     0.000000]   #15 [00013d6f40 - 00013d6f81]         BOOTMEM
[0 ffff880001411fc0   1245fc ffff880001511fc0   11c4ae     0.000000]   #16 [00013db080 - 00013db0c3]         BOOTMEM
[0 ffff880001411fc0   1245fc ffff880001511fc0   11c4ae     0.000000]   #17 [00013db100 - 00013db2c0]         BOOTMEM
[0 ffff880001411fc0   1245fc ffff880001511fc0   11c4ae     0.000000]   #18 [00013db2c0 - 00013db328]         BOOTMEM
[0 ffff880001411fc0   1245fc ffff880001511fc0   11c4ae     0.000000]   #19 [00013db340 - 00013db3a8]         BOOTMEM
[0 ffff880001411fc0   1245fc ffff880001511fc0   11c4ae     0.000000]   #20 [00013db3c0 - 00013db428]         BOOTMEM
[0 ffff880001411fc0   1245fc ffff880001511fc0   11c4ae     0.000000]   #21 [00013db440 - 00013db4a8]         BOOTMEM
[0 ffff880001411fc0   1245fc ffff880001511fc0   11c4ae     0.000000]   #22 [00013db4c0 - 00013db528]         BOOTMEM
[0 ffff880001411fc0   1245fc ffff880001511fc0   11c4ae     0.000000]   #23 [00013db540 - 00013db5a8]         BOOTMEM
[0 ffff880001411fc0   1245fc ffff880001511fc0   11c4ae     0.000000]   #24 [00013db5c0 - 00013db628]         BOOTMEM
[0 ffff880001411fc0   1245fc ffff880001511fc0   11c4ae     0.000000]   #25 [00013db640 - 00013db6b6]         BOOTMEM
[0 ffff880001411fc0   1245fc ffff880001511fc0   11c4ae     0.000000]   #26 [00013db6c0 - 00013db736]         BOOTMEM
[0 ffff880001411fc0   1245fc ffff880001511fc0   11c4ae     0.000000]   #27 [0001400000 - 000141a000]         BOOTMEM
[0 ffff880001411fc0   1245fc ffff880001511fc0   11c4ae     0.000000]   #28 [0001500000 - 000151a000]         BOOTMEM
[0 ffff880001411fc0   1245fc ffff880001511fc0   11c4ae     0.000000]   #29 [00013d6fc0 - 00013d6fc8]         BOOTMEM
[0 ffff880001411fc0   1245fc ffff880001511fc0   11c4ae     0.000000]   #30 [00013db740 - 00013db748]         BOOTMEM
[0 ffff880001411fc0   1245fc ffff880001511fc0   11c4ae     0.000000]   #31 [00013db780 - 00013db788]         BOOTMEM
[0 ffff880001411fc0   1245fc ffff880001511fc0   11c4ae     0.000000]   #32 [00013db7c0 - 00013db7d0]         BOOTMEM
[0 ffff880001411fc0   1245fc ffff880001511fc0   11c4ae     0.000000]   #33 [00013db800 - 00013db940]         BOOTMEM
[0 ffff880001411fc0   1245fc ffff880001511fc0   11c4ae     0.000000]   #34 [00013db940 - 00013db9a0]         BOOTMEM
[0 ffff880001411fc0   1245fc ffff880001511fc0   11c4ae     0.000000]   #35 [00013db9c0 - 00013dba20]         BOOTMEM
[0 ffff880001411fc0   1245fc ffff880001511fc0   11c4ae     0.000000]   #36 [00013dd000 - 00013e1000]         BOOTMEM
[0 ffff880001411fc0   1245fc ffff880001511fc0   11c4ae     0.000000]   #37 [000141a000 - 000149a000]         BOOTMEM
[0 ffff880001411fc0   1245fc ffff880001511fc0   11c4ae     0.000000]   #38 [000149a000 - 00014da000]         BOOTMEM
[0 ffff880001411fc0   1245fc ffff880001511fc0   11c4ae     0.000000] Memory: 508372k/524276k available (2128k kernel code, 408k absent, 15496k reserved, 1011k data, 472k init)
[0 ffff880001411fc0   1245fc ffff880001511fc0   11c4ae     0.000000] Hierarchical RCU implementation.
[0 ffff880001411fc0   1245fc ffff880001511fc0   11c4ae     0.000000] 	RCU-based detection of stalled CPUs is disabled.
[0 ffff880001411fc0   1245fc ffff880001511fc0   11c4ae     0.000000] 	Verbose stalled-CPUs detection is disabled.
[0 ffff880001411fc0   1245fc ffff880001511fc0   11c4ae     0.000000] NR_IRQS:320
[0 ffff880001411fc0   126736 ffff880001511fc0   11c4ae     0.000000] Console: colour VGA+ 80x25
[0 ffff880001411fc0   126736 ffff880001511fc0   11c4ae     0.000000] console [tty0] enabled
[0 ffff880001411fc0   126766 ffff880001511fc0   11c4ae     0.000000] hpet clockevent registered
[0 ffff880001411fc0   126766 ffff880001511fc0   11c4ae     0.000000] Detected 2799.750 MHz processor.
[0 ffff880001411fc0   126766 ffff880001511fc0   11c4ae     0.012000] Calibrating delay loop (skipped) preset value.. 5599.50 BogoMIPS (lpj=11199000)
[0 ffff880001411fc0   126766 ffff880001511fc0   11c4ae     0.012000] pid_max: default: 32768 minimum: 301
[0 ffff880001411fc0   126766 ffff880001511fc0   11c4ae     0.012000] Mount-cache hash table entries: 256
[0 ffff880001411fc0   12676a ffff880001511fc0   11c4ae     0.012000] using C1E aware idle routine
[0 ffff880001411fc0   12676a ffff880001511fc0   11c4ae     0.012000] Performance Events: AMD PMU driver.
[0 ffff880001411fc0   12676a ffff880001511fc0   11c4ae     0.012000] ... version:                0
[0 ffff880001411fc0   12676a ffff880001511fc0   11c4ae     0.012000] ... bit width:              48
[0 ffff880001411fc0   12676a ffff880001511fc0   11c4ae     0.012000] ... generic registers:      4
[0 ffff880001411fc0   12676a ffff880001511fc0   11c4ae     0.012000] ... value mask:             0000ffffffffffff
[0 ffff880001411fc0   12676a ffff880001511fc0   11c4ae     0.012000] ... max period:             00007fffffffffff
[0 ffff880001411fc0   12676a ffff880001511fc0   11c4ae     0.012000] ... fixed-purpose events:   0
[0 ffff880001411fc0   12676a ffff880001511fc0   11c4ae     0.012000] ... event mask:             000000000000000f
[0 ffff880001411fc0   12676c ffff880001511fc0   11c4ae     0.012333] Freeing SMP alternatives: 12k freed
[0 ffff880001411fc0   12676c ffff880001511fc0   11c4ae     0.012342] ACPI: Core revision 20100702
[0 ffff880001411fc0   126770 ffff880001511fc0   11c4ae     0.014061] Setting APIC routing to flat
[0 ffff880001411fc0   126774 ffff880001511fc0   11c4ae     0.015478] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
[0 ffff880001411fc0   126774 ffff880001511fc0   11c4ae     0.015483] CPU0: AMD Athlon(tm) II X2 240 Processor stepping 02
[0 ffff880001411fc0   126830 ffff880001511fc0   11c4ae     0.016000] ++++++++++++++++++++=_---CPU UP  1
[0 ffff880001411fc0   126830 ffff880001511fc0   11c4ae     0.016000] Booting Node   0, Processors  #1 Ok.
[0 ffff880001411fc0   126830 ffff880001511fc0   11c4ae     0.016000] Setting warm reset code and vector.
[0 ffff880001411fc0   126834 ffff880001511fc0   11c4ae     0.016000] 1.
[0 ffff880001411fc0   126834 ffff880001511fc0   11c4ae     0.016000] 2.
[0 ffff880001411fc0   126834 ffff880001511fc0   11c4ae     0.016000] 3.
[0 ffff880001411fc0   126834 ffff880001511fc0   11c4ae     0.016000] Asserting INIT.
[0 ffff880001411fc0   126834 ffff880001511fc0   11c4ae     0.016000] Waiting for send to finish...
[0 ffff880001411fc0   126836 ffff880001511fc0   11c4ae     0.022250] Deasserting INIT.
[0 ffff880001411fc0   126836 ffff880001511fc0   11c4ae     0.022259] Waiting for send to finish...
[0 ffff880001411fc0   126836 ffff880001511fc0   11c4ae     0.022265] #startup loops: 2.
[0 ffff880001411fc0   126836 ffff880001511fc0   11c4ae     0.022268] Sending STARTUP #1.
[0 ffff880001411fc0   126836 ffff880001511fc0   11c4ae     0.022275] After apic_write.
this printk gets the time from the CPU1 hv_clock (with old CPU0 data), which results in value far into the future:
[1 ffff880001411fc0   126836 ffff880001511fc0   11c4ae     0.012000] CPU#1 (phys ID: 1) waiting for CALLOUT
[0 ffff880001411fc0   126836 ffff880001511fc0   11c4ae     0.024000] Startup point 1.
[0 ffff880001411fc0   126836 ffff880001511fc0   11c4ae     0.024000] Waiting for send to finish...
[0 ffff880001411fc0   126836 ffff880001511fc0   11c4ae     0.024000] Sending STARTUP #2.
[0 ffff880001411fc0   126836 ffff880001511fc0   11c4ae     0.024000] After apic_write.
[0 ffff880001411fc0   126836 ffff880001511fc0   11c4ae     0.024000] Startup point 1.
[0 ffff880001411fc0   126836 ffff880001511fc0   11c4ae     0.024000] Waiting for send to finish...
[0 ffff880001411fc0   126836 ffff880001511fc0   11c4ae     0.024000] After Startup.
[0 ffff880001411fc0   126836 ffff880001511fc0   11c4ae     0.024000] Before Callout 1.
[0 ffff880001411fc0   126836 ffff880001511fc0   11c4ae     0.024000] After Callout 1.
same as previous comment:
[1 ffff880001411fc0   126836 ffff880001511fc0   11c4ae     0.012000] CALLIN, before setup_local_APIC().
same as previous comment:
[1 ffff880001411fc0   126836 ffff880001511fc0   11c4ae     0.012000] Stack at about ffff88001f89ff44
pass the address of the CPU1 hv_clock struct to the host; the host starts writing to it and the data in both structs (CPU0 and CPU1) is valid now:
[1 ffff880001411fc0   126836 ffff880001511fc0   11ddcc     0.012000] kvm-clock: cpu 1, msr 0:1511fc1, secondary cpu clock
[0 ffff880001411fc0   126836 ffff880001511fc0   11ddcc     0.025001] CPU1: has booted.
[0 ffff880001411fc0   12683a ffff880001511fc0   11ddcc     0.025001] Brought up 2 CPUs
[0 ffff880001411fc0   12683a ffff880001511fc0   11ddcc     0.025001] Boot done.
[0 ffff880001411fc0   12683a ffff880001511fc0   11ddcc     0.025001] Before bogomips.
[0 ffff880001411fc0   12683a ffff880001511fc0   11ddcc     0.025001] Total of 2 processors activated (11199.00 BogoMIPS).
[0 ffff880001411fc0   12683a ffff880001511fc0   11ddcc     0.025001] Before bogocount - setting activated=1.
[1 ffff880001411fc0   12683a ffff880001511fc0   11ddce     0.025001] x86 PAT enabled: cpu 1, old 0x0, new 0x7010600070106
...


  parent reply	other threads:[~2010-10-20 20:47 UTC|newest]

Thread overview: 81+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-07-22 12:53 2.6.35-rc1 regression with pvclock and smp guests Andre Przywara
2010-07-25  8:44 ` Avi Kivity
2010-07-26  8:47   ` Andre Przywara
2010-07-26 18:59     ` Arjan Koers
2010-07-27 21:00       ` Arjan Koers
2010-07-28 10:37         ` Avi Kivity
2010-07-31  0:34           ` Arjan Koers
2010-07-31  1:38             ` Zachary Amsden
2010-07-31 11:50               ` Arjan Koers
2010-07-31  2:39             ` Zachary Amsden
2010-07-31 11:53               ` Arjan Koers
2010-07-31 16:36                 ` Arjan Koers
2010-07-31 19:45                   ` Arjan Koers
2010-07-31 23:55                   ` Zachary Amsden
2010-08-02 14:43                     ` Glauber Costa
2010-08-02 16:16                       ` Arjan Koers
2010-08-02 18:07                         ` Glauber Costa
2010-08-02 20:26                       ` Zachary Amsden
2010-08-02 21:10                         ` Glauber Costa
2010-08-02 21:35                         ` Arjan Koers
2010-08-03  0:00                           ` Zachary Amsden
2010-09-28 11:16                           ` Michael Tokarev
2010-09-29  8:12                             ` Michael Tokarev
2010-09-29  8:28                           ` Avi Kivity
2010-09-29  9:17                             ` Michael Tokarev
2010-09-29  9:19                               ` Michael Tokarev
2010-09-29 19:26                                 ` Arjan Koers
2010-09-30  7:55                                   ` Michael Tokarev
2010-09-30  9:59                                     ` Michael Tokarev
2010-09-30 13:54                                       ` Zachary Amsden
2010-09-30 15:12                                         ` Michael Tokarev
2010-09-30 15:32                                           ` Zachary Amsden
2010-09-30 18:49                                             ` Arjan Koers
2010-09-30 19:05                                               ` Marcelo Tosatti
2010-09-30 20:16                                                 ` Arjan Koers
2010-09-30 23:02                                                 ` Michael Tokarev
2010-09-30 23:07                                                   ` Michael Tokarev
2010-10-01  1:13                                                     ` Zachary Amsden
2010-10-02  5:35                                                     ` Zachary Amsden
2010-10-02  7:35                                                       ` Michael Tokarev
2010-10-02  7:40                                                         ` Michael Tokarev
2010-10-02  7:50                                                           ` Michael Tokarev
2010-10-02 16:10                                                         ` Arjan Koers
2010-10-02 20:26                                                           ` Michael Tokarev
2010-10-02 23:42                                                           ` Zachary Amsden
2010-10-03  8:27                                                             ` Michael Tokarev
2010-10-08  0:12                                                             ` Arjan Koers
2010-10-08  2:47                                                               ` Zachary Amsden
2010-10-08 22:06                                                                 ` Marcelo Tosatti
2010-10-09  1:10                                                                   ` Arjan Koers
2010-10-09  2:27                                                                     ` Zachary Amsden
2010-10-09  6:29                                                                       ` Michael Tokarev
2010-10-09  8:59                                                                         ` Arjan Koers
2010-10-11 20:47                                                                           ` Zachary Amsden
2010-10-13 12:18                                                                             ` Glauber Costa
2010-10-10  1:20                                                                       ` Arjan Koers
2010-10-11 17:53                                                                       ` Anthony Liguori
2010-10-11 18:36                                                                         ` Marcelo Tosatti
2010-10-09  2:29                                                                     ` Zachary Amsden
2010-10-10  1:26                                                                     ` Arjan Koers
2010-10-20 20:47                                                                     ` Arjan Koers [this message]
2010-10-09  7:59                                                                   ` Michael Tokarev
2010-10-09  8:31                                                                     ` Michael Tokarev
2010-10-02 21:55                                                         ` Zachary Amsden
2010-10-03  8:16                                                           ` Michael Tokarev
2010-10-03  8:22                                                             ` Avi Kivity
2010-10-03  8:30                                                             ` Michael Tokarev
2010-07-27 10:03     ` Avi Kivity
2010-07-27 11:49       ` Andre Przywara
2010-07-27 12:06         ` Avi Kivity
2010-07-27 12:21           ` Andre Przywara
2010-07-27 12:34             ` Avi Kivity
2010-07-27 13:48               ` Andre Przywara
2010-07-27 13:58                 ` Avi Kivity
2010-07-27 14:55                   ` Andre Przywara
2010-07-27 21:51                     ` Andre Przywara
2010-07-28  3:00                       ` Zachary Amsden
2010-07-28  7:55                         ` Andre Przywara
2010-07-28 12:25                       ` Andre Przywara
2010-07-30 22:54                         ` Zachary Amsden
2010-08-02 10:12                           ` Andre Przywara

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=4CBF556B.7020803@xutrox.com \
    --to=0h61vkll2ly8@xutrox.com \
    --cc=andre.przywara@amd.com \
    --cc=avi@redhat.com \
    --cc=glommer@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=mjt@tls.msk.ru \
    --cc=mtosatti@redhat.com \
    --cc=zamsden@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox