qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [RESEND][PATCH 0/3] Fix guest time drift under heavy load.
@ 2008-10-29 15:22 Gleb Natapov
  2008-10-29 15:22 ` [Qemu-devel] [PATCH 1/3] Change qemu_set_irq() to return status information Gleb Natapov
                   ` (3 more replies)
  0 siblings, 4 replies; 51+ messages in thread
From: Gleb Natapov @ 2008-10-29 15:22 UTC (permalink / raw)
  To: qemu-devel

Qemu device emulation for timers might be inaccurate and
causes coalescing of several IRQs into one. It happens when the
load on the host is high and the guest did not manage to ack the
previous IRQ. The problem can be reproduced by copying of a big
file or many small ones inside Windows guest. When you do that 
guest clock start to lag behind the host one.

The first patch in the series changes qemu_irq subsystem to return
IRQ delivery status information. If device is notified that IRQs
where lost it can regenerate them as needed. The following two
patches add IRQ regeneration to PIC and RTC devices.

---

Gleb Natapov (3):
      Fix time drift problem under high load when RTC is in use.
      Fix time drift problem under high load when PIT is in use.
      Change qemu_set_irq() to return status information.


 hw/apic.c          |  103 +++++++++++++++++++++++++++++++++-------------------
 hw/arm_gic.c       |    6 ++-
 hw/arm_pic.c       |    4 ++
 hw/arm_timer.c     |    4 +-
 hw/cbus.c          |   12 +++++-
 hw/esp.c           |    4 ++
 hw/etraxfs_pic.c   |   12 ++++--
 hw/fdc.c           |    4 ++
 hw/heathrow_pic.c  |    4 ++
 hw/i8254.c         |   23 +++++++++++-
 hw/i8259.c         |   19 +++++++---
 hw/ide.c           |    8 +++-
 hw/integratorcp.c  |    4 ++
 hw/irq.c           |   18 +++++++--
 hw/irq.h           |   35 ++++++++++++------
 hw/max7310.c       |    4 ++
 hw/mc146818rtc.c   |   11 +++++-
 hw/mcf5206.c       |    4 ++
 hw/mcf_intc.c      |    6 ++-
 hw/mips_int.c      |    6 ++-
 hw/mpcore.c        |    4 ++
 hw/mst_fpga.c      |    4 ++
 hw/musicpal.c      |    4 ++
 hw/nseries.c       |    7 +++-
 hw/omap.h          |    2 +
 hw/omap1.c         |   44 +++++++++++++++++-----
 hw/omap2.c         |   12 +++++-
 hw/omap_dma.c      |    8 +++-
 hw/omap_mmc.c      |    4 ++
 hw/openpic.c       |    4 ++
 hw/palm.c          |    4 ++
 hw/pc.c            |    4 ++
 hw/pc.h            |    2 +
 hw/pci.c           |    8 +++-
 hw/pcnet.c         |    4 ++
 hw/pl061.c         |    4 ++
 hw/pl190.c         |    4 ++
 hw/ppc.c           |   18 ++++++---
 hw/ppc4xx_devs.c   |    6 ++-
 hw/pxa2xx.c        |    4 ++
 hw/pxa2xx_gpio.c   |    6 ++-
 hw/pxa2xx_pcmcia.c |    6 ++-
 hw/pxa2xx_pic.c    |    4 ++
 hw/rc4030.c        |    4 ++
 hw/sbi.c           |    6 ++-
 hw/sharpsl.h       |    2 +
 hw/slavio_intctl.c |    8 +++-
 hw/sparc32_dma.c   |    4 ++
 hw/spitz.c         |   20 ++++++++--
 hw/ssd0323.c       |    4 ++
 hw/stellaris.c     |   10 ++++-
 hw/sun4c_intctl.c  |    4 ++
 hw/sun4m.c         |    7 +++-
 hw/tc6393xb.c      |    5 ++-
 hw/tusb6010.c      |    4 ++
 hw/twl92230.c      |    8 +++-
 hw/versatilepb.c   |    4 ++
 hw/zaurus.c        |    4 ++
 58 files changed, 392 insertions(+), 160 deletions(-)

