Re: add back pending timer irqs for kernel APIC timer

Avi Kivity
2007-08-13T08:50:32Z

Dong, Eddie wrote:
> Avi Kivity wrote:
>
>> Dong, Eddie wrote:
>>
>>> Add back pending irqs for apic timer to get precise guest
>>> APIC timer interrupt.
>>>
>>>
>> Can you explain the problem and the solution in more detail?
>>
>
> Today guest sleep 10 seconds only get about 5-6 seconds in host time.
> A design philosiphy in various VMM is that guest wall clock should catch
> up host wall clock.
>
> The reason (partly) is that A VM may be descheduled, while the host time
> is still going. For periodic timer like APIC timer, guest expect to see
> certain amount of interrupt that stands for the time passed (host time).
> In previous
> APIC timer virtualization policy, we inject an IRQ to APIC when a period
> of host time is passed, but the guest may not take it if it is
> descheduled.
> In that way the previous irq in APIC will be overwritten by next
> injection from fire of
> host hrtimer. In that way guest get less amount of APIC timer IRQ.
>
> This patch keep track of the pending irqs and inject them back to guest
> eventually
> even the guest may be descheduled. This is also what we did in Xen.
> BTW, This policy will also be applied to future kernel PIT, I just do it
> step by step.
>
>

I see. We have something like that in userspace (called the
time-drift-fix, or tdf). Will look at the patch now.

--
error compiling committee.c: too many arguments to function