mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-12-17 21:26:13 -07:00
A HPET timer can be started when HPET is not yet enabled. This will not generate an interrupt to the guest, but causes problems when HPET is later enabled. A timer that is created and expires at least once before HPET is enabled will have an initialized comparator based on a hpet_offset of 0 (uninitialized). When HPET is enabled, hpet_set_timer() is called a second time, which modifies the timer expiry to a time based on the difference between current ticks (measured with the newly initialized hpet_offset) and the timer's comparator (which was generated before hpet_offset was initialized). This results in a long period of no HPET timer ticks. When this occurs with a CentOS 5.x guest, the guest may not receive timer interrupts during its narrow timer check window and panic on boot. Signed-off-by: Matt Lupfer <mlupfer@ddn.com> Acked-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> |
||
|---|---|---|
| .. | ||
| a9gtimer.c | ||
| allwinner-a10-pit.c | ||
| arm_mptimer.c | ||
| arm_timer.c | ||
| cadence_ttc.c | ||
| digic-timer.c | ||
| ds1338.c | ||
| etraxfs_timer.c | ||
| exynos4210_mct.c | ||
| exynos4210_pwm.c | ||
| exynos4210_rtc.c | ||
| grlib_gptimer.c | ||
| hpet.c | ||
| i8254.c | ||
| i8254_common.c | ||
| imx_epit.c | ||
| imx_gpt.c | ||
| lm32_timer.c | ||
| m48t59.c | ||
| Makefile.objs | ||
| mc146818rtc.c | ||
| milkymist-sysctl.c | ||
| omap_gptimer.c | ||
| omap_synctimer.c | ||
| pl031.c | ||
| puv3_ost.c | ||
| pxa2xx_timer.c | ||
| sh_timer.c | ||
| slavio_timer.c | ||
| tusb6010.c | ||
| twl92230.c | ||
| xilinx_timer.c | ||