-- 
        Gleb.

^ permalink raw reply	[flat|nested] 51+ messages in thread
* [Qemu-devel] [PATCH 0/3] Fix guest time drift under heavy load.
@ 2008-06-29 14:02 Gleb Natapov
  2008-06-29 14:02 ` [Qemu-devel] [PATCH 3/3] Fix time drift problem under high load when RTC is in use Gleb Natapov
  0 siblings, 1 reply; 51+ messages in thread
From: Gleb Natapov @ 2008-06-29 14:02 UTC (permalink / raw)
  To: qemu-devel

Resending one more time. There was no response last time I've sent it.

Qemu device emulation for timers might be inaccurate and
causes coalescing of several IRQs into one. It happens when the
load on the host is high and the guest did not manage to ack the
previous IRQ. The first patch in the series fixes this by changing
qemu_irq subsystem to return IRQ delivery status information.
If device is notified that IRQs where lost it can regenerate them
as needed. The following two patches add IRQ regeneration to PIC and RTC
devices.

---

Gleb Natapov (3):
      Fix time drift problem under high load when RTC is in use.
      Fix time drift problem under high load when PIT is in use.
      Change qemu_set_irq() to return status information.


 hw/apic.c        |  103 +++++++++++++++++++++++++++++++++++-------------------
 hw/esp.c         |    4 ++
 hw/fdc.c         |    4 ++
 hw/i8254.c       |   20 ++++++++++
 hw/i8259.c       |   19 +++++++---
 hw/ide.c         |    8 +++-
 hw/irq.c         |   10 +++--
 hw/irq.h         |   22 +++++++-----
 hw/max7310.c     |    4 ++
 hw/mc146818rtc.c |   11 +++++-
 hw/pc.c          |    6 ++-
 hw/pc.h          |    2 +
 hw/pci.c         |    8 +++-
 hw/ssd0323.c     |    4 ++
 hw/twl92230.c    |    8 +++-
 15 files changed, 159 insertions(+), 74 deletions(-)

-- 
		Gleb.

^ permalink raw reply	[flat|nested] 51+ messages in thread
* [Qemu-devel] [PATCH 0/3] Fix guest time drift under heavy load.
@ 2008-06-23 10:49 Gleb Natapov
  2008-06-23 10:49 ` [Qemu-devel] [PATCH 3/3] Fix time drift problem under high load when RTC is in use Gleb Natapov
  0 siblings, 1 reply; 51+ messages in thread
From: Gleb Natapov @ 2008-06-23 10:49 UTC (permalink / raw)
  To: qemu-devel

Qemu device emulation for timers might be inaccurate and
causes coalescing of several IRQs into one. It happens when the
load on the host is high and the guest did not manage to ack the
previous IRQ. The first patch in the series fixes this by changing
qemu_irq subsystem to return IRQ delivery status information.
If device is notified that IRQs where lost it can regenerate them
as needed. The following two patches add IRQ regeneration to PIC and RTC
devices.

---

 apic.c        |  103 +++++++++++++++++++++++++++++++++++++---------------------
 esp.c         |    4 +-
 fdc.c         |    4 +-
 i8254.c       |   20 ++++++++++-
 i8259.c       |   19 +++++++---
 ide.c         |    8 +++-
 irq.c         |   10 ++---
 irq.h         |   22 +++++++-----
 max7310.c     |    4 +-
 mc146818rtc.c |   11 +++++-
 pc.c          |    6 ++-
 pc.h          |    2 -
 pci.c         |    8 ++--
 ssd0323.c     |    4 +-
 twl92230.c    |    8 +++-
 15 files changed, 159 insertions(+), 74 deletions(-)

--
		Gleb.

