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

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

 



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 <jan.kiszka@xxxxxxxxxxx>
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
--
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


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux