qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] TSC in qem[-kvm] 1.1+ and in-kernel irqchip


From: Jan Kiszka
Subject: Re: [Qemu-devel] TSC in qem[-kvm] 1.1+ and in-kernel irqchip
Date: Mon, 13 Aug 2012 15:07:14 +0200
User-agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); de; rv:1.8.1.12) Gecko/20080226 SUSE/2.0.0.12-1.1 Thunderbird/2.0.0.12 Mnenhy/0.7.5.666

On 2012-08-12 11:24, Michael Tokarev wrote:
> On 12.08.2012 12:10, Gleb Natapov wrote:
> []
>> Any chance to bisect it?
> 
> The bisecion leads to this commit:
> 
> commit 17ee47418e65b1593defb30edbab33ccd47fc1f8
> Merge: 13b0496 5d17c0d
> Author: Jan Kiszka <address@hidden>
> Date:   Tue Apr 10 16:26:23 2012 +0200
> 
>     Merge commit '5d17c0d2df4998598e6002b27b8e47e792899a0f' into 
> queues/qemu-merge
> 
>     Conflicts:
>         hw/pc.c
> 
> diff --cc Makefile.target
> index 33a7255,1bd25a8..32c8e42
> --- a/Makefile.target
> +++ b/Makefile.target
> @@@ -245,13 -244,8 +245,13 @@@ obj-i386-y += pci-hotplug.o smbios.o wd
>   obj-i386-y += debugcon.o multiboot.o
>   obj-i386-y += pc_piix.o
>   obj-i386-y += pc_sysfw.o
> - obj-i386-$(CONFIG_KVM) += kvm/clock.o kvm/apic.o kvm/i8259.o kvm/ioapic.o
> + obj-i386-$(CONFIG_KVM) += kvm/clock.o kvm/apic.o kvm/i8259.o kvm/ioapic.o 
> kvm/i8254.o
>   obj-i386-$(CONFIG_SPICE) += qxl.o qxl-logger.o qxl-render.o
>  +obj-i386-y += testdev.o
>  +obj-i386-y += acpi.o acpi_piix4.o
>  +
>  +obj-i386-y += i8254_common.o i8254.o
>  +obj-i386-$(CONFIG_KVM_DEVICE_ASSIGNMENT) += device-assignment.o
> 
>   # shared objects
>   obj-ppc-y = ppc.o ppc_booke.o
> diff --cc hw/pc.c
> index 74c19b9,bb9867b..feb6ef3
> --- a/hw/pc.c
> +++ b/hw/pc.c
> @@@ -1116,8 -1118,12 +1122,12 @@@ void pc_basic_device_init(ISABus *isa_b
> 
>       qemu_register_boot_set(pc_boot_set, *rtc_state);
> 
> -     pit = pit_init(isa_bus, 0x40, pit_isa_irq, pit_alt_irq);
> +     if (kvm_irqchip_in_kernel()) {
> +         pit = kvm_pit_init(isa_bus, 0x40);
> +     } else {
> +         pit = pit_init(isa_bus, 0x40, pit_isa_irq, pit_alt_irq);
> +     }
>  -    if (hpet) {
>  +    if (hpet && !(kvm_enabled() && kvm_irqchip_in_kernel())) {
>           /* connect PIT to output control line of the HPET */
>           qdev_connect_gpio_out(hpet, 0, qdev_get_gpio_in(&pit->qdev, 0));
>       }
> 
> 
> 
> Note this commit itself talks about pit and irqchip.
> But I don't know what does it mean.
> 
> Cc'ing Jan for help.  The short story: tsc timer calibration
> broke in 1.1+ with in-kernel irqchip (only) for several
> apps (seabios and grub are two examples), the time is ticking
> about 100 times faster.  In grub the timer is calibrated
> using pit.  The above commit is the result of bisection.

Did the versions you tested include the commit 0cdd3d1444 (kvm: i8254:
Fix conversion of in-kernel to userspace state)?

Jan

-- 
Siemens AG, Corporate Technology, CT RTC ITP SDP-DE
Corporate Competence Center Embedded Linux



reply via email to

[Prev in Thread] Current Thread [Next in Thread]