^ permalink raw reply	[flat|nested] 51+ messages in thread

end of thread, other threads:[~2008-11-12 12:42 UTC | newest]

Thread overview: 51+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-10-29 15:22 [Qemu-devel] [RESEND][PATCH 0/3] Fix guest time drift under heavy load Gleb Natapov
2008-10-29 15:22 ` [Qemu-devel] [PATCH 1/3] Change qemu_set_irq() to return status information Gleb Natapov
2008-10-29 15:22 ` [Qemu-devel] [PATCH 2/3] Fix time drift problem under high load when PIT is in use Gleb Natapov
2008-10-29 15:22 ` [Qemu-devel] [PATCH 3/3] Fix time drift problem under high load when RTC " Gleb Natapov
2008-11-05 12:46   ` Dor Laor
2008-10-31 19:17 ` [Qemu-devel] [RESEND][PATCH 0/3] Fix guest time drift under heavy load Anthony Liguori
2008-11-02 13:04   ` Gleb Natapov
2008-11-05 12:45     ` Dor Laor
2008-11-05 15:48       ` andrzej zaborowski
2008-11-05 16:33         ` Anthony Liguori
2008-11-06  7:16         ` Gleb Natapov
2008-11-06  9:37           ` andrzej zaborowski
2008-11-06 10:08             ` Gleb Natapov
2008-11-06 13:21               ` andrzej zaborowski
2008-11-06 14:18                 ` Gleb Natapov
2008-11-06 14:35                   ` andrzej zaborowski
2008-11-06 15:04                     ` Gleb Natapov
2008-11-06 15:41                       ` Anthony Liguori
2008-11-07 23:18                       ` andrzej zaborowski
2008-11-08  8:23                         ` Gleb Natapov
2008-11-06 13:44               ` Paul Brook
2008-11-05 17:43       ` Gleb Natapov
2008-11-06 17:28       ` David S. Ahern
2008-11-05 16:43     ` Anthony Liguori
2008-11-06  3:55       ` Jamie Lokier
2008-11-06  8:12       ` Gleb Natapov
2008-11-06 14:10         ` Anthony Liguori
2008-11-06 14:24           ` Paul Brook
2008-11-06 14:40             ` Anthony Liguori
2008-11-06 14:51               ` Gleb Natapov
2008-11-06 15:37                 ` Anthony Liguori
2008-11-08  8:36                   ` Gleb Natapov
2008-11-08 22:14                     ` Dor Laor
2008-11-09  7:40                     ` Gleb Natapov
2008-11-09 16:38                       ` Anthony Liguori
2008-11-09 21:00                         ` Avi Kivity
2008-11-09 16:36                     ` Anthony Liguori
2008-11-10 14:37                       ` Gleb Natapov
2008-11-10 15:24                         ` Anthony Liguori
2008-11-10 15:29                           ` Gleb Natapov
2008-11-10 15:46                             ` Anthony Liguori
2008-11-10 15:51                               ` Gleb Natapov
2008-11-11 14:43                               ` Gleb Natapov
2008-11-11 17:26                                 ` Anthony Liguori
2008-11-11 20:17                                 ` Anthony Liguori
2008-11-12 11:42                                   ` Gleb Natapov
2008-11-12 11:54                                     ` Glauber Costa
2008-11-12 12:38                                       ` Dor Laor
2008-11-06  3:41     ` Jamie Lokier
  -- strict thread matches above, loose matches on Subject: below --
2008-06-29 14:02 [Qemu-devel] [PATCH " Gleb Natapov
2008-06-29 14:02 ` [Qemu-devel] [PATCH 3/3] Fix time drift problem under high load when RTC is in use Gleb Natapov
2008-06-23 10:49 [Qemu-devel] [PATCH 0/3] Fix guest time drift under heavy load Gleb Natapov
2008-06-23 10:49 ` [Qemu-devel] [PATCH 3/3] Fix time drift problem under high load when RTC is in use Gleb Natapov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).