On 2011-02-03 21:07, Anthony Liguori wrote: > On 02/03/2011 09:28 AM, Jan Kiszka wrote: >> On 2011-02-03 14:43, Ulrich Obergfell wrote: >> >>> Hi, >>> >>> I am observing severe backward time drift in a MS Windows Vista(tm) >>> guest running on a Fedora 14 KVM host. I can reproduce the problem >>> with the following steps: >>> >>> 1. Use 'vncviewer' to connect to the guest's desktop. >>> 2. Click on the menu title bar of a window on the guest's desktop. >>> 3. Move that window around on the guest's desktop. >>> >>> While I keep on moving the window around for one minute, the guest >>> time falls up to 15 seconds behind host time. >>> >>> The problem is caused by delayed callbacks of hpet_timer(). A timer >>> interrupt is injected into the guest during each callback. However, >>> interrupts are lost if delays are greater than a comparator period. >>> >>> >> Yes, that's a well known limitation of qemu, in fact. We are lacking a >> generic irq coalescing infrastructure. That, once designed and >> available, would also allow to fix the HPET. >> > > I don't think it requires anything that sophisticated. > > It's just the period calculation of the HPET that's wrong and doesn't > account for loss. Blind (/wrt the guest state) reinjection from the iothread will compensate for lost time of *that* thread but not of the target vcpu(s). So, depending on your workload, you may reduce the drift more or less, but you won't fix it this way. Jan
Attachment:
signature.asc
Description: OpenPGP digital signature