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: Michael Tokarev
Subject: Re: [Qemu-devel] TSC in qem[-kvm] 1.1+ and in-kernel irqchip
Date: Sun, 12 Aug 2012 13:24:01 +0400
User-agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:10.0.5) Gecko/20120624 Icedove/10.0.5

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.

Thanks,

/mjt



reply via email to

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