Re: [RFC] Paravirt timer for KVM

Avi Kivity
2007-10-15T17:07:59Z

Glauber de Oliveira Costa wrote:
>>
>> It might be better to just rely on the in-kernel APIC to inject an
>> interrupt for the clock (via kvm_pic_set_irq()).
>>
>>
>
>
> After trying this option a little bit, it does not seemed worthwhile
> to me. But it might well have been due to some misunderstanding from
> my part, and I can take a look again. Basically, we can't do it in the
> timer function because it is protected by a mutex. the hrtimer
> function runs in interrupt context, so we'd have to flag and signal
> anyway.
>
> "Interrupts for the clock" needs special irq lines anyway. (Well, VMI
> masks it and does a whole lot of work to use the apic, but I prefer
> the xen way, in which irq lines are triggered directly), so if I
> remember the code correctly, we'd have to put some code on for those
> lines anyway.
>
> I may be a little paranoid here, but as it does not seem we're going
> to be able to use all code structure as is, at least this way we avoid
> the apic code path in favour of a simpler one. But maybe it's really
> not worth it
>
> I'd see an direct advantage for that if we are going to use the local
> apic for the delivery, but then it complicates the kernel side, as it
> already has an apic clockevents registered, with a interrupt handler
> on its own.
>
>

If we want to make the clocksource useful for Windows we need to go
through the apic as that will allow the TPR to mask the interrupt when
Windows isn't ready to receive it. However I don't know whether it is
possible to integrate a paravirt clocksource into Windows.

For Linux, we might as well go further and provide a completely
paravirtualized irqchip instead of trying to integrate a paravirtualized
clocksource into a fullyvirtualized irqchip.